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: // 5 strings to match.
37 switch (RuleIdentifier[0]) {
38 default: break;
39 case 'c': // 1 string to match.
40 if (memcmp(RuleIdentifier.data()+1, "opy_prop", 8) != 0)
41 break;
42 return 13; // "copy_prop"
43 case 'm': // 3 strings to match.
44 switch (RuleIdentifier[1]) {
45 default: break;
46 case 'a': // 1 string to match.
47 if (memcmp(RuleIdentifier.data()+2, "tch_ors", 7) != 0)
48 break;
49 return 194; // "match_ors"
50 case 'u': // 2 strings to match.
51 if (memcmp(RuleIdentifier.data()+2, "lo_by_", 6) != 0)
52 break;
53 switch (RuleIdentifier[8]) {
54 default: break;
55 case '0': // 1 string to match.
56 return 144; // "mulo_by_0"
57 case '2': // 1 string to match.
58 return 143; // "mulo_by_2"
59 }
60 break;
61 }
62 break;
63 case 'n': // 1 string to match.
64 if (memcmp(RuleIdentifier.data()+1, "neg_zext", 8) != 0)
65 break;
66 return 199; // "nneg_zext"
67 }
68 break;
69 case 10: // 7 strings to match.
70 switch (RuleIdentifier[0]) {
71 default: break;
72 case 'i': // 1 string to match.
73 if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i", 9) != 0)
74 break;
75 return 89; // "i2p_to_p2i"
76 case 'm': // 2 strings to match.
77 switch (RuleIdentifier[1]) {
78 default: break;
79 case 'a': // 1 string to match.
80 if (memcmp(RuleIdentifier.data()+2, "tch_ands", 8) != 0)
81 break;
82 return 193; // "match_ands"
83 case 'u': // 1 string to match.
84 if (memcmp(RuleIdentifier.data()+2, "l_to_shl", 8) != 0)
85 break;
86 return 14; // "mul_to_shl"
87 }
88 break;
89 case 'p': // 1 string to match.
90 if (memcmp(RuleIdentifier.data()+1, "2i_to_i2p", 9) != 0)
91 break;
92 return 88; // "p2i_to_i2p"
93 case 's': // 2 strings to match.
94 switch (RuleIdentifier[1]) {
95 default: break;
96 case 'e': // 1 string to match.
97 if (memcmp(RuleIdentifier.data()+2, "xt_trunc", 8) != 0)
98 break;
99 return 197; // "sext_trunc"
100 case 'u': // 1 string to match.
101 if (memcmp(RuleIdentifier.data()+2, "b_to_add", 8) != 0)
102 break;
103 return 15; // "sub_to_add"
104 }
105 break;
106 case 'z': // 1 string to match.
107 if (memcmp(RuleIdentifier.data()+1, "ext_trunc", 9) != 0)
108 break;
109 return 198; // "zext_trunc"
110 }
111 break;
112 case 11: // 5 strings to match.
113 switch (RuleIdentifier[0]) {
114 default: break;
115 case 'a': // 1 string to match.
116 if (memcmp(RuleIdentifier.data()+1, "dd_sub_reg", 10) != 0)
117 break;
118 return 94; // "add_sub_reg"
119 case 'm': // 1 string to match.
120 if (memcmp(RuleIdentifier.data()+1, "atch_addos", 10) != 0)
121 break;
122 return 213; // "match_addos"
123 case 's': // 1 string to match.
124 if (memcmp(RuleIdentifier.data()+1, "ub_add_reg", 10) != 0)
125 break;
126 return 188; // "sub_add_reg"
127 case 't': // 1 string to match.
128 if (memcmp(RuleIdentifier.data()+1, "runc_shift", 10) != 0)
129 break;
130 return 131; // "trunc_shift"
131 case 'u': // 1 string to match.
132 if (memcmp(RuleIdentifier.data()+1, "nmerge_cst", 10) != 0)
133 break;
134 return 207; // "unmerge_cst"
135 }
136 break;
137 case 12: // 11 strings to match.
138 switch (RuleIdentifier[0]) {
139 default: break;
140 case 'A': // 1 string to match.
141 if (memcmp(RuleIdentifier.data()+1, "PlusBMinusB", 11) != 0)
142 break;
143 return 2; // "APlusBMinusB"
144 case 'B': // 1 string to match.
145 if (memcmp(RuleIdentifier.data()+1, "MinusAPlusA", 11) != 0)
146 break;
147 return 3; // "BMinusAPlusA"
148 case 'a': // 1 string to match.
149 if (memcmp(RuleIdentifier.data()+1, "dde_to_addo", 11) != 0)
150 break;
151 return 145; // "adde_to_addo"
152 case 'f': // 1 string to match.
153 if (memcmp(RuleIdentifier.data()+1, "sub_to_fneg", 11) != 0)
154 break;
155 return 190; // "fsub_to_fneg"
156 case 'm': // 1 string to match.
157 if (memcmp(RuleIdentifier.data()+1, "ulh_to_lshr", 11) != 0)
158 break;
159 return 175; // "mulh_to_lshr"
160 case 'n': // 1 string to match.
161 if (memcmp(RuleIdentifier.data()+1, "ot_cmp_fold", 11) != 0)
162 break;
163 return 132; // "not_cmp_fold"
164 case 'r': // 1 string to match.
165 if (memcmp(RuleIdentifier.data()+1, "edundant_or", 11) != 0)
166 break;
167 return 127; // "redundant_or"
168 case 's': // 2 strings to match.
169 switch (RuleIdentifier[1]) {
170 default: break;
171 case 'd': // 1 string to match.
172 if (memcmp(RuleIdentifier.data()+2, "iv_by_pow2", 10) != 0)
173 break;
174 return 173; // "sdiv_by_pow2"
175 case 'e': // 1 string to match.
176 if (memcmp(RuleIdentifier.data()+2, "xt_of_sext", 10) != 0)
177 break;
178 return 48; // "sext_of_sext"
179 }
180 break;
181 case 'u': // 1 string to match.
182 if (memcmp(RuleIdentifier.data()+1, "div_by_pow2", 11) != 0)
183 break;
184 return 174; // "udiv_by_pow2"
185 case 'z': // 1 string to match.
186 if (memcmp(RuleIdentifier.data()+1, "ext_of_zext", 11) != 0)
187 break;
188 return 46; // "zext_of_zext"
189 }
190 break;
191 case 13: // 15 strings to match.
192 switch (RuleIdentifier[0]) {
193 default: break;
194 case 'a': // 1 string to match.
195 if (memcmp(RuleIdentifier.data()+1, "dd_of_vscale", 12) != 0)
196 break;
197 return 37; // "add_of_vscale"
198 case 'c': // 1 string to match.
199 if (memcmp(RuleIdentifier.data()+1, "ommute_shift", 12) != 0)
200 break;
201 return 161; // "commute_shift"
202 case 'f': // 1 string to match.
203 if (memcmp(RuleIdentifier.data()+1, "oldable_fneg", 12) != 0)
204 break;
205 return 217; // "foldable_fneg"
206 case 'l': // 1 string to match.
207 if (memcmp(RuleIdentifier.data()+1, "oad_and_mask", 12) != 0)
208 break;
209 return 69; // "load_and_mask"
210 case 'm': // 3 strings to match.
211 switch (RuleIdentifier[1]) {
212 default: break;
213 case 'a': // 1 string to match.
214 if (memcmp(RuleIdentifier.data()+2, "tch_selects", 11) != 0)
215 break;
216 return 124; // "match_selects"
217 case 'e': // 1 string to match.
218 if (memcmp(RuleIdentifier.data()+2, "rge_unmerge", 11) != 0)
219 break;
220 return 206; // "merge_unmerge"
221 case 'u': // 1 string to match.
222 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
223 break;
224 return 38; // "mul_of_vscale"
225 }
226 break;
227 case 'r': // 1 string to match.
228 if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
229 break;
230 return 125; // "redundant_and"
231 case 's': // 3 strings to match.
232 switch (RuleIdentifier[1]) {
233 default: break;
234 case 'd': // 1 string to match.
235 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
236 break;
237 return 172; // "sdiv_by_const"
238 case 'h': // 1 string to match.
239 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
240 break;
241 return 39; // "shl_of_vscale"
242 case 'u': // 1 string to match.
243 if (memcmp(RuleIdentifier.data()+2, "b_of_vscale", 11) != 0)
244 break;
245 return 40; // "sub_of_vscale"
246 }
247 break;
248 case 'u': // 4 strings to match.
249 switch (RuleIdentifier[1]) {
250 default: break;
251 case 'd': // 1 string to match.
252 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
253 break;
254 return 171; // "udiv_by_const"
255 case 'n': // 2 strings to match.
256 if (memcmp(RuleIdentifier.data()+2, "merge_", 6) != 0)
257 break;
258 switch (RuleIdentifier[8]) {
259 default: break;
260 case 'm': // 1 string to match.
261 if (memcmp(RuleIdentifier.data()+9, "erge", 4) != 0)
262 break;
263 return 205; // "unmerge_merge"
264 case 'u': // 1 string to match.
265 if (memcmp(RuleIdentifier.data()+9, "ndef", 4) != 0)
266 break;
267 return 208; // "unmerge_undef"
268 }
269 break;
270 case 'r': // 1 string to match.
271 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
272 break;
273 return 187; // "urem_by_const"
274 }
275 break;
276 }
277 break;
278 case 14: // 15 strings to match.
279 switch (RuleIdentifier[0]) {
280 default: break;
281 case 'A': // 2 strings to match.
282 switch (RuleIdentifier[1]) {
283 default: break;
284 case 'M': // 1 string to match.
285 if (memcmp(RuleIdentifier.data()+2, "inusC1PlusC2", 12) != 0)
286 break;
287 return 12; // "AMinusC1PlusC2"
288 case 'P': // 1 string to match.
289 if (memcmp(RuleIdentifier.data()+2, "lusC1MinusC2", 12) != 0)
290 break;
291 return 8; // "APlusC1MinusC2"
292 }
293 break;
294 case 'C': // 1 string to match.
295 if (memcmp(RuleIdentifier.data()+1, "2MinusAPlusC1", 13) != 0)
296 break;
297 return 9; // "C2MinusAPlusC1"
298 case 'a': // 2 strings to match.
299 if (memcmp(RuleIdentifier.data()+1, "nyext_of_", 9) != 0)
300 break;
301 switch (RuleIdentifier[10]) {
302 default: break;
303 case 's': // 1 string to match.
304 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
305 break;
306 return 52; // "anyext_of_sext"
307 case 'z': // 1 string to match.
308 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
309 break;
310 return 51; // "anyext_of_zext"
311 }
312 break;
313 case 'b': // 2 strings to match.
314 if (RuleIdentifier[1] != 'i')
315 break;
316 switch (RuleIdentifier[2]) {
317 default: break;
318 case 'n': // 1 string to match.
319 if (memcmp(RuleIdentifier.data()+3, "op_same_val", 11) != 0)
320 break;
321 return 85; // "binop_same_val"
322 case 't': // 1 string to match.
323 if (memcmp(RuleIdentifier.data()+3, "reverse_shl", 11) != 0)
324 break;
325 return 159; // "bitreverse_shl"
326 }
327 break;
328 case 'f': // 2 strings to match.
329 switch (RuleIdentifier[1]) {
330 default: break;
331 case 'a': // 1 string to match.
332 if (memcmp(RuleIdentifier.data()+2, "bs_fneg_fold", 12) != 0)
333 break;
334 return 170; // "fabs_fneg_fold"
335 case 'n': // 1 string to match.
336 if (memcmp(RuleIdentifier.data()+2, "eg_fneg_fold", 12) != 0)
337 break;
338 return 91; // "fneg_fneg_fold"
339 }
340 break;
341 case 'm': // 1 string to match.
342 if (memcmp(RuleIdentifier.data()+1, "ul_by_neg_one", 13) != 0)
343 break;
344 return 17; // "mul_by_neg_one"
345 case 'r': // 1 string to match.
346 if (memcmp(RuleIdentifier.data()+1, "eassoc_ptradd", 13) != 0)
347 break;
348 return 106; // "reassoc_ptradd"
349 case 's': // 3 strings to match.
350 switch (RuleIdentifier[1]) {
351 default: break;
352 case 'e': // 2 strings to match.
353 switch (RuleIdentifier[2]) {
354 default: break;
355 case 'l': // 1 string to match.
356 if (memcmp(RuleIdentifier.data()+3, "ect_of_zext", 11) != 0)
357 break;
358 return 54; // "select_of_zext"
359 case 'x': // 1 string to match.
360 if (memcmp(RuleIdentifier.data()+3, "t_of_anyext", 11) != 0)
361 break;
362 return 49; // "sext_of_anyext"
363 }
364 break;
365 case 'h': // 1 string to match.
366 if (memcmp(RuleIdentifier.data()+2, "ifts_too_big", 12) != 0)
367 break;
368 return 105; // "shifts_too_big"
369 }
370 break;
371 case 'z': // 1 string to match.
372 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
373 break;
374 return 47; // "zext_of_anyext"
375 }
376 break;
377 case 15: // 12 strings to match.
378 switch (RuleIdentifier[0]) {
379 default: break;
380 case 'A': // 2 strings to match.
381 switch (RuleIdentifier[1]) {
382 default: break;
383 case 'M': // 1 string to match.
384 if (memcmp(RuleIdentifier.data()+2, "inusC1MinusC2", 13) != 0)
385 break;
386 return 10; // "AMinusC1MinusC2"
387 case 'P': // 1 string to match.
388 if (memcmp(RuleIdentifier.data()+2, "lusZeroMinusB", 13) != 0)
389 break;
390 return 1; // "APlusZeroMinusB"
391 }
392 break;
393 case 'C': // 1 string to match.
394 if (memcmp(RuleIdentifier.data()+1, "1Minus2MinusC2", 14) != 0)
395 break;
396 return 11; // "C1Minus2MinusC2"
397 case 'Z': // 1 string to match.
398 if (memcmp(RuleIdentifier.data()+1, "eroMinusAPlusB", 14) != 0)
399 break;
400 return 0; // "ZeroMinusAPlusB"
401 case 'b': // 1 string to match.
402 if (memcmp(RuleIdentifier.data()+1, "itreverse_lshr", 14) != 0)
403 break;
404 return 160; // "bitreverse_lshr"
405 case 'e': // 1 string to match.
406 if (memcmp(RuleIdentifier.data()+1, "xtending_loads", 14) != 0)
407 break;
408 return 68; // "extending_loads"
409 case 'i': // 1 string to match.
410 if (memcmp(RuleIdentifier.data()+1, "dempotent_prop", 14) != 0)
411 break;
412 return 18; // "idempotent_prop"
413 case 'l': // 1 string to match.
414 if (memcmp(RuleIdentifier.data()+1, "oad_or_combine", 14) != 0)
415 break;
416 return 152; // "load_or_combine"
417 case 'n': // 1 string to match.
418 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_or", 14) != 0)
419 break;
420 return 62; // "narrow_binop_or"
421 case 'o': // 1 string to match.
422 if (memcmp(RuleIdentifier.data()+1, "verlapping_and", 14) != 0)
423 break;
424 return 142; // "overlapping_and"
425 case 's': // 1 string to match.
426 if (memcmp(RuleIdentifier.data()+1, "elect_same_val", 14) != 0)
427 break;
428 return 83; // "select_same_val"
429 case 'z': // 1 string to match.
430 if (memcmp(RuleIdentifier.data()+1, "ext_trunc_fold", 14) != 0)
431 break;
432 return 129; // "zext_trunc_fold"
433 }
434 break;
435 case 16: // 13 strings to match.
436 switch (RuleIdentifier[0]) {
437 default: break;
438 case 'a': // 1 string to match.
439 if (memcmp(RuleIdentifier.data()+1, "nyext_of_anyext", 15) != 0)
440 break;
441 return 50; // "anyext_of_anyext"
442 case 'c': // 1 string to match.
443 if (memcmp(RuleIdentifier.data()+1, "lamp_i64_to_i16", 15) != 0)
444 break;
445 return 216; // "clamp_i64_to_i16"
446 case 'n': // 5 strings to match.
447 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_", 12) != 0)
448 break;
449 switch (RuleIdentifier[13]) {
450 default: break;
451 case 'a': // 2 strings to match.
452 switch (RuleIdentifier[14]) {
453 default: break;
454 case 'd': // 1 string to match.
455 if (RuleIdentifier[15] != 'd')
456 break;
457 return 58; // "narrow_binop_add"
458 case 'n': // 1 string to match.
459 if (RuleIdentifier[15] != 'd')
460 break;
461 return 61; // "narrow_binop_and"
462 }
463 break;
464 case 'm': // 1 string to match.
465 if (memcmp(RuleIdentifier.data()+14, "ul", 2) != 0)
466 break;
467 return 60; // "narrow_binop_mul"
468 case 's': // 1 string to match.
469 if (memcmp(RuleIdentifier.data()+14, "ub", 2) != 0)
470 break;
471 return 59; // "narrow_binop_sub"
472 case 'x': // 1 string to match.
473 if (memcmp(RuleIdentifier.data()+14, "or", 2) != 0)
474 break;
475 return 63; // "narrow_binop_xor"
476 }
477 break;
478 case 's': // 3 strings to match.
479 if (memcmp(RuleIdentifier.data()+1, "elect_", 6) != 0)
480 break;
481 switch (RuleIdentifier[7]) {
482 default: break;
483 case 'o': // 1 string to match.
484 if (memcmp(RuleIdentifier.data()+8, "f_anyext", 8) != 0)
485 break;
486 return 55; // "select_of_anyext"
487 case 't': // 1 string to match.
488 if (memcmp(RuleIdentifier.data()+8, "o_minmax", 8) != 0)
489 break;
490 return 189; // "select_to_minmax"
491 case 'u': // 1 string to match.
492 if (memcmp(RuleIdentifier.data()+8, "ndef_cmp", 8) != 0)
493 break;
494 return 121; // "select_undef_cmp"
495 }
496 break;
497 case 't': // 2 strings to match.
498 if (memcmp(RuleIdentifier.data()+1, "runcate_of_", 11) != 0)
499 break;
500 switch (RuleIdentifier[12]) {
501 default: break;
502 case 's': // 1 string to match.
503 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
504 break;
505 return 44; // "truncate_of_sext"
506 case 'z': // 1 string to match.
507 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
508 break;
509 return 43; // "truncate_of_zext"
510 }
511 break;
512 case 'u': // 1 string to match.
513 if (memcmp(RuleIdentifier.data()+1, "ndef_to_fp_zero", 15) != 0)
514 break;
515 return 71; // "undef_to_fp_zero"
516 }
517 break;
518 case 17: // 14 strings to match.
519 switch (RuleIdentifier[0]) {
520 default: break;
521 case 'A': // 2 strings to match.
522 if (memcmp(RuleIdentifier.data()+1, "PlusBMinus", 10) != 0)
523 break;
524 switch (RuleIdentifier[11]) {
525 default: break;
526 case 'A': // 1 string to match.
527 if (memcmp(RuleIdentifier.data()+12, "plusC", 5) != 0)
528 break;
529 return 6; // "APlusBMinusAplusC"
530 case 'C': // 1 string to match.
531 if (memcmp(RuleIdentifier.data()+12, "PlusA", 5) != 0)
532 break;
533 return 7; // "APlusBMinusCPlusA"
534 }
535 break;
536 case 'a': // 2 strings to match.
537 switch (RuleIdentifier[1]) {
538 default: break;
539 case 'd': // 1 string to match.
540 if (memcmp(RuleIdentifier.data()+2, "d_p2i_to_ptradd", 15) != 0)
541 break;
542 return 16; // "add_p2i_to_ptradd"
543 case 'n': // 1 string to match.
544 if (memcmp(RuleIdentifier.data()+2, "yext_trunc_fold", 15) != 0)
545 break;
546 return 90; // "anyext_trunc_fold"
547 }
548 break;
549 case 'c': // 3 strings to match.
550 switch (RuleIdentifier[1]) {
551 default: break;
552 case 'a': // 2 strings to match.
553 if (memcmp(RuleIdentifier.data()+2, "nonicalize_", 11) != 0)
554 break;
555 switch (RuleIdentifier[13]) {
556 default: break;
557 case 'f': // 1 string to match.
558 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
559 break;
560 return 110; // "canonicalize_fcmp"
561 case 'i': // 1 string to match.
562 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
563 break;
564 return 109; // "canonicalize_icmp"
565 }
566 break;
567 case 'o': // 1 string to match.
568 if (memcmp(RuleIdentifier.data()+2, "nstant_fold_fma", 15) != 0)
569 break;
570 return 168; // "constant_fold_fma"
571 }
572 break;
573 case 'd': // 1 string to match.
574 if (memcmp(RuleIdentifier.data()+1, "iv_rem_to_divrem", 16) != 0)
575 break;
576 return 153; // "div_rem_to_divrem"
577 case 'e': // 1 string to match.
578 if (memcmp(RuleIdentifier.data()+1, "rase_undef_store", 16) != 0)
579 break;
580 return 81; // "erase_undef_store"
581 case 'p': // 1 string to match.
582 if (memcmp(RuleIdentifier.data()+1, "tr_add_with_zero", 16) != 0)
583 break;
584 return 149; // "ptr_add_with_zero"
585 case 's': // 2 strings to match.
586 switch (RuleIdentifier[1]) {
587 default: break;
588 case 'e': // 1 string to match.
589 if (memcmp(RuleIdentifier.data()+2, "lect_to_iminmax", 15) != 0)
590 break;
591 return 123; // "select_to_iminmax"
592 case 'h': // 1 string to match.
593 if (memcmp(RuleIdentifier.data()+2, "ift_immed_chain", 15) != 0)
594 break;
595 return 150; // "shift_immed_chain"
596 }
597 break;
598 case 'u': // 2 strings to match.
599 switch (RuleIdentifier[1]) {
600 default: break;
601 case 'n': // 1 string to match.
602 if (memcmp(RuleIdentifier.data()+2, "def_to_int_zero", 15) != 0)
603 break;
604 return 72; // "undef_to_int_zero"
605 case 'r': // 1 string to match.
606 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
607 break;
608 return 128; // "urem_pow2_to_mask"
609 }
610 break;
611 }
612 break;
613 case 18: // 11 strings to match.
614 switch (RuleIdentifier[0]) {
615 default: break;
616 case 'A': // 2 strings to match.
617 if (memcmp(RuleIdentifier.data()+1, "MinusBPlus", 10) != 0)
618 break;
619 switch (RuleIdentifier[11]) {
620 default: break;
621 case 'B': // 1 string to match.
622 if (memcmp(RuleIdentifier.data()+12, "MinusC", 6) != 0)
623 break;
624 return 5; // "AMinusBPlusBMinusC"
625 case 'C': // 1 string to match.
626 if (memcmp(RuleIdentifier.data()+12, "MinusA", 6) != 0)
627 break;
628 return 4; // "AMinusBPlusCMinusA"
629 }
630 break;
631 case 'b': // 1 string to match.
632 if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
633 break;
634 return 86; // "binop_left_to_zero"
635 case 'c': // 3 strings to match.
636 if (RuleIdentifier[1] != 'o')
637 break;
638 switch (RuleIdentifier[2]) {
639 default: break;
640 case 'm': // 1 string to match.
641 if (memcmp(RuleIdentifier.data()+3, "bine_minmax_nan", 15) != 0)
642 break;
643 return 146; // "combine_minmax_nan"
644 case 'n': // 2 strings to match.
645 if (memcmp(RuleIdentifier.data()+3, "stant_fold_f", 12) != 0)
646 break;
647 switch (RuleIdentifier[15]) {
648 default: break;
649 case 'a': // 1 string to match.
650 if (memcmp(RuleIdentifier.data()+16, "bs", 2) != 0)
651 break;
652 return 135; // "constant_fold_fabs"
653 case 'n': // 1 string to match.
654 if (memcmp(RuleIdentifier.data()+16, "eg", 2) != 0)
655 break;
656 return 134; // "constant_fold_fneg"
657 }
658 break;
659 }
660 break;
661 case 'e': // 1 string to match.
662 if (memcmp(RuleIdentifier.data()+1, "xpand_const_fpowi", 17) != 0)
663 break;
664 return 147; // "expand_const_fpowi"
665 case 'f': // 1 string to match.
666 if (memcmp(RuleIdentifier.data()+1, "ptrunc_fpext_fold", 17) != 0)
667 break;
668 return 99; // "fptrunc_fpext_fold"
669 case 's': // 2 strings to match.
670 if (RuleIdentifier[1] != 'e')
671 break;
672 switch (RuleIdentifier[2]) {
673 default: break;
674 case 'l': // 1 string to match.
675 if (memcmp(RuleIdentifier.data()+3, "ect_of_truncate", 15) != 0)
676 break;
677 return 56; // "select_of_truncate"
678 case 'x': // 1 string to match.
679 if (memcmp(RuleIdentifier.data()+3, "t_inreg_of_load", 15) != 0)
680 break;
681 return 118; // "sext_inreg_of_load"
682 }
683 break;
684 case 't': // 1 string to match.
685 if (memcmp(RuleIdentifier.data()+1, "runcate_of_anyext", 17) != 0)
686 break;
687 return 45; // "truncate_of_anyext"
688 }
689 break;
690 case 19: // 15 strings to match.
691 switch (RuleIdentifier[0]) {
692 default: break;
693 case 'b': // 1 string to match.
694 if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
695 break;
696 return 87; // "binop_right_to_zero"
697 case 'c': // 4 strings to match.
698 if (memcmp(RuleIdentifier.data()+1, "onst", 4) != 0)
699 break;
700 switch (RuleIdentifier[5]) {
701 default: break;
702 case '_': // 1 string to match.
703 if (memcmp(RuleIdentifier.data()+6, "ptradd_to_i2p", 13) != 0)
704 break;
705 return 141; // "const_ptradd_to_i2p"
706 case 'a': // 3 strings to match.
707 if (memcmp(RuleIdentifier.data()+6, "nt_fold_", 8) != 0)
708 break;
709 switch (RuleIdentifier[14]) {
710 default: break;
711 case 'b': // 1 string to match.
712 if (memcmp(RuleIdentifier.data()+15, "inop", 4) != 0)
713 break;
714 return 166; // "constant_fold_binop"
715 case 'f': // 2 strings to match.
716 switch (RuleIdentifier[15]) {
717 default: break;
718 case 'l': // 1 string to match.
719 if (memcmp(RuleIdentifier.data()+16, "og2", 3) != 0)
720 break;
721 return 137; // "constant_fold_flog2"
722 case 's': // 1 string to match.
723 if (memcmp(RuleIdentifier.data()+16, "qrt", 3) != 0)
724 break;
725 return 136; // "constant_fold_fsqrt"
726 }
727 break;
728 }
729 break;
730 }
731 break;
732 case 'e': // 1 string to match.
733 if (memcmp(RuleIdentifier.data()+1, "xtend_through_phis", 18) != 0)
734 break;
735 return 102; // "extend_through_phis"
736 case 'i': // 1 string to match.
737 if (memcmp(RuleIdentifier.data()+1, "nteger_of_truncate", 18) != 0)
738 break;
739 return 64; // "integer_of_truncate"
740 case 'm': // 1 string to match.
741 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_zero", 18) != 0)
742 break;
743 return 212; // "merge_of_x_and_zero"
744 case 'p': // 1 string to match.
745 if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
746 break;
747 return 108; // "ptr_add_immed_chain"
748 case 'r': // 2 strings to match.
749 switch (RuleIdentifier[1]) {
750 default: break;
751 case 'e': // 1 string to match.
752 if (memcmp(RuleIdentifier.data()+2, "assoc_comm_binops", 17) != 0)
753 break;
754 return 107; // "reassoc_comm_binops"
755 case 'i': // 1 string to match.
756 if (memcmp(RuleIdentifier.data()+2, "ght_identity_zero", 17) != 0)
757 break;
758 return 84; // "right_identity_zero"
759 }
760 break;
761 case 's': // 3 strings to match.
762 switch (RuleIdentifier[1]) {
763 default: break;
764 case 'e': // 1 string to match.
765 if (memcmp(RuleIdentifier.data()+2, "lect_constant_cmp", 17) != 0)
766 break;
767 return 122; // "select_constant_cmp"
768 case 'i': // 2 strings to match.
769 if (memcmp(RuleIdentifier.data()+2, "mplify_", 7) != 0)
770 break;
771 switch (RuleIdentifier[9]) {
772 default: break;
773 case 'a': // 1 string to match.
774 if (memcmp(RuleIdentifier.data()+10, "dd_to_sub", 9) != 0)
775 break;
776 return 103; // "simplify_add_to_sub"
777 case 'n': // 1 string to match.
778 if (memcmp(RuleIdentifier.data()+10, "eg_minmax", 9) != 0)
779 break;
780 return 195; // "simplify_neg_minmax"
781 }
782 break;
783 }
784 break;
785 case 'u': // 1 string to match.
786 if (memcmp(RuleIdentifier.data()+1, "nary_undef_to_zero", 18) != 0)
787 break;
788 return 76; // "unary_undef_to_zero"
789 }
790 break;
791 case 20: // 7 strings to match.
792 switch (RuleIdentifier[0]) {
793 default: break;
794 case 'a': // 1 string to match.
795 if (memcmp(RuleIdentifier.data()+1, "nd_or_disjoint_mask", 19) != 0)
796 break;
797 return 177; // "and_or_disjoint_mask"
798 case 'b': // 1 string to match.
799 if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold", 19) != 0)
800 break;
801 return 98; // "bitcast_bitcast_fold"
802 case 'm': // 1 string to match.
803 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_undef", 19) != 0)
804 break;
805 return 211; // "merge_of_x_and_undef"
806 case 'r': // 2 strings to match.
807 if (memcmp(RuleIdentifier.data()+1, "edu", 3) != 0)
808 break;
809 switch (RuleIdentifier[4]) {
810 default: break;
811 case 'c': // 1 string to match.
812 if (memcmp(RuleIdentifier.data()+5, "e_shl_of_extend", 15) != 0)
813 break;
814 return 119; // "reduce_shl_of_extend"
815 case 'n': // 1 string to match.
816 if (memcmp(RuleIdentifier.data()+5, "dant_sext_inreg", 15) != 0)
817 break;
818 return 126; // "redundant_sext_inreg"
819 }
820 break;
821 case 'u': // 2 strings to match.
822 if (RuleIdentifier[1] != 'n')
823 break;
824 switch (RuleIdentifier[2]) {
825 default: break;
826 case 'a': // 1 string to match.
827 if (memcmp(RuleIdentifier.data()+3, "ry_undef_to_undef", 17) != 0)
828 break;
829 return 77; // "unary_undef_to_undef"
830 case 'm': // 1 string to match.
831 if (memcmp(RuleIdentifier.data()+3, "erge_zext_to_zext", 17) != 0)
832 break;
833 return 210; // "unmerge_zext_to_zext"
834 }
835 break;
836 }
837 break;
838 case 21: // 7 strings to match.
839 switch (RuleIdentifier[0]) {
840 default: break;
841 case 'c': // 3 strings to match.
842 if (RuleIdentifier[1] != 'o')
843 break;
844 switch (RuleIdentifier[2]) {
845 default: break;
846 case 'm': // 1 string to match.
847 if (memcmp(RuleIdentifier.data()+3, "bine_concat_vector", 18) != 0)
848 break;
849 return 196; // "combine_concat_vector"
850 case 'n': // 2 strings to match.
851 if (memcmp(RuleIdentifier.data()+3, "stant_fold_", 11) != 0)
852 break;
853 switch (RuleIdentifier[14]) {
854 default: break;
855 case 'c': // 1 string to match.
856 if (memcmp(RuleIdentifier.data()+15, "ast_op", 6) != 0)
857 break;
858 return 169; // "constant_fold_cast_op"
859 case 'f': // 1 string to match.
860 if (memcmp(RuleIdentifier.data()+15, "ptrunc", 6) != 0)
861 break;
862 return 138; // "constant_fold_fptrunc"
863 }
864 break;
865 }
866 break;
867 case 'i': // 1 string to match.
868 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_elt_oob", 20) != 0)
869 break;
870 return 24; // "insert_vector_elt_oob"
871 case 'r': // 1 string to match.
872 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
873 break;
874 return 93; // "right_identity_one_fp"
875 case 'u': // 2 strings to match.
876 if (RuleIdentifier[1] != 'n')
877 break;
878 switch (RuleIdentifier[2]) {
879 default: break;
880 case 'd': // 1 string to match.
881 if (memcmp(RuleIdentifier.data()+3, "ef_to_negative_one", 18) != 0)
882 break;
883 return 73; // "undef_to_negative_one"
884 case 'm': // 1 string to match.
885 if (memcmp(RuleIdentifier.data()+3, "erge_dead_to_trunc", 18) != 0)
886 break;
887 return 209; // "unmerge_dead_to_trunc"
888 }
889 break;
890 }
891 break;
892 case 22: // 13 strings to match.
893 switch (RuleIdentifier[0]) {
894 default: break;
895 case 'c': // 2 strings to match.
896 if (RuleIdentifier[1] != 'o')
897 break;
898 switch (RuleIdentifier[2]) {
899 default: break;
900 case 'm': // 1 string to match.
901 if (memcmp(RuleIdentifier.data()+3, "bine_shuffle_concat", 19) != 0)
902 break;
903 return 200; // "combine_shuffle_concat"
904 case 'n': // 1 string to match.
905 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fp_binop", 19) != 0)
906 break;
907 return 167; // "constant_fold_fp_binop"
908 }
909 break;
910 case 'f': // 4 strings to match.
911 switch (RuleIdentifier[1]) {
912 default: break;
913 case 'o': // 1 string to match.
914 if (memcmp(RuleIdentifier.data()+2, "ld_binop_into_select", 20) != 0)
915 break;
916 return 186; // "fold_binop_into_select"
917 case 'u': // 3 strings to match.
918 if (memcmp(RuleIdentifier.data()+2, "nnel_shift_", 11) != 0)
919 break;
920 switch (RuleIdentifier[13]) {
921 default: break;
922 case 'l': // 1 string to match.
923 if (memcmp(RuleIdentifier.data()+14, "eft_zero", 8) != 0)
924 break;
925 return 157; // "funnel_shift_left_zero"
926 case 'o': // 1 string to match.
927 if (memcmp(RuleIdentifier.data()+14, "vershift", 8) != 0)
928 break;
929 return 158; // "funnel_shift_overshift"
930 case 't': // 1 string to match.
931 if (memcmp(RuleIdentifier.data()+14, "o_rotate", 8) != 0)
932 break;
933 return 155; // "funnel_shift_to_rotate"
934 }
935 break;
936 }
937 break;
938 case 'i': // 1 string to match.
939 if (memcmp(RuleIdentifier.data()+1, "cmp_to_lhs_known_bits", 21) != 0)
940 break;
941 return 112; // "icmp_to_lhs_known_bits"
942 case 'm': // 1 string to match.
943 if (memcmp(RuleIdentifier.data()+1, "atch_subo_no_overflow", 21) != 0)
944 break;
945 return 214; // "match_subo_no_overflow"
946 case 'p': // 1 string to match.
947 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_any_op", 21) != 0)
948 break;
949 return 78; // "propagate_undef_any_op"
950 case 'r': // 2 strings to match.
951 switch (RuleIdentifier[1]) {
952 default: break;
953 case 'e': // 1 string to match.
954 if (memcmp(RuleIdentifier.data()+2, "dundant_neg_operands", 20) != 0)
955 break;
956 return 176; // "redundant_neg_operands"
957 case 'i': // 1 string to match.
958 if (memcmp(RuleIdentifier.data()+2, "ght_identity_one_int", 20) != 0)
959 break;
960 return 92; // "right_identity_one_int"
961 }
962 break;
963 case 's': // 1 string to match.
964 if (memcmp(RuleIdentifier.data()+1, "hl_ashr_to_sext_inreg", 21) != 0)
965 break;
966 return 116; // "shl_ashr_to_sext_inreg"
967 case 't': // 1 string to match.
968 if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold", 21) != 0)
969 break;
970 return 96; // "trunc_buildvector_fold"
971 }
972 break;
973 case 23: // 5 strings to match.
974 switch (RuleIdentifier[0]) {
975 default: break;
976 case 'b': // 1 string to match.
977 if (memcmp(RuleIdentifier.data()+1, "uildvector_of_truncate", 22) != 0)
978 break;
979 return 57; // "buildvector_of_truncate"
980 case 'f': // 1 string to match.
981 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_right_zero", 22) != 0)
982 break;
983 return 156; // "funnel_shift_right_zero"
984 case 'i': // 2 strings to match.
985 if (memcmp(RuleIdentifier.data()+1, "tof_const_zero_fold_", 20) != 0)
986 break;
987 switch (RuleIdentifier[21]) {
988 default: break;
989 case 's': // 1 string to match.
990 if (RuleIdentifier[22] != 'i')
991 break;
992 return 139; // "itof_const_zero_fold_si"
993 case 'u': // 1 string to match.
994 if (RuleIdentifier[22] != 'i')
995 break;
996 return 140; // "itof_const_zero_fold_ui"
997 }
998 break;
999 case 'p': // 1 string to match.
1000 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_all_ops", 22) != 0)
1001 break;
1002 return 79; // "propagate_undef_all_ops"
1003 }
1004 break;
1005 case 24: // 6 strings to match.
1006 switch (RuleIdentifier[0]) {
1007 default: break;
1008 case 'b': // 1 string to match.
1009 if (memcmp(RuleIdentifier.data()+1, "inop_left_undef_to_zero", 23) != 0)
1010 break;
1011 return 74; // "binop_left_undef_to_zero"
1012 case 'm': // 1 string to match.
1013 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element", 23) != 0)
1014 break;
1015 return 23; // "match_extract_of_element"
1016 case 'n': // 1 string to match.
1017 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_feeding_and", 23) != 0)
1018 break;
1019 return 120; // "narrow_binop_feeding_and"
1020 case 's': // 2 strings to match.
1021 if (memcmp(RuleIdentifier.data()+1, "ext_inreg_", 10) != 0)
1022 break;
1023 switch (RuleIdentifier[11]) {
1024 default: break;
1025 case 'o': // 1 string to match.
1026 if (memcmp(RuleIdentifier.data()+12, "f_sext_inreg", 12) != 0)
1027 break;
1028 return 53; // "sext_inreg_of_sext_inreg"
1029 case 't': // 1 string to match.
1030 if (memcmp(RuleIdentifier.data()+12, "o_zext_inreg", 12) != 0)
1031 break;
1032 return 130; // "sext_inreg_to_zext_inreg"
1033 }
1034 break;
1035 case 'x': // 1 string to match.
1036 if (memcmp(RuleIdentifier.data()+1, "or_of_and_with_same_reg", 23) != 0)
1037 break;
1038 return 148; // "xor_of_and_with_same_reg"
1039 }
1040 break;
1041 case 25: // 7 strings to match.
1042 switch (RuleIdentifier[0]) {
1043 default: break;
1044 case 'b': // 3 strings to match.
1045 switch (RuleIdentifier[1]) {
1046 default: break;
1047 case 'i': // 2 strings to match.
1048 if (memcmp(RuleIdentifier.data()+2, "tfield_extract_from_", 20) != 0)
1049 break;
1050 switch (RuleIdentifier[22]) {
1051 default: break;
1052 case 'a': // 1 string to match.
1053 if (memcmp(RuleIdentifier.data()+23, "nd", 2) != 0)
1054 break;
1055 return 163; // "bitfield_extract_from_and"
1056 case 's': // 1 string to match.
1057 if (memcmp(RuleIdentifier.data()+23, "hr", 2) != 0)
1058 break;
1059 return 164; // "bitfield_extract_from_shr"
1060 }
1061 break;
1062 case 'u': // 1 string to match.
1063 if (memcmp(RuleIdentifier.data()+2, "ildvector_identity_fold", 23) != 0)
1064 break;
1065 return 95; // "buildvector_identity_fold"
1066 }
1067 break;
1068 case 'c': // 1 string to match.
1069 if (memcmp(RuleIdentifier.data()+1, "ombine_shuffle_undef_rhs", 24) != 0)
1070 break;
1071 return 201; // "combine_shuffle_undef_rhs"
1072 case 'e': // 1 string to match.
1073 if (memcmp(RuleIdentifier.data()+1, "xtract_vec_elt_build_vec", 24) != 0)
1074 break;
1075 return 66; // "extract_vec_elt_build_vec"
1076 case 'n': // 1 string to match.
1077 if (memcmp(RuleIdentifier.data()+1, "eg_and_one_to_sext_inreg", 24) != 0)
1078 break;
1079 return 117; // "neg_and_one_to_sext_inreg"
1080 case 'r': // 1 string to match.
1081 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_one_fp", 24) != 0)
1082 break;
1083 return 101; // "right_identity_neg_one_fp"
1084 }
1085 break;
1086 case 26: // 4 strings to match.
1087 switch (RuleIdentifier[0]) {
1088 default: break;
1089 case 'b': // 1 string to match.
1090 if (memcmp(RuleIdentifier.data()+1, "inop_right_undef_to_undef", 25) != 0)
1091 break;
1092 return 75; // "binop_right_undef_to_undef"
1093 case 'c': // 1 string to match.
1094 if (memcmp(RuleIdentifier.data()+1, "ommute_fp_constant_to_rhs", 25) != 0)
1095 break;
1096 return 192; // "commute_fp_constant_to_rhs"
1097 case 'f': // 1 string to match.
1098 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_from_or_shift", 25) != 0)
1099 break;
1100 return 154; // "funnel_shift_from_or_shift"
1101 case 'r': // 1 string to match.
1102 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp", 25) != 0)
1103 break;
1104 return 100; // "right_identity_neg_zero_fp"
1105 }
1106 break;
1107 case 27: // 6 strings to match.
1108 switch (RuleIdentifier[0]) {
1109 default: break;
1110 case 'c': // 2 strings to match.
1111 if (memcmp(RuleIdentifier.data()+1, "om", 2) != 0)
1112 break;
1113 switch (RuleIdentifier[3]) {
1114 default: break;
1115 case 'b': // 1 string to match.
1116 if (memcmp(RuleIdentifier.data()+4, "ine_use_vector_truncate", 23) != 0)
1117 break;
1118 return 203; // "combine_use_vector_truncate"
1119 case 'm': // 1 string to match.
1120 if (memcmp(RuleIdentifier.data()+4, "ute_int_constant_to_rhs", 23) != 0)
1121 break;
1122 return 191; // "commute_int_constant_to_rhs"
1123 }
1124 break;
1125 case 'd': // 1 string to match.
1126 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_or_combine", 26) != 0)
1127 break;
1128 return 114; // "double_icmp_zero_or_combine"
1129 case 'r': // 1 string to match.
1130 if (memcmp(RuleIdentifier.data()+1, "edundant_binop_in_equality", 26) != 0)
1131 break;
1132 return 115; // "redundant_binop_in_equality"
1133 case 't': // 1 string to match.
1134 if (memcmp(RuleIdentifier.data()+1, "runc_lshr_buildvector_fold", 26) != 0)
1135 break;
1136 return 97; // "trunc_lshr_buildvector_fold"
1137 case 'u': // 1 string to match.
1138 if (memcmp(RuleIdentifier.data()+1, "nmerge_anyext_build_vector", 26) != 0)
1139 break;
1140 return 204; // "unmerge_anyext_build_vector"
1141 }
1142 break;
1143 case 28: // 4 strings to match.
1144 switch (RuleIdentifier[0]) {
1145 default: break;
1146 case 'd': // 1 string to match.
1147 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_and_combine", 27) != 0)
1148 break;
1149 return 113; // "double_icmp_zero_and_combine"
1150 case 'o': // 1 string to match.
1151 if (memcmp(RuleIdentifier.data()+1, "pt_brcond_by_inverting_cond", 27) != 0)
1152 break;
1153 return 133; // "opt_brcond_by_inverting_cond"
1154 case 'p': // 1 string to match.
1155 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_shuffle_mask", 27) != 0)
1156 break;
1157 return 80; // "propagate_undef_shuffle_mask"
1158 case 's': // 1 string to match.
1159 if (memcmp(RuleIdentifier.data()+1, "hift_of_shifted_logic_chain", 27) != 0)
1160 break;
1161 return 151; // "shift_of_shifted_logic_chain"
1162 }
1163 break;
1164 case 29: // 4 strings to match.
1165 switch (RuleIdentifier[0]) {
1166 default: break;
1167 case 'b': // 1 string to match.
1168 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_shr_and", 28) != 0)
1169 break;
1170 return 165; // "bitfield_extract_from_shr_and"
1171 case 'c': // 2 strings to match.
1172 if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
1173 break;
1174 switch (RuleIdentifier[8]) {
1175 default: break;
1176 case 'e': // 1 string to match.
1177 if (memcmp(RuleIdentifier.data()+9, "xtracted_vector_load", 20) != 0)
1178 break;
1179 return 70; // "combine_extracted_vector_load"
1180 case 's': // 1 string to match.
1181 if (memcmp(RuleIdentifier.data()+9, "huffle_disjoint_mask", 20) != 0)
1182 break;
1183 return 202; // "combine_shuffle_disjoint_mask"
1184 }
1185 break;
1186 case 'i': // 1 string to match.
1187 if (memcmp(RuleIdentifier.data()+1, "cmp_to_true_false_known_bits", 28) != 0)
1188 break;
1189 return 111; // "icmp_to_true_false_known_bits"
1190 }
1191 break;
1192 case 30: // 1 string to match.
1193 if (memcmp(RuleIdentifier.data()+0, "freeze_of_non_undef_non_poison", 30) != 0)
1194 break;
1195 return 41; // "freeze_of_non_undef_non_poison"
1196 case 31: // 2 strings to match.
1197 if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_", 22) != 0)
1198 break;
1199 switch (RuleIdentifier[22]) {
1200 default: break;
1201 case 'e': // 1 string to match.
1202 if (memcmp(RuleIdentifier.data()+23, "lt_undef", 8) != 0)
1203 break;
1204 return 22; // "insert_vector_element_elt_undef"
1205 case 'i': // 1 string to match.
1206 if (memcmp(RuleIdentifier.data()+23, "dx_undef", 8) != 0)
1207 break;
1208 return 21; // "insert_vector_element_idx_undef"
1209 }
1210 break;
1211 case 32: // 4 strings to match.
1212 switch (RuleIdentifier[0]) {
1213 default: break;
1214 case 'b': // 1 string to match.
1215 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_sext_inreg", 31) != 0)
1216 break;
1217 return 162; // "bitfield_extract_from_sext_inreg"
1218 case 'c': // 2 strings to match.
1219 if (memcmp(RuleIdentifier.data()+1, "ombine_f", 8) != 0)
1220 break;
1221 switch (RuleIdentifier[9]) {
1222 default: break;
1223 case 'a': // 1 string to match.
1224 if (memcmp(RuleIdentifier.data()+10, "dd_fmul_to_fmad_or_fma", 22) != 0)
1225 break;
1226 return 178; // "combine_fadd_fmul_to_fmad_or_fma"
1227 case 's': // 1 string to match.
1228 if (memcmp(RuleIdentifier.data()+10, "ub_fmul_to_fmad_or_fma", 22) != 0)
1229 break;
1230 return 182; // "combine_fsub_fmul_to_fmad_or_fma"
1231 }
1232 break;
1233 case 'e': // 1 string to match.
1234 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_not_const", 31) != 0)
1235 break;
1236 return 25; // "extract_vector_element_not_const"
1237 }
1238 break;
1239 case 34: // 2 strings to match.
1240 switch (RuleIdentifier[0]) {
1241 default: break;
1242 case 'c': // 1 string to match.
1243 if (memcmp(RuleIdentifier.data()+1, "ombine_fmul_with_select_to_fldexp", 33) != 0)
1244 break;
1245 return 215; // "combine_fmul_with_select_to_fldexp"
1246 case 'e': // 1 string to match.
1247 if (memcmp(RuleIdentifier.data()+1, "xtract_all_elts_from_build_vector", 33) != 0)
1248 break;
1249 return 67; // "extract_all_elts_from_build_vector"
1250 }
1251 break;
1252 case 35: // 1 string to match.
1253 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_build_vector", 35) != 0)
1254 break;
1255 return 27; // "extract_vector_element_build_vector"
1256 case 36: // 4 strings to match.
1257 switch (RuleIdentifier[0]) {
1258 default: break;
1259 case 'c': // 2 strings to match.
1260 if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
1261 break;
1262 switch (RuleIdentifier[8]) {
1263 default: break;
1264 case 'f': // 1 string to match.
1265 if (memcmp(RuleIdentifier.data()+9, "add_fma_fmul_to_fmad_or_fma", 27) != 0)
1266 break;
1267 return 180; // "combine_fadd_fma_fmul_to_fmad_or_fma"
1268 case 'i': // 1 string to match.
1269 if (memcmp(RuleIdentifier.data()+9, "nsert_vec_elts_build_vector", 27) != 0)
1270 break;
1271 return 65; // "combine_insert_vec_elts_build_vector"
1272 }
1273 break;
1274 case 'i': // 1 string to match.
1275 if (memcmp(RuleIdentifier.data()+1, "nsert_extract_vec_elt_out_of_bounds", 35) != 0)
1276 break;
1277 return 82; // "insert_extract_vec_elt_out_of_bounds"
1278 case 'm': // 1 string to match.
1279 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_index", 35) != 0)
1280 break;
1281 return 20; // "match_extract_of_element_undef_index"
1282 }
1283 break;
1284 case 37: // 4 strings to match.
1285 switch (RuleIdentifier[0]) {
1286 default: break;
1287 case 'c': // 1 string to match.
1288 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fneg_fmul_to_fmad_or_fma", 36) != 0)
1289 break;
1290 return 183; // "combine_fsub_fneg_fmul_to_fmad_or_fma"
1291 case 'e': // 1 string to match.
1292 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_shuffle_vector", 36) != 0)
1293 break;
1294 return 35; // "extract_vector_element_shuffle_vector"
1295 case 'h': // 1 string to match.
1296 if (memcmp(RuleIdentifier.data()+1, "oist_logic_op_with_same_opcode_hands", 36) != 0)
1297 break;
1298 return 104; // "hoist_logic_op_with_same_opcode_hands"
1299 case 'm': // 1 string to match.
1300 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_vector", 36) != 0)
1301 break;
1302 return 19; // "match_extract_of_element_undef_vector"
1303 }
1304 break;
1305 case 38: // 3 strings to match.
1306 if (memcmp(RuleIdentifier.data()+0, "combine_", 8) != 0)
1307 break;
1308 switch (RuleIdentifier[8]) {
1309 default: break;
1310 case 'f': // 2 strings to match.
1311 switch (RuleIdentifier[9]) {
1312 default: break;
1313 case 'a': // 1 string to match.
1314 if (memcmp(RuleIdentifier.data()+10, "dd_fpext_fmul_to_fmad_or_fma", 28) != 0)
1315 break;
1316 return 179; // "combine_fadd_fpext_fmul_to_fmad_or_fma"
1317 case 's': // 1 string to match.
1318 if (memcmp(RuleIdentifier.data()+10, "ub_fpext_fmul_to_fmad_or_fma", 28) != 0)
1319 break;
1320 return 184; // "combine_fsub_fpext_fmul_to_fmad_or_fma"
1321 }
1322 break;
1323 case 's': // 1 string to match.
1324 if (memcmp(RuleIdentifier.data()+9, "huffle_vector_to_build_vector", 29) != 0)
1325 break;
1326 return 218; // "combine_shuffle_vector_to_build_vector"
1327 }
1328 break;
1329 case 40: // 1 string to match.
1330 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_different_indices", 40) != 0)
1331 break;
1332 return 26; // "extract_vector_element_different_indices"
1333 case 42: // 8 strings to match.
1334 switch (RuleIdentifier[0]) {
1335 default: break;
1336 case 'c': // 1 string to match.
1337 if (memcmp(RuleIdentifier.data()+1, "ombine_fadd_fpext_fma_fmul_to_fmad_or_fma", 41) != 0)
1338 break;
1339 return 181; // "combine_fadd_fpext_fma_fmul_to_fmad_or_fma"
1340 case 'e': // 7 strings to match.
1341 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_build_vector_trunc", 40) != 0)
1342 break;
1343 switch (RuleIdentifier[41]) {
1344 default: break;
1345 case '2': // 1 string to match.
1346 return 28; // "extract_vector_element_build_vector_trunc2"
1347 case '3': // 1 string to match.
1348 return 29; // "extract_vector_element_build_vector_trunc3"
1349 case '4': // 1 string to match.
1350 return 30; // "extract_vector_element_build_vector_trunc4"
1351 case '5': // 1 string to match.
1352 return 31; // "extract_vector_element_build_vector_trunc5"
1353 case '6': // 1 string to match.
1354 return 32; // "extract_vector_element_build_vector_trunc6"
1355 case '7': // 1 string to match.
1356 return 33; // "extract_vector_element_build_vector_trunc7"
1357 case '8': // 1 string to match.
1358 return 34; // "extract_vector_element_build_vector_trunc8"
1359 }
1360 break;
1361 }
1362 break;
1363 case 43: // 1 string to match.
1364 if (memcmp(RuleIdentifier.data()+0, "combine_fsub_fpext_fneg_fmul_to_fmad_or_fma", 43) != 0)
1365 break;
1366 return 185; // "combine_fsub_fpext_fneg_fmul_to_fmad_or_fma"
1367 case 44: // 1 string to match.
1368 if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_extract_vector_element", 44) != 0)
1369 break;
1370 return 36; // "insert_vector_element_extract_vector_element"
1371 case 46: // 1 string to match.
1372 if (memcmp(RuleIdentifier.data()+0, "push_freeze_to_prevent_poison_from_propagating", 46) != 0)
1373 break;
1374 return 42; // "push_freeze_to_prevent_poison_from_propagating"
1375 }
1376#endif // ifndef NDEBUG
1377
1378 return std::nullopt;
1379}
1380static std::optional<std::pair<uint64_t, uint64_t>> getRuleRangeForIdentifier(StringRef RuleIdentifier) {
1381 std::pair<StringRef, StringRef> RangePair = RuleIdentifier.split('-');
1382 if (!RangePair.second.empty()) {
1383 const auto First = getRuleIdxForIdentifier(RangePair.first);
1384 const auto Last = getRuleIdxForIdentifier(RangePair.second);
1385 if (!First || !Last)
1386 return std::nullopt;
1387 if (First >= Last)
1388 report_fatal_error("Beginning of range should be before end of range");
1389 return {{*First, *Last + 1}};
1390 }
1391 if (RangePair.first == "*") {
1392 return {{0, 219}};
1393 }
1394 const auto I = getRuleIdxForIdentifier(RangePair.first);
1395 if (!I)
1396 return std::nullopt;
1397 return {{*I, *I + 1}};
1398}
1399
1400bool AMDGPUPreLegalizerCombinerImplRuleConfig::setRuleEnabled(StringRef RuleIdentifier) {
1401 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1402 if (!MaybeRange)
1403 return false;
1404 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1405 DisabledRules.reset(I);
1406 return true;
1407}
1408
1409bool AMDGPUPreLegalizerCombinerImplRuleConfig::setRuleDisabled(StringRef RuleIdentifier) {
1410 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1411 if (!MaybeRange)
1412 return false;
1413 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1414 DisabledRules.set(I);
1415 return true;
1416}
1417
1418static std::vector<std::string> AMDGPUPreLegalizerCombinerOption;
1419static cl::list<std::string> AMDGPUPreLegalizerCombinerDisableOption(
1420 "amdgpuprelegalizercombiner-disable-rule",
1421 cl::desc("Disable one or more combiner rules temporarily in the AMDGPUPreLegalizerCombiner pass"),
1422 cl::CommaSeparated,
1423 cl::Hidden,
1424 cl::cat(GICombinerOptionCategory),
1425 cl::callback([](const std::string &Str) {
1426 AMDGPUPreLegalizerCombinerOption.push_back(Str);
1427 }));
1428static cl::list<std::string> AMDGPUPreLegalizerCombinerOnlyEnableOption(
1429 "amdgpuprelegalizercombiner-only-enable-rule",
1430 cl::desc("Disable all rules in the AMDGPUPreLegalizerCombiner pass then re-enable the specified ones"),
1431 cl::Hidden,
1432 cl::cat(GICombinerOptionCategory),
1433 cl::callback([](const std::string &CommaSeparatedArg) {
1434 StringRef Str = CommaSeparatedArg;
1435 AMDGPUPreLegalizerCombinerOption.push_back("*");
1436 do {
1437 auto X = Str.split(",");
1438 AMDGPUPreLegalizerCombinerOption.push_back(("!" + X.first).str());
1439 Str = X.second;
1440 } while (!Str.empty());
1441 }));
1442
1443
1444bool AMDGPUPreLegalizerCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
1445 return !DisabledRules.test(RuleID);
1446}
1447bool AMDGPUPreLegalizerCombinerImplRuleConfig::parseCommandLineOption() {
1448 for (StringRef Identifier : AMDGPUPreLegalizerCombinerOption) {
1449 bool Enabled = Identifier.consume_front("!");
1450 if (Enabled && !setRuleEnabled(Identifier))
1451 return false;
1452 if (!Enabled && !setRuleDisabled(Identifier))
1453 return false;
1454 }
1455 return true;
1456}
1457
1458#endif // ifdef GET_GICOMBINER_TYPES
1459
1460#ifdef GET_GICOMBINER_TYPES
1461const unsigned MAX_SUBTARGET_PREDICATES = 0;
1462using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
1463#endif // ifdef GET_GICOMBINER_TYPES
1464
1465#ifdef GET_GICOMBINER_CLASS_MEMBERS
1466PredicateBitset AvailableModuleFeatures;
1467mutable PredicateBitset AvailableFunctionFeatures;
1468PredicateBitset getAvailableFeatures() const {
1469 return AvailableModuleFeatures | AvailableFunctionFeatures;
1470}
1471PredicateBitset
1472computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const;
1473PredicateBitset
1474computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget,
1475 const MachineFunction *MF) const;
1476void setupGeneratedPerFunctionState(MachineFunction &MF) override;
1477#endif // ifdef GET_GICOMBINER_CLASS_MEMBERS
1478#ifdef GET_GICOMBINER_CLASS_MEMBERS
1479 mutable MatcherState State;
1480 typedef ComplexRendererFns(AMDGPUPreLegalizerCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
1481 typedef void(AMDGPUPreLegalizerCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
1482 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
1483 static AMDGPUPreLegalizerCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
1484 static AMDGPUPreLegalizerCombinerImpl::CustomRendererFn CustomRenderers[];
1485 bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
1486 bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
1487 bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
1488 const uint8_t *getMatchTable() const override;
1489 bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
1490 bool testMOPredicate_MO(unsigned PredicateID, const MachineOperand &MO, const MatcherState &State) const override;
1491 bool testSimplePredicate(unsigned PredicateID) const override;
1492 bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
1493#endif // ifdef GET_GICOMBINER_CLASS_MEMBERS
1494
1495#ifdef GET_GICOMBINER_IMPL
1496// LLT Objects.
1497enum {
1498 GILLT_s1,
1499};
1500const static size_t NumTypeObjects = 1;
1501const static LLT TypeObjects[] = {
1502 LLT::scalar(1),
1503};
1504
1505// Bits for subtarget features that participate in instruction matching.
1506enum SubtargetFeatureBits : uint8_t {
1507};
1508
1509PredicateBitset AMDGPUPreLegalizerCombinerImpl::
1510computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const {
1511 PredicateBitset Features{};
1512 return Features;
1513}
1514
1515void AMDGPUPreLegalizerCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) {
1516 AvailableFunctionFeatures = computeAvailableFunctionFeatures((const AMDGPUSubtarget *)&MF.getSubtarget(), &MF);
1517}
1518PredicateBitset AMDGPUPreLegalizerCombinerImpl::
1519computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget, const MachineFunction *MF) const {
1520 PredicateBitset Features{};
1521 return Features;
1522}
1523
1524// Feature bitsets.
1525enum {
1526 GIFBS_Invalid,
1527};
1528constexpr static PredicateBitset FeatureBitsets[] {
1529 {}, // GIFBS_Invalid
1530};
1531
1532// ComplexPattern predicates.
1533enum {
1534 GICP_Invalid,
1535};
1536// See constructor for table contents
1537
1538AMDGPUPreLegalizerCombinerImpl::ComplexMatcherMemFn
1539AMDGPUPreLegalizerCombinerImpl::ComplexPredicateFns[] = {
1540 nullptr, // GICP_Invalid
1541};
1542
1543enum {
1544 GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
1545 GICXXPred_MI_Predicate_GICombiner1,
1546 GICXXPred_MI_Predicate_GICombiner2,
1547 GICXXPred_MI_Predicate_GICombiner3,
1548 GICXXPred_MI_Predicate_GICombiner4,
1549 GICXXPred_MI_Predicate_GICombiner5,
1550 GICXXPred_MI_Predicate_GICombiner6,
1551 GICXXPred_MI_Predicate_GICombiner7,
1552 GICXXPred_MI_Predicate_GICombiner8,
1553 GICXXPred_MI_Predicate_GICombiner9,
1554};
1555bool AMDGPUPreLegalizerCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
1556 switch (PredicateID) {
1557 case GICXXPred_MI_Predicate_GICombiner0: {
1558 return isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI);
1559 }
1560 case GICXXPred_MI_Predicate_GICombiner1: {
1561 return isGuaranteedNotToBeUndefOrPoison(State.MIs[0]->getOperand(1).getReg(), MRI);
1562 }
1563 case GICXXPred_MI_Predicate_GICombiner2: {
1564 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
1565 }
1566 case GICXXPred_MI_Predicate_GICombiner3: {
1567 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
1568 }
1569 case GICXXPred_MI_Predicate_GICombiner4: {
1570 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0);
1571 }
1572 case GICXXPred_MI_Predicate_GICombiner5: {
1573 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_EQ &&
1574 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
1575 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
1576 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
1577 }
1578 case GICXXPred_MI_Predicate_GICombiner6: {
1579 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_NE &&
1580 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
1581 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
1582 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
1583 }
1584 case GICXXPred_MI_Predicate_GICombiner7: {
1585 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
1586 Helper.isLegalOrBeforeLegalizer(
1587 {TargetOpcode::G_SEXT_INREG, {MRI.getType(State.MIs[1]->getOperand(1).getReg())}});
1588 }
1589 case GICXXPred_MI_Predicate_GICombiner8: {
1590 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_LSHR,
1591 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
1592 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
1593 }
1594 case GICXXPred_MI_Predicate_GICombiner9: {
1595 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_SHL,
1596 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
1597 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
1598 }
1599 }
1600 llvm_unreachable("Unknown predicate");
1601 return false;
1602}
1603bool AMDGPUPreLegalizerCombinerImpl::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
1604 llvm_unreachable("Unknown predicate");
1605 return false;
1606}
1607bool AMDGPUPreLegalizerCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
1608 llvm_unreachable("Unknown predicate");
1609 return false;
1610}
1611bool AMDGPUPreLegalizerCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
1612 llvm_unreachable("Unknown predicate");
1613 return false;
1614}
1615bool AMDGPUPreLegalizerCombinerImpl::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
1616 llvm_unreachable("Unknown predicate");
1617 return false;
1618}
1619enum {
1620 GICXXPred_Simple_IsRule0Enabled = GICXXPred_Invalid + 1,
1621 GICXXPred_Simple_IsRule1Enabled,
1622 GICXXPred_Simple_IsRule2Enabled,
1623 GICXXPred_Simple_IsRule3Enabled,
1624 GICXXPred_Simple_IsRule4Enabled,
1625 GICXXPred_Simple_IsRule5Enabled,
1626 GICXXPred_Simple_IsRule6Enabled,
1627 GICXXPred_Simple_IsRule7Enabled,
1628 GICXXPred_Simple_IsRule8Enabled,
1629 GICXXPred_Simple_IsRule9Enabled,
1630 GICXXPred_Simple_IsRule10Enabled,
1631 GICXXPred_Simple_IsRule11Enabled,
1632 GICXXPred_Simple_IsRule12Enabled,
1633 GICXXPred_Simple_IsRule13Enabled,
1634 GICXXPred_Simple_IsRule14Enabled,
1635 GICXXPred_Simple_IsRule15Enabled,
1636 GICXXPred_Simple_IsRule16Enabled,
1637 GICXXPred_Simple_IsRule17Enabled,
1638 GICXXPred_Simple_IsRule18Enabled,
1639 GICXXPred_Simple_IsRule19Enabled,
1640 GICXXPred_Simple_IsRule20Enabled,
1641 GICXXPred_Simple_IsRule21Enabled,
1642 GICXXPred_Simple_IsRule22Enabled,
1643 GICXXPred_Simple_IsRule23Enabled,
1644 GICXXPred_Simple_IsRule24Enabled,
1645 GICXXPred_Simple_IsRule25Enabled,
1646 GICXXPred_Simple_IsRule26Enabled,
1647 GICXXPred_Simple_IsRule27Enabled,
1648 GICXXPred_Simple_IsRule28Enabled,
1649 GICXXPred_Simple_IsRule29Enabled,
1650 GICXXPred_Simple_IsRule30Enabled,
1651 GICXXPred_Simple_IsRule31Enabled,
1652 GICXXPred_Simple_IsRule32Enabled,
1653 GICXXPred_Simple_IsRule33Enabled,
1654 GICXXPred_Simple_IsRule34Enabled,
1655 GICXXPred_Simple_IsRule35Enabled,
1656 GICXXPred_Simple_IsRule36Enabled,
1657 GICXXPred_Simple_IsRule37Enabled,
1658 GICXXPred_Simple_IsRule38Enabled,
1659 GICXXPred_Simple_IsRule39Enabled,
1660 GICXXPred_Simple_IsRule40Enabled,
1661 GICXXPred_Simple_IsRule41Enabled,
1662 GICXXPred_Simple_IsRule42Enabled,
1663 GICXXPred_Simple_IsRule43Enabled,
1664 GICXXPred_Simple_IsRule44Enabled,
1665 GICXXPred_Simple_IsRule45Enabled,
1666 GICXXPred_Simple_IsRule46Enabled,
1667 GICXXPred_Simple_IsRule47Enabled,
1668 GICXXPred_Simple_IsRule48Enabled,
1669 GICXXPred_Simple_IsRule49Enabled,
1670 GICXXPred_Simple_IsRule50Enabled,
1671 GICXXPred_Simple_IsRule51Enabled,
1672 GICXXPred_Simple_IsRule52Enabled,
1673 GICXXPred_Simple_IsRule53Enabled,
1674 GICXXPred_Simple_IsRule54Enabled,
1675 GICXXPred_Simple_IsRule55Enabled,
1676 GICXXPred_Simple_IsRule56Enabled,
1677 GICXXPred_Simple_IsRule57Enabled,
1678 GICXXPred_Simple_IsRule58Enabled,
1679 GICXXPred_Simple_IsRule59Enabled,
1680 GICXXPred_Simple_IsRule60Enabled,
1681 GICXXPred_Simple_IsRule61Enabled,
1682 GICXXPred_Simple_IsRule62Enabled,
1683 GICXXPred_Simple_IsRule63Enabled,
1684 GICXXPred_Simple_IsRule64Enabled,
1685 GICXXPred_Simple_IsRule65Enabled,
1686 GICXXPred_Simple_IsRule66Enabled,
1687 GICXXPred_Simple_IsRule67Enabled,
1688 GICXXPred_Simple_IsRule68Enabled,
1689 GICXXPred_Simple_IsRule69Enabled,
1690 GICXXPred_Simple_IsRule70Enabled,
1691 GICXXPred_Simple_IsRule71Enabled,
1692 GICXXPred_Simple_IsRule72Enabled,
1693 GICXXPred_Simple_IsRule73Enabled,
1694 GICXXPred_Simple_IsRule74Enabled,
1695 GICXXPred_Simple_IsRule75Enabled,
1696 GICXXPred_Simple_IsRule76Enabled,
1697 GICXXPred_Simple_IsRule77Enabled,
1698 GICXXPred_Simple_IsRule78Enabled,
1699 GICXXPred_Simple_IsRule79Enabled,
1700 GICXXPred_Simple_IsRule80Enabled,
1701 GICXXPred_Simple_IsRule81Enabled,
1702 GICXXPred_Simple_IsRule82Enabled,
1703 GICXXPred_Simple_IsRule83Enabled,
1704 GICXXPred_Simple_IsRule84Enabled,
1705 GICXXPred_Simple_IsRule85Enabled,
1706 GICXXPred_Simple_IsRule86Enabled,
1707 GICXXPred_Simple_IsRule87Enabled,
1708 GICXXPred_Simple_IsRule88Enabled,
1709 GICXXPred_Simple_IsRule89Enabled,
1710 GICXXPred_Simple_IsRule90Enabled,
1711 GICXXPred_Simple_IsRule91Enabled,
1712 GICXXPred_Simple_IsRule92Enabled,
1713 GICXXPred_Simple_IsRule93Enabled,
1714 GICXXPred_Simple_IsRule94Enabled,
1715 GICXXPred_Simple_IsRule95Enabled,
1716 GICXXPred_Simple_IsRule96Enabled,
1717 GICXXPred_Simple_IsRule97Enabled,
1718 GICXXPred_Simple_IsRule98Enabled,
1719 GICXXPred_Simple_IsRule99Enabled,
1720 GICXXPred_Simple_IsRule100Enabled,
1721 GICXXPred_Simple_IsRule101Enabled,
1722 GICXXPred_Simple_IsRule102Enabled,
1723 GICXXPred_Simple_IsRule103Enabled,
1724 GICXXPred_Simple_IsRule104Enabled,
1725 GICXXPred_Simple_IsRule105Enabled,
1726 GICXXPred_Simple_IsRule106Enabled,
1727 GICXXPred_Simple_IsRule107Enabled,
1728 GICXXPred_Simple_IsRule108Enabled,
1729 GICXXPred_Simple_IsRule109Enabled,
1730 GICXXPred_Simple_IsRule110Enabled,
1731 GICXXPred_Simple_IsRule111Enabled,
1732 GICXXPred_Simple_IsRule112Enabled,
1733 GICXXPred_Simple_IsRule113Enabled,
1734 GICXXPred_Simple_IsRule114Enabled,
1735 GICXXPred_Simple_IsRule115Enabled,
1736 GICXXPred_Simple_IsRule116Enabled,
1737 GICXXPred_Simple_IsRule117Enabled,
1738 GICXXPred_Simple_IsRule118Enabled,
1739 GICXXPred_Simple_IsRule119Enabled,
1740 GICXXPred_Simple_IsRule120Enabled,
1741 GICXXPred_Simple_IsRule121Enabled,
1742 GICXXPred_Simple_IsRule122Enabled,
1743 GICXXPred_Simple_IsRule123Enabled,
1744 GICXXPred_Simple_IsRule124Enabled,
1745 GICXXPred_Simple_IsRule125Enabled,
1746 GICXXPred_Simple_IsRule126Enabled,
1747 GICXXPred_Simple_IsRule127Enabled,
1748 GICXXPred_Simple_IsRule128Enabled,
1749 GICXXPred_Simple_IsRule129Enabled,
1750 GICXXPred_Simple_IsRule130Enabled,
1751 GICXXPred_Simple_IsRule131Enabled,
1752 GICXXPred_Simple_IsRule132Enabled,
1753 GICXXPred_Simple_IsRule133Enabled,
1754 GICXXPred_Simple_IsRule134Enabled,
1755 GICXXPred_Simple_IsRule135Enabled,
1756 GICXXPred_Simple_IsRule136Enabled,
1757 GICXXPred_Simple_IsRule137Enabled,
1758 GICXXPred_Simple_IsRule138Enabled,
1759 GICXXPred_Simple_IsRule139Enabled,
1760 GICXXPred_Simple_IsRule140Enabled,
1761 GICXXPred_Simple_IsRule141Enabled,
1762 GICXXPred_Simple_IsRule142Enabled,
1763 GICXXPred_Simple_IsRule143Enabled,
1764 GICXXPred_Simple_IsRule144Enabled,
1765 GICXXPred_Simple_IsRule145Enabled,
1766 GICXXPred_Simple_IsRule146Enabled,
1767 GICXXPred_Simple_IsRule147Enabled,
1768 GICXXPred_Simple_IsRule148Enabled,
1769 GICXXPred_Simple_IsRule149Enabled,
1770 GICXXPred_Simple_IsRule150Enabled,
1771 GICXXPred_Simple_IsRule151Enabled,
1772 GICXXPred_Simple_IsRule152Enabled,
1773 GICXXPred_Simple_IsRule153Enabled,
1774 GICXXPred_Simple_IsRule154Enabled,
1775 GICXXPred_Simple_IsRule155Enabled,
1776 GICXXPred_Simple_IsRule156Enabled,
1777 GICXXPred_Simple_IsRule157Enabled,
1778 GICXXPred_Simple_IsRule158Enabled,
1779 GICXXPred_Simple_IsRule159Enabled,
1780 GICXXPred_Simple_IsRule160Enabled,
1781 GICXXPred_Simple_IsRule161Enabled,
1782 GICXXPred_Simple_IsRule162Enabled,
1783 GICXXPred_Simple_IsRule163Enabled,
1784 GICXXPred_Simple_IsRule164Enabled,
1785 GICXXPred_Simple_IsRule165Enabled,
1786 GICXXPred_Simple_IsRule166Enabled,
1787 GICXXPred_Simple_IsRule167Enabled,
1788 GICXXPred_Simple_IsRule168Enabled,
1789 GICXXPred_Simple_IsRule169Enabled,
1790 GICXXPred_Simple_IsRule170Enabled,
1791 GICXXPred_Simple_IsRule171Enabled,
1792 GICXXPred_Simple_IsRule172Enabled,
1793 GICXXPred_Simple_IsRule173Enabled,
1794 GICXXPred_Simple_IsRule174Enabled,
1795 GICXXPred_Simple_IsRule175Enabled,
1796 GICXXPred_Simple_IsRule176Enabled,
1797 GICXXPred_Simple_IsRule177Enabled,
1798 GICXXPred_Simple_IsRule178Enabled,
1799 GICXXPred_Simple_IsRule179Enabled,
1800 GICXXPred_Simple_IsRule180Enabled,
1801 GICXXPred_Simple_IsRule181Enabled,
1802 GICXXPred_Simple_IsRule182Enabled,
1803 GICXXPred_Simple_IsRule183Enabled,
1804 GICXXPred_Simple_IsRule184Enabled,
1805 GICXXPred_Simple_IsRule185Enabled,
1806 GICXXPred_Simple_IsRule186Enabled,
1807 GICXXPred_Simple_IsRule187Enabled,
1808 GICXXPred_Simple_IsRule188Enabled,
1809 GICXXPred_Simple_IsRule189Enabled,
1810 GICXXPred_Simple_IsRule190Enabled,
1811 GICXXPred_Simple_IsRule191Enabled,
1812 GICXXPred_Simple_IsRule192Enabled,
1813 GICXXPred_Simple_IsRule193Enabled,
1814 GICXXPred_Simple_IsRule194Enabled,
1815 GICXXPred_Simple_IsRule195Enabled,
1816 GICXXPred_Simple_IsRule196Enabled,
1817 GICXXPred_Simple_IsRule197Enabled,
1818 GICXXPred_Simple_IsRule198Enabled,
1819 GICXXPred_Simple_IsRule199Enabled,
1820 GICXXPred_Simple_IsRule200Enabled,
1821 GICXXPred_Simple_IsRule201Enabled,
1822 GICXXPred_Simple_IsRule202Enabled,
1823 GICXXPred_Simple_IsRule203Enabled,
1824 GICXXPred_Simple_IsRule204Enabled,
1825 GICXXPred_Simple_IsRule205Enabled,
1826 GICXXPred_Simple_IsRule206Enabled,
1827 GICXXPred_Simple_IsRule207Enabled,
1828 GICXXPred_Simple_IsRule208Enabled,
1829 GICXXPred_Simple_IsRule209Enabled,
1830 GICXXPred_Simple_IsRule210Enabled,
1831 GICXXPred_Simple_IsRule211Enabled,
1832 GICXXPred_Simple_IsRule212Enabled,
1833 GICXXPred_Simple_IsRule213Enabled,
1834 GICXXPred_Simple_IsRule214Enabled,
1835 GICXXPred_Simple_IsRule215Enabled,
1836 GICXXPred_Simple_IsRule216Enabled,
1837 GICXXPred_Simple_IsRule217Enabled,
1838 GICXXPred_Simple_IsRule218Enabled,
1839};
1840
1841bool AMDGPUPreLegalizerCombinerImpl::testSimplePredicate(unsigned Predicate) const {
1842 return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1);
1843}
1844// Custom renderers.
1845enum {
1846 GICR_Invalid,
1847};
1848AMDGPUPreLegalizerCombinerImpl::CustomRendererFn
1849AMDGPUPreLegalizerCombinerImpl::CustomRenderers[] = {
1850 nullptr, // GICR_Invalid
1851};
1852
1853bool AMDGPUPreLegalizerCombinerImpl::tryCombineAllImpl(MachineInstr &I) const {
1854 const TargetSubtargetInfo &ST = MF.getSubtarget();
1855 const PredicateBitset AvailableFeatures = getAvailableFeatures();
1856 B.setInstrAndDebugLoc(I);
1857 State.MIs.clear();
1858 State.MIs.push_back(&I);
1859 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), *ST.getInstrInfo(), MRI, *MRI.getTargetRegisterInfo(), *ST.getRegBankInfo(), AvailableFeatures, /*CoverageInfo*/ nullptr)) {
1860 return true;
1861 }
1862
1863 return false;
1864}
1865
1866enum {
1867 GICXXCustomAction_GICombiner0 = GICXXCustomAction_Invalid + 1,
1868 GICXXCustomAction_GICombiner1,
1869 GICXXCustomAction_GICombiner2,
1870 GICXXCustomAction_GICombiner3,
1871 GICXXCustomAction_GICombiner4,
1872 GICXXCustomAction_GICombiner5,
1873 GICXXCustomAction_GICombiner6,
1874 GICXXCustomAction_GICombiner7,
1875 GICXXCustomAction_GICombiner8,
1876 GICXXCustomAction_GICombiner9,
1877 GICXXCustomAction_GICombiner10,
1878 GICXXCustomAction_GICombiner11,
1879 GICXXCustomAction_GICombiner12,
1880 GICXXCustomAction_GICombiner13,
1881 GICXXCustomAction_GICombiner14,
1882 GICXXCustomAction_GICombiner15,
1883 GICXXCustomAction_GICombiner16,
1884 GICXXCustomAction_GICombiner17,
1885 GICXXCustomAction_GICombiner18,
1886 GICXXCustomAction_GICombiner19,
1887 GICXXCustomAction_GICombiner20,
1888 GICXXCustomAction_GICombiner21,
1889 GICXXCustomAction_GICombiner22,
1890 GICXXCustomAction_GICombiner23,
1891 GICXXCustomAction_GICombiner24,
1892 GICXXCustomAction_GICombiner25,
1893 GICXXCustomAction_GICombiner26,
1894 GICXXCustomAction_GICombiner27,
1895 GICXXCustomAction_GICombiner28,
1896 GICXXCustomAction_GICombiner29,
1897 GICXXCustomAction_GICombiner30,
1898 GICXXCustomAction_GICombiner31,
1899 GICXXCustomAction_GICombiner32,
1900 GICXXCustomAction_GICombiner33,
1901 GICXXCustomAction_GICombiner34,
1902 GICXXCustomAction_GICombiner35,
1903 GICXXCustomAction_GICombiner36,
1904 GICXXCustomAction_GICombiner37,
1905 GICXXCustomAction_GICombiner38,
1906 GICXXCustomAction_GICombiner39,
1907 GICXXCustomAction_GICombiner40,
1908 GICXXCustomAction_GICombiner41,
1909 GICXXCustomAction_GICombiner42,
1910 GICXXCustomAction_GICombiner43,
1911 GICXXCustomAction_GICombiner44,
1912 GICXXCustomAction_GICombiner45,
1913 GICXXCustomAction_GICombiner46,
1914 GICXXCustomAction_GICombiner47,
1915 GICXXCustomAction_GICombiner48,
1916 GICXXCustomAction_GICombiner49,
1917 GICXXCustomAction_GICombiner50,
1918 GICXXCustomAction_GICombiner51,
1919 GICXXCustomAction_GICombiner52,
1920 GICXXCustomAction_GICombiner53,
1921 GICXXCustomAction_GICombiner54,
1922 GICXXCustomAction_GICombiner55,
1923 GICXXCustomAction_GICombiner56,
1924 GICXXCustomAction_GICombiner57,
1925 GICXXCustomAction_GICombiner58,
1926 GICXXCustomAction_GICombiner59,
1927 GICXXCustomAction_GICombiner60,
1928 GICXXCustomAction_GICombiner61,
1929 GICXXCustomAction_GICombiner62,
1930 GICXXCustomAction_GICombiner63,
1931 GICXXCustomAction_GICombiner64,
1932 GICXXCustomAction_GICombiner65,
1933 GICXXCustomAction_GICombiner66,
1934 GICXXCustomAction_GICombiner67,
1935 GICXXCustomAction_GICombiner68,
1936 GICXXCustomAction_GICombiner69,
1937 GICXXCustomAction_GICombiner70,
1938 GICXXCustomAction_GICombiner71,
1939 GICXXCustomAction_GICombiner72,
1940 GICXXCustomAction_GICombiner73,
1941 GICXXCustomAction_GICombiner74,
1942 GICXXCustomAction_GICombiner75,
1943 GICXXCustomAction_GICombiner76,
1944 GICXXCustomAction_GICombiner77,
1945 GICXXCustomAction_GICombiner78,
1946 GICXXCustomAction_GICombiner79,
1947 GICXXCustomAction_GICombiner80,
1948 GICXXCustomAction_GICombiner81,
1949 GICXXCustomAction_GICombiner82,
1950 GICXXCustomAction_GICombiner83,
1951 GICXXCustomAction_GICombiner84,
1952 GICXXCustomAction_GICombiner85,
1953 GICXXCustomAction_GICombiner86,
1954 GICXXCustomAction_GICombiner87,
1955 GICXXCustomAction_GICombiner88,
1956 GICXXCustomAction_GICombiner89,
1957 GICXXCustomAction_GICombiner90,
1958 GICXXCustomAction_GICombiner91,
1959 GICXXCustomAction_GICombiner92,
1960 GICXXCustomAction_GICombiner93,
1961 GICXXCustomAction_GICombiner94,
1962 GICXXCustomAction_GICombiner95,
1963 GICXXCustomAction_GICombiner96,
1964 GICXXCustomAction_GICombiner97,
1965 GICXXCustomAction_GICombiner98,
1966 GICXXCustomAction_GICombiner99,
1967 GICXXCustomAction_GICombiner100,
1968 GICXXCustomAction_GICombiner101,
1969 GICXXCustomAction_GICombiner102,
1970 GICXXCustomAction_GICombiner103,
1971 GICXXCustomAction_GICombiner104,
1972 GICXXCustomAction_GICombiner105,
1973 GICXXCustomAction_GICombiner106,
1974 GICXXCustomAction_GICombiner107,
1975 GICXXCustomAction_GICombiner108,
1976 GICXXCustomAction_GICombiner109,
1977 GICXXCustomAction_GICombiner110,
1978 GICXXCustomAction_GICombiner111,
1979 GICXXCustomAction_GICombiner112,
1980 GICXXCustomAction_GICombiner113,
1981 GICXXCustomAction_GICombiner114,
1982 GICXXCustomAction_GICombiner115,
1983 GICXXCustomAction_GICombiner116,
1984 GICXXCustomAction_GICombiner117,
1985 GICXXCustomAction_GICombiner118,
1986 GICXXCustomAction_GICombiner119,
1987 GICXXCustomAction_GICombiner120,
1988 GICXXCustomAction_GICombiner121,
1989 GICXXCustomAction_GICombiner122,
1990 GICXXCustomAction_GICombiner123,
1991 GICXXCustomAction_GICombiner124,
1992 GICXXCustomAction_GICombiner125,
1993 GICXXCustomAction_GICombiner126,
1994 GICXXCustomAction_GICombiner127,
1995 GICXXCustomAction_GICombiner128,
1996 GICXXCustomAction_GICombiner129,
1997 GICXXCustomAction_GICombiner130,
1998 GICXXCustomAction_GICombiner131,
1999 GICXXCustomAction_GICombiner132,
2000 GICXXCustomAction_GICombiner133,
2001 GICXXCustomAction_GICombiner134,
2002 GICXXCustomAction_GICombiner135,
2003 GICXXCustomAction_GICombiner136,
2004 GICXXCustomAction_GICombiner137,
2005 GICXXCustomAction_GICombiner138,
2006 GICXXCustomAction_GICombiner139,
2007 GICXXCustomAction_GICombiner140,
2008 GICXXCustomAction_GICombiner141,
2009 GICXXCustomAction_GICombiner142,
2010 GICXXCustomAction_GICombiner143,
2011 GICXXCustomAction_GICombiner144,
2012 GICXXCustomAction_GICombiner145,
2013 GICXXCustomAction_GICombiner146,
2014 GICXXCustomAction_GICombiner147,
2015 GICXXCustomAction_GICombiner148,
2016 GICXXCustomAction_GICombiner149,
2017 GICXXCustomAction_GICombiner150,
2018 GICXXCustomAction_GICombiner151,
2019 GICXXCustomAction_GICombiner152,
2020 GICXXCustomAction_GICombiner153,
2021 GICXXCustomAction_GICombiner154,
2022};
2023bool AMDGPUPreLegalizerCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const {
2024 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
2025 switch(ApplyID) {
2026 case GICXXCustomAction_GICombiner0:{
2027 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2028 // Match Patterns
2029 if(![&](){return Helper.matchFoldAPlusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2030 return false;
2031 }
2032 // Apply Patterns
2033 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2034 return true;
2035 }
2036 case GICXXCustomAction_GICombiner1:{
2037 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2038 // Match Patterns
2039 if(![&](){return Helper.matchFoldC2MinusAPlusC1(*State.MIs[0], GIMatchData_matchinfo);}()) {
2040 return false;
2041 }
2042 // Apply Patterns
2043 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2044 return true;
2045 }
2046 case GICXXCustomAction_GICombiner2:{
2047 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2048 // Match Patterns
2049 if(![&](){return Helper.matchFoldAMinusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2050 return false;
2051 }
2052 // Apply Patterns
2053 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2054 return true;
2055 }
2056 case GICXXCustomAction_GICombiner3:{
2057 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2058 // Match Patterns
2059 if(![&](){return Helper.matchFoldC1Minus2MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2060 return false;
2061 }
2062 // Apply Patterns
2063 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2064 return true;
2065 }
2066 case GICXXCustomAction_GICombiner4:{
2067 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2068 // Match Patterns
2069 if(![&](){return Helper.matchFoldAMinusC1PlusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2070 return false;
2071 }
2072 // Apply Patterns
2073 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2074 return true;
2075 }
2076 case GICXXCustomAction_GICombiner5:{
2077 // Match Patterns
2078 if(![&](){return Helper.matchCombineCopy(*State.MIs[0]);}()) {
2079 return false;
2080 }
2081 // Apply Patterns
2082 Helper.applyCombineCopy(*State.MIs[0]);
2083 return true;
2084 }
2085 case GICXXCustomAction_GICombiner6:{
2086 unsigned GIMatchData_matchinfo;
2087 // Match Patterns
2088 if(![&](){return Helper.matchCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);}()) {
2089 return false;
2090 }
2091 // Apply Patterns
2092 Helper.applyCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);
2093 return true;
2094 }
2095 case GICXXCustomAction_GICombiner7:{
2096 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2097 // Match Patterns
2098 if(![&](){return Helper.matchCombineSubToAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2099 return false;
2100 }
2101 // Apply Patterns
2102 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2103 return true;
2104 }
2105 case GICXXCustomAction_GICombiner8:{
2106 std::pair<Register, bool> GIMatchData_info;
2107 // Match Patterns
2108 if(![&](){return Helper.matchCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info);}()) {
2109 return false;
2110 }
2111 // Apply Patterns
2112 Helper.applyCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info);
2113 return true;
2114 }
2115 case GICXXCustomAction_GICombiner9:{
2116 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2117 // Match Patterns
2118 if(![&](){return Helper.matchExtractVectorElement(*State.MIs[0], GIMatchData_matchinfo);}()) {
2119 return false;
2120 }
2121 // Apply Patterns
2122 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2123 return true;
2124 }
2125 case GICXXCustomAction_GICombiner10:{
2126 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2127 // Match Patterns
2128 if(![&](){return Helper.matchInsertVectorElementOOB(*State.MIs[0], GIMatchData_matchinfo);}()) {
2129 return false;
2130 }
2131 // Apply Patterns
2132 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2133 return true;
2134 }
2135 case GICXXCustomAction_GICombiner11:{
2136 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2137 // Match Patterns
2138 if(![&](){return Helper.matchExtractVectorElementWithDifferentIndices(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2139 return false;
2140 }
2141 // Apply Patterns
2142 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2143 return true;
2144 }
2145 case GICXXCustomAction_GICombiner12:{
2146 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2147 // Match Patterns
2148 if(![&](){return Helper.matchExtractVectorElementWithBuildVector(*State.MIs[0], *State.MIs[1],
2149 GIMatchData_matchinfo);}()) {
2150 return false;
2151 }
2152 // Apply Patterns
2153 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2154 return true;
2155 }
2156 case GICXXCustomAction_GICombiner13:{
2157 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2158 // Match Patterns
2159 if(![&](){return Helper.matchExtractVectorElementWithBuildVectorTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2160 return false;
2161 }
2162 // Apply Patterns
2163 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2164 return true;
2165 }
2166 case GICXXCustomAction_GICombiner14:{
2167 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2168 // Match Patterns
2169 if(![&](){return Helper.matchExtractVectorElementWithShuffleVector(*State.MIs[0], *State.MIs[1],
2170 GIMatchData_matchinfo);}()) {
2171 return false;
2172 }
2173 // Apply Patterns
2174 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2175 return true;
2176 }
2177 case GICXXCustomAction_GICombiner15:{
2178 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2179 // Match Patterns
2180 if(![&](){return Helper.matchAddOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2181 return false;
2182 }
2183 // Apply Patterns
2184 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2185 return true;
2186 }
2187 case GICXXCustomAction_GICombiner16:{
2188 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2189 // Match Patterns
2190 if(![&](){return Helper.matchMulOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2191 return false;
2192 }
2193 // Apply Patterns
2194 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2195 return true;
2196 }
2197 case GICXXCustomAction_GICombiner17:{
2198 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2199 // Match Patterns
2200 if(![&](){return Helper.matchShlOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2201 return false;
2202 }
2203 // Apply Patterns
2204 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2205 return true;
2206 }
2207 case GICXXCustomAction_GICombiner18:{
2208 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2209 // Match Patterns
2210 if(![&](){return Helper.matchSubOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2211 return false;
2212 }
2213 // Apply Patterns
2214 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2215 return true;
2216 }
2217 case GICXXCustomAction_GICombiner19:{
2218 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2219 // Match Patterns
2220 if(![&](){return !isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI) && Helper.matchFreezeOfSingleMaybePoisonOperand(*State.MIs[0], GIMatchData_matchinfo);}()) {
2221 return false;
2222 }
2223 // Apply Patterns
2224 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2225 return true;
2226 }
2227 case GICXXCustomAction_GICombiner20:{
2228 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2229 // Match Patterns
2230 if(![&](){return Helper.matchTruncateOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2231 return false;
2232 }
2233 // Apply Patterns
2234 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2235 return true;
2236 }
2237 case GICXXCustomAction_GICombiner21:{
2238 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2239 // Match Patterns
2240 if(![&](){return Helper.matchExtOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2241 return false;
2242 }
2243 // Apply Patterns
2244 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2245 return true;
2246 }
2247 case GICXXCustomAction_GICombiner22:{
2248 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2249 // Match Patterns
2250 if(![&](){return Helper.matchRedundantSextInReg(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2251 return false;
2252 }
2253 // Apply Patterns
2254 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2255 return true;
2256 }
2257 case GICXXCustomAction_GICombiner23:{
2258 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2259 // Match Patterns
2260 if(![&](){return Helper.matchCastOfSelect(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2261 return false;
2262 }
2263 // Apply Patterns
2264 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2265 return true;
2266 }
2267 case GICXXCustomAction_GICombiner24:{
2268 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2269 // Match Patterns
2270 if(![&](){return Helper.matchCastOfBuildVector(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2271 return false;
2272 }
2273 // Apply Patterns
2274 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2275 return true;
2276 }
2277 case GICXXCustomAction_GICombiner25:{
2278 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2279 // Match Patterns
2280 if(![&](){return Helper.matchNarrowBinop(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2281 return false;
2282 }
2283 // Apply Patterns
2284 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2285 return true;
2286 }
2287 case GICXXCustomAction_GICombiner26:{
2288 APInt GIMatchData_matchinfo;
2289 // Match Patterns
2290 if(![&](){return Helper.matchCastOfInteger(*State.MIs[0], GIMatchData_matchinfo);}()) {
2291 return false;
2292 }
2293 // Apply Patterns
2294 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
2295 return true;
2296 }
2297 case GICXXCustomAction_GICombiner27:{
2298 SmallVector<Register> GIMatchData_info;
2299 // Match Patterns
2300 if(![&](){return Helper.matchCombineInsertVecElts(*State.MIs[0], GIMatchData_info);}()) {
2301 return false;
2302 }
2303 // Apply Patterns
2304 Helper.applyCombineInsertVecElts(*State.MIs[0], GIMatchData_info);
2305 return true;
2306 }
2307 case GICXXCustomAction_GICombiner28:{
2308 Register GIMatchData_matchinfo;
2309 // Match Patterns
2310 if(![&](){return Helper.matchExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);}()) {
2311 return false;
2312 }
2313 // Apply Patterns
2314 Helper.applyExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);
2315 return true;
2316 }
2317 case GICXXCustomAction_GICombiner29:{
2318 SmallVector<std::pair<Register, MachineInstr*>> GIMatchData_matchinfo;
2319 // Match Patterns
2320 if(![&](){return Helper.matchExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
2321 return false;
2322 }
2323 // Apply Patterns
2324 Helper.applyExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);
2325 return true;
2326 }
2327 case GICXXCustomAction_GICombiner30:{
2328 PreferredTuple GIMatchData_matchinfo;
2329 // Match Patterns
2330 if(![&](){return Helper.matchCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);}()) {
2331 return false;
2332 }
2333 // Apply Patterns
2334 Helper.applyCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);
2335 return true;
2336 }
2337 case GICXXCustomAction_GICombiner31:{
2338 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2339 // Match Patterns
2340 if(![&](){return Helper.matchCombineLoadWithAndMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
2341 return false;
2342 }
2343 // Apply Patterns
2344 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2345 return true;
2346 }
2347 case GICXXCustomAction_GICombiner32:{
2348 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2349 // Match Patterns
2350 if(![&](){return Helper.matchCombineExtractedVectorLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
2351 return false;
2352 }
2353 // Apply Patterns
2354 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2355 return true;
2356 }
2357 case GICXXCustomAction_GICombiner33:{
2358 // Match Patterns
2359 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2360 return false;
2361 }
2362 // Apply Patterns
2363 Helper.replaceInstWithFConstant(*State.MIs[0], 0.0);
2364 return true;
2365 }
2366 case GICXXCustomAction_GICombiner34:{
2367 // Match Patterns
2368 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2369 return false;
2370 }
2371 // Apply Patterns
2372 Helper.replaceInstWithConstant(*State.MIs[0], 0);
2373 return true;
2374 }
2375 case GICXXCustomAction_GICombiner35:{
2376 // Match Patterns
2377 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2378 return false;
2379 }
2380 // Apply Patterns
2381 Helper.replaceInstWithConstant(*State.MIs[0], -1);
2382 return true;
2383 }
2384 case GICXXCustomAction_GICombiner36:{
2385 // Match Patterns
2386 if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 1);}()) {
2387 return false;
2388 }
2389 // Apply Patterns
2390 Helper.replaceInstWithConstant(*State.MIs[0], 0);
2391 return true;
2392 }
2393 case GICXXCustomAction_GICombiner37:{
2394 // Match Patterns
2395 if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 2);}()) {
2396 return false;
2397 }
2398 // Apply Patterns
2399 Helper.replaceInstWithUndef(*State.MIs[0]);
2400 return true;
2401 }
2402 case GICXXCustomAction_GICombiner38:{
2403 // Apply Patterns
2404 Helper.replaceInstWithUndef(*State.MIs[0]->getOperand(0).getParent());
2405 return true;
2406 }
2407 case GICXXCustomAction_GICombiner39:{
2408 // Match Patterns
2409 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2410 return false;
2411 }
2412 // Apply Patterns
2413 Helper.replaceInstWithUndef(*State.MIs[0]);
2414 return true;
2415 }
2416 case GICXXCustomAction_GICombiner40:{
2417 // Match Patterns
2418 if(![&](){return Helper.matchAllExplicitUsesAreUndef(*State.MIs[0]);}()) {
2419 return false;
2420 }
2421 // Apply Patterns
2422 Helper.replaceInstWithUndef(*State.MIs[0]);
2423 return true;
2424 }
2425 case GICXXCustomAction_GICombiner41:{
2426 // Match Patterns
2427 if(![&](){return Helper.matchUndefShuffleVectorMask(*State.MIs[0]);}()) {
2428 return false;
2429 }
2430 // Apply Patterns
2431 Helper.replaceInstWithUndef(*State.MIs[0]);
2432 return true;
2433 }
2434 case GICXXCustomAction_GICombiner42:{
2435 // Match Patterns
2436 if(![&](){return Helper.matchUndefStore(*State.MIs[0]);}()) {
2437 return false;
2438 }
2439 // Apply Patterns
2440 Helper.eraseInst(*State.MIs[0]);
2441 return true;
2442 }
2443 case GICXXCustomAction_GICombiner43:{
2444 // Match Patterns
2445 if(![&](){return Helper.matchInsertExtractVecEltOutOfBounds(*State.MIs[0]);}()) {
2446 return false;
2447 }
2448 // Apply Patterns
2449 Helper.replaceInstWithUndef(*State.MIs[0]);
2450 return true;
2451 }
2452 case GICXXCustomAction_GICombiner44:{
2453 // Match Patterns
2454 if(![&](){return Helper.matchSelectSameVal(*State.MIs[0]);}()) {
2455 return false;
2456 }
2457 // Apply Patterns
2458 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 2);
2459 return true;
2460 }
2461 case GICXXCustomAction_GICombiner45:{
2462 // Match Patterns
2463 if(![&](){return Helper.matchOperandIsZero(*State.MIs[0], 1);}()) {
2464 return false;
2465 }
2466 // Apply Patterns
2467 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 1);
2468 return true;
2469 }
2470 case GICXXCustomAction_GICombiner46:{
2471 Register GIMatchData_info;
2472 // Match Patterns
2473 if(![&](){return Helper.matchCombineI2PToP2I(*State.MIs[0], GIMatchData_info);}()) {
2474 return false;
2475 }
2476 // Apply Patterns
2477 Helper.applyCombineI2PToP2I(*State.MIs[0], GIMatchData_info);
2478 return true;
2479 }
2480 case GICXXCustomAction_GICombiner47:{
2481 Register GIMatchData_info;
2482 // Match Patterns
2483 if(![&](){GIMatchData_info = State.MIs[1]->getOperand(1).getReg(); return true;}()) {
2484 return false;
2485 }
2486 // Apply Patterns
2487 Helper.applyCombineP2IToI2P(*State.MIs[0], GIMatchData_info);
2488 return true;
2489 }
2490 case GICXXCustomAction_GICombiner48:{
2491 Register GIMatchData_matchinfo;
2492 // Match Patterns
2493 if(![&](){return Helper.matchCombineAnyExtTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
2494 return false;
2495 }
2496 // Apply Patterns
2497 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2498 return true;
2499 }
2500 case GICXXCustomAction_GICombiner49:{
2501 Register GIMatchData_matchinfo;
2502 // Match Patterns
2503 if(![&](){return Helper.matchBuildVectorIdentityFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
2504 return false;
2505 }
2506 // Apply Patterns
2507 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2508 return true;
2509 }
2510 case GICXXCustomAction_GICombiner50:{
2511 Register GIMatchData_matchinfo;
2512 // Match Patterns
2513 if(![&](){return Helper.matchTruncBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
2514 return false;
2515 }
2516 // Apply Patterns
2517 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2518 return true;
2519 }
2520 case GICXXCustomAction_GICombiner51:{
2521 Register GIMatchData_matchinfo;
2522 // Match Patterns
2523 if(![&](){return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
2524 return false;
2525 }
2526 // Apply Patterns
2527 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2528 return true;
2529 }
2530 case GICXXCustomAction_GICombiner52:{
2531 // Match Patterns
2532 if(![&](){return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());}()) {
2533 return false;
2534 }
2535 // Apply Patterns
2536 Helper.replaceSingleDefInstWithReg(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
2537 return true;
2538 }
2539 case GICXXCustomAction_GICombiner53:{
2540 MachineInstr* GIMatchData_matchinfo;
2541 // Match Patterns
2542 if(![&](){return Helper.matchExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);}()) {
2543 return false;
2544 }
2545 // Apply Patterns
2546 Helper.applyExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);
2547 return true;
2548 }
2549 case GICXXCustomAction_GICombiner54:{
2550 std::tuple<Register, Register> GIMatchData_info;
2551 // Match Patterns
2552 if(![&](){return Helper.matchSimplifyAddToSub(*State.MIs[0], GIMatchData_info);}()) {
2553 return false;
2554 }
2555 // Apply Patterns
2556 Helper.applySimplifyAddToSub(*State.MIs[0], GIMatchData_info);
2557 return true;
2558 }
2559 case GICXXCustomAction_GICombiner55:{
2560 InstructionStepsMatchInfo GIMatchData_info;
2561 // Match Patterns
2562 if(![&](){return Helper.matchHoistLogicOpWithSameOpcodeHands(*State.MIs[0], GIMatchData_info);}()) {
2563 return false;
2564 }
2565 // Apply Patterns
2566 Helper.applyBuildInstructionSteps(*State.MIs[0], GIMatchData_info);
2567 return true;
2568 }
2569 case GICXXCustomAction_GICombiner56:{
2570 std::optional<int64_t> GIMatchData_matchinfo;
2571 // Match Patterns
2572 if(![&](){return Helper.matchShiftsTooBig(*State.MIs[0], GIMatchData_matchinfo);}()) {
2573 return false;
2574 }
2575 // Apply Patterns
2576 if (GIMatchData_matchinfo) {
2577 Helper.replaceInstWithConstant(*State.MIs[0], *GIMatchData_matchinfo);
2578 } else {
2579 Helper.replaceInstWithUndef(*State.MIs[0]);
2580 }
2581 return true;
2582 }
2583 case GICXXCustomAction_GICombiner57:{
2584 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2585 // Match Patterns
2586 if(![&](){return Helper.matchReassocPtrAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2587 return false;
2588 }
2589 // Apply Patterns
2590 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2591 return true;
2592 }
2593 case GICXXCustomAction_GICombiner58:{
2594 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2595 // Match Patterns
2596 if(![&](){return Helper.matchReassocCommBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2597 return false;
2598 }
2599 // Apply Patterns
2600 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2601 return true;
2602 }
2603 case GICXXCustomAction_GICombiner59:{
2604 PtrAddChain GIMatchData_matchinfo;
2605 // Match Patterns
2606 if(![&](){return Helper.matchPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
2607 return false;
2608 }
2609 // Apply Patterns
2610 Helper.applyPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);
2611 return true;
2612 }
2613 case GICXXCustomAction_GICombiner60:{
2614 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2615 // Match Patterns
2616 if(![&](){return Helper.matchCanonicalizeICmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2617 return false;
2618 }
2619 // Apply Patterns
2620 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2621 return true;
2622 }
2623 case GICXXCustomAction_GICombiner61:{
2624 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2625 // Match Patterns
2626 if(![&](){return Helper.matchCanonicalizeFCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2627 return false;
2628 }
2629 // Apply Patterns
2630 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2631 return true;
2632 }
2633 case GICXXCustomAction_GICombiner62:{
2634 int64_t GIMatchData_matchinfo;
2635 // Match Patterns
2636 if(![&](){return Helper.matchICmpToTrueFalseKnownBits(*State.MIs[0], GIMatchData_matchinfo);}()) {
2637 return false;
2638 }
2639 // Apply Patterns
2640 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
2641 return true;
2642 }
2643 case GICXXCustomAction_GICombiner63:{
2644 std::function<void(MachineIRBuilder &)> GIMatchData_info;
2645 // Match Patterns
2646 if(![&](){return Helper.matchICmpToLHSKnownBits(*State.MIs[0], GIMatchData_info);}()) {
2647 return false;
2648 }
2649 // Apply Patterns
2650 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
2651 return true;
2652 }
2653 case GICXXCustomAction_GICombiner64:{
2654 std::function<void(MachineIRBuilder &)> GIMatchData_info;
2655 // Match Patterns
2656 if(![&](){return Helper.matchRedundantBinOpInEquality(*State.MIs[0], GIMatchData_info);}()) {
2657 return false;
2658 }
2659 // Apply Patterns
2660 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
2661 return true;
2662 }
2663 case GICXXCustomAction_GICombiner65:{
2664 std::tuple<Register, int64_t> GIMatchData_info;
2665 // Match Patterns
2666 if(![&](){return Helper.matchAshrShlToSextInreg(*State.MIs[0], GIMatchData_info);}()) {
2667 return false;
2668 }
2669 // Apply Patterns
2670 Helper.applyAshShlToSextInreg(*State.MIs[0], GIMatchData_info);
2671 return true;
2672 }
2673 case GICXXCustomAction_GICombiner66:{
2674 std::tuple<Register, unsigned> GIMatchData_matchinfo;
2675 // Match Patterns
2676 if(![&](){return Helper.matchSextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
2677 return false;
2678 }
2679 // Apply Patterns
2680 Helper.applySextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);
2681 return true;
2682 }
2683 case GICXXCustomAction_GICombiner67:{
2684 RegisterImmPair GIMatchData_matchinfo;
2685 // Match Patterns
2686 if(![&](){return Helper.matchCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);}()) {
2687 return false;
2688 }
2689 // Apply Patterns
2690 Helper.applyCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);
2691 return true;
2692 }
2693 case GICXXCustomAction_GICombiner68:{
2694 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2695 // Match Patterns
2696 if(![&](){return Helper.matchNarrowBinopFeedingAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2697 return false;
2698 }
2699 // Apply Patterns
2700 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2701 return true;
2702 }
2703 case GICXXCustomAction_GICombiner69:{
2704 unsigned GIMatchData_matchinfo;
2705 // Match Patterns
2706 if(![&](){return Helper.matchConstantSelectCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2707 return false;
2708 }
2709 // Apply Patterns
2710 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_matchinfo);
2711 return true;
2712 }
2713 case GICXXCustomAction_GICombiner70:{
2714 std::function<void(MachineIRBuilder &)> GIMatchData_info;
2715 // Match Patterns
2716 if(![&](){return Helper.matchSelectIMinMax(State.MIs[0]->getOperand(0), GIMatchData_info);}()) {
2717 return false;
2718 }
2719 // Apply Patterns
2720 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_info);
2721 return true;
2722 }
2723 case GICXXCustomAction_GICombiner71:{
2724 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2725 // Match Patterns
2726 if(![&](){return Helper.matchSelect(*State.MIs[0], GIMatchData_matchinfo);}()) {
2727 return false;
2728 }
2729 // Apply Patterns
2730 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2731 return true;
2732 }
2733 case GICXXCustomAction_GICombiner72:{
2734 Register GIMatchData_matchinfo;
2735 // Match Patterns
2736 if(![&](){return Helper.matchRedundantAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2737 return false;
2738 }
2739 // Apply Patterns
2740 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2741 return true;
2742 }
2743 case GICXXCustomAction_GICombiner73:{
2744 // Match Patterns
2745 if(![&](){return Helper.matchRedundantSExtInReg(*State.MIs[0]);}()) {
2746 return false;
2747 }
2748 // Apply Patterns
2749 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 1);
2750 return true;
2751 }
2752 case GICXXCustomAction_GICombiner74:{
2753 Register GIMatchData_matchinfo;
2754 // Match Patterns
2755 if(![&](){return Helper.matchRedundantOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
2756 return false;
2757 }
2758 // Apply Patterns
2759 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2760 return true;
2761 }
2762 case GICXXCustomAction_GICombiner75:{
2763 // Match Patterns
2764 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(*State.MIs[0], 2);}()) {
2765 return false;
2766 }
2767 // Apply Patterns
2768 Helper.applySimplifyURemByPow2(*State.MIs[0]);
2769 return true;
2770 }
2771 case GICXXCustomAction_GICombiner76:{
2772 Register GIMatchData_matchinfo;
2773 // Match Patterns
2774 if(![&](){return Helper.matchCombineZextTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
2775 return false;
2776 }
2777 // Apply Patterns
2778 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2779 return true;
2780 }
2781 case GICXXCustomAction_GICombiner77:{
2782 // Match Patterns
2783 if(![&](){unsigned BitWidth = MRI.getType(State.MIs[0]->getOperand(1).getReg()).getScalarSizeInBits();
2784 return Helper.getValueTracking()->maskedValueIsZero(State.MIs[0]->getOperand(1).getReg(),
2785 APInt::getOneBitSet(BitWidth, State.MIs[0]->getOperand(2).getImm() - 1));}()) {
2786 return false;
2787 }
2788 // Apply Patterns
2789 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
2790 Helper.getBuilder().buildZExtInReg(State.MIs[0]->getOperand(0), State.MIs[0]->getOperand(1), State.MIs[0]->getOperand(2).getImm());
2791 State.MIs[0]->eraseFromParent();
2792 return true;
2793 }
2794 case GICXXCustomAction_GICombiner78:{
2795 std::pair<MachineInstr*, LLT> GIMatchData_matchinfo;
2796 // Match Patterns
2797 if(![&](){return Helper.matchCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
2798 return false;
2799 }
2800 // Apply Patterns
2801 Helper.applyCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);
2802 return true;
2803 }
2804 case GICXXCustomAction_GICombiner79:{
2805 SmallVector<Register> GIMatchData_info;
2806 // Match Patterns
2807 if(![&](){return Helper.matchNotCmp(*State.MIs[0], GIMatchData_info);}()) {
2808 return false;
2809 }
2810 // Apply Patterns
2811 Helper.applyNotCmp(*State.MIs[0], GIMatchData_info);
2812 return true;
2813 }
2814 case GICXXCustomAction_GICombiner80:{
2815 MachineInstr * GIMatchData_matchinfo;
2816 // Match Patterns
2817 if(![&](){return Helper.matchOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);}()) {
2818 return false;
2819 }
2820 // Apply Patterns
2821 Helper.applyOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);
2822 return true;
2823 }
2824 case GICXXCustomAction_GICombiner81:{
2825 // Apply Patterns
2826 Helper.applyCombineConstantFoldFpUnary(*State.MIs[0], State.MIs[1]->getOperand(1).getFPImm());
2827 return true;
2828 }
2829 case GICXXCustomAction_GICombiner82:{
2830 // Apply Patterns
2831 Helper.replaceInstWithFConstant(*State.MIs[0]->getOperand(0).getParent(), 0.0);
2832 return true;
2833 }
2834 case GICXXCustomAction_GICombiner83:{
2835 APInt GIMatchData_info;
2836 // Match Patterns
2837 if(![&](){return Helper.matchCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info);}()) {
2838 return false;
2839 }
2840 // Apply Patterns
2841 Helper.applyCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info);
2842 return true;
2843 }
2844 case GICXXCustomAction_GICombiner84:{
2845 std::function<void(MachineIRBuilder &)> GIMatchData_info;
2846 // Match Patterns
2847 if(![&](){return Helper.matchOverlappingAnd(*State.MIs[0], GIMatchData_info);}()) {
2848 return false;
2849 }
2850 // Apply Patterns
2851 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
2852 return true;
2853 }
2854 case GICXXCustomAction_GICombiner85:{
2855 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2856 // Match Patterns
2857 if(![&](){return Helper.matchMulOBy2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2858 return false;
2859 }
2860 // Apply Patterns
2861 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2862 return true;
2863 }
2864 case GICXXCustomAction_GICombiner86:{
2865 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2866 // Match Patterns
2867 if(![&](){return Helper.matchMulOBy0(*State.MIs[0], GIMatchData_matchinfo);}()) {
2868 return false;
2869 }
2870 // Apply Patterns
2871 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2872 return true;
2873 }
2874 case GICXXCustomAction_GICombiner87:{
2875 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2876 // Match Patterns
2877 if(![&](){return Helper.matchAddEToAddO(*State.MIs[0], GIMatchData_matchinfo);}()) {
2878 return false;
2879 }
2880 // Apply Patterns
2881 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2882 return true;
2883 }
2884 case GICXXCustomAction_GICombiner88:{
2885 unsigned GIMatchData_info;
2886 // Match Patterns
2887 if(![&](){return Helper.matchCombineFMinMaxNaN(*State.MIs[0], GIMatchData_info);}()) {
2888 return false;
2889 }
2890 // Apply Patterns
2891 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_info);
2892 return true;
2893 }
2894 case GICXXCustomAction_GICombiner89:{
2895 // Match Patterns
2896 if(![&](){return Helper.matchFPowIExpansion(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());}()) {
2897 return false;
2898 }
2899 // Apply Patterns
2900 Helper.applyExpandFPowI(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());
2901 return true;
2902 }
2903 case GICXXCustomAction_GICombiner90:{
2904 std::pair<Register, Register> GIMatchData_matchinfo;
2905 // Match Patterns
2906 if(![&](){return Helper.matchXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
2907 return false;
2908 }
2909 // Apply Patterns
2910 Helper.applyXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);
2911 return true;
2912 }
2913 case GICXXCustomAction_GICombiner91:{
2914 // Match Patterns
2915 if(![&](){return Helper.matchPtrAddZero(*State.MIs[0]);}()) {
2916 return false;
2917 }
2918 // Apply Patterns
2919 Helper.applyPtrAddZero(*State.MIs[0]);
2920 return true;
2921 }
2922 case GICXXCustomAction_GICombiner92:{
2923 RegisterImmPair GIMatchData_matchinfo;
2924 // Match Patterns
2925 if(![&](){return Helper.matchShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
2926 return false;
2927 }
2928 // Apply Patterns
2929 Helper.applyShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);
2930 return true;
2931 }
2932 case GICXXCustomAction_GICombiner93:{
2933 ShiftOfShiftedLogic GIMatchData_matchinfo;
2934 // Match Patterns
2935 if(![&](){return Helper.matchShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);}()) {
2936 return false;
2937 }
2938 // Apply Patterns
2939 Helper.applyShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);
2940 return true;
2941 }
2942 case GICXXCustomAction_GICombiner94:{
2943 std::function<void(MachineIRBuilder &)> GIMatchData_info;
2944 // Match Patterns
2945 if(![&](){return Helper.matchLoadOrCombine(*State.MIs[0], GIMatchData_info);}()) {
2946 return false;
2947 }
2948 // Apply Patterns
2949 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
2950 return true;
2951 }
2952 case GICXXCustomAction_GICombiner95:{
2953 MachineInstr * GIMatchData_matchinfo;
2954 // Match Patterns
2955 if(![&](){return Helper.matchCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);}()) {
2956 return false;
2957 }
2958 // Apply Patterns
2959 Helper.applyCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);
2960 return true;
2961 }
2962 case GICXXCustomAction_GICombiner96:{
2963 std::function<void(MachineIRBuilder &)> GIMatchData_info;
2964 // Match Patterns
2965 if(![&](){return Helper.matchOrShiftToFunnelShift(*State.MIs[0], GIMatchData_info);}()) {
2966 return false;
2967 }
2968 // Apply Patterns
2969 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
2970 return true;
2971 }
2972 case GICXXCustomAction_GICombiner97:{
2973 // Match Patterns
2974 if(![&](){return Helper.matchFunnelShiftToRotate(*State.MIs[0]);}()) {
2975 return false;
2976 }
2977 // Apply Patterns
2978 Helper.applyFunnelShiftToRotate(*State.MIs[0]);
2979 return true;
2980 }
2981 case GICXXCustomAction_GICombiner98:{
2982 // Match Patterns
2983 if(![&](){return Helper.matchConstantLargerBitWidth(*State.MIs[0], 3);}()) {
2984 return false;
2985 }
2986 // Apply Patterns
2987 Helper.applyFunnelShiftConstantModulo(*State.MIs[0]);
2988 return true;
2989 }
2990 case GICXXCustomAction_GICombiner99:{
2991 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2992 // Match Patterns
2993 if(![&](){return Helper.matchCommuteShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
2994 return false;
2995 }
2996 // Apply Patterns
2997 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2998 return true;
2999 }
3000 case GICXXCustomAction_GICombiner100:{
3001 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3002 // Match Patterns
3003 if(![&](){return Helper.matchBitfieldExtractFromSExtInReg(*State.MIs[0], GIMatchData_info);}()) {
3004 return false;
3005 }
3006 // Apply Patterns
3007 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3008 return true;
3009 }
3010 case GICXXCustomAction_GICombiner101:{
3011 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3012 // Match Patterns
3013 if(![&](){return Helper.matchBitfieldExtractFromAnd(*State.MIs[0], GIMatchData_info);}()) {
3014 return false;
3015 }
3016 // Apply Patterns
3017 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3018 return true;
3019 }
3020 case GICXXCustomAction_GICombiner102:{
3021 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3022 // Match Patterns
3023 if(![&](){return Helper.matchBitfieldExtractFromShr(*State.MIs[0], GIMatchData_info);}()) {
3024 return false;
3025 }
3026 // Apply Patterns
3027 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3028 return true;
3029 }
3030 case GICXXCustomAction_GICombiner103:{
3031 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3032 // Match Patterns
3033 if(![&](){return Helper.matchBitfieldExtractFromShrAnd(*State.MIs[0], GIMatchData_info);}()) {
3034 return false;
3035 }
3036 // Apply Patterns
3037 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3038 return true;
3039 }
3040 case GICXXCustomAction_GICombiner104:{
3041 APInt GIMatchData_matchinfo;
3042 // Match Patterns
3043 if(![&](){return Helper.matchConstantFoldBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3044 return false;
3045 }
3046 // Apply Patterns
3047 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3048 return true;
3049 }
3050 case GICXXCustomAction_GICombiner105:{
3051 ConstantFP* GIMatchData_matchinfo;
3052 // Match Patterns
3053 if(![&](){return Helper.matchConstantFoldFPBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3054 return false;
3055 }
3056 // Apply Patterns
3057 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3058 return true;
3059 }
3060 case GICXXCustomAction_GICombiner106:{
3061 ConstantFP* GIMatchData_matchinfo;
3062 // Match Patterns
3063 if(![&](){return Helper.matchConstantFoldFMA(*State.MIs[0], GIMatchData_matchinfo);}()) {
3064 return false;
3065 }
3066 // Apply Patterns
3067 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3068 return true;
3069 }
3070 case GICXXCustomAction_GICombiner107:{
3071 APInt GIMatchData_matchinfo;
3072 // Match Patterns
3073 if(![&](){return Helper.matchConstantFoldCastOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3074 return false;
3075 }
3076 // Apply Patterns
3077 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3078 return true;
3079 }
3080 case GICXXCustomAction_GICombiner108:{
3081 // Match Patterns
3082 if(![&](){return Helper.matchUDivorURemByConst(*State.MIs[0]);}()) {
3083 return false;
3084 }
3085 // Apply Patterns
3086 Helper.applyUDivorURemByConst(*State.MIs[0]);
3087 return true;
3088 }
3089 case GICXXCustomAction_GICombiner109:{
3090 // Match Patterns
3091 if(![&](){return Helper.matchSDivByConst(*State.MIs[0]);}()) {
3092 return false;
3093 }
3094 // Apply Patterns
3095 Helper.applySDivByConst(*State.MIs[0]);
3096 return true;
3097 }
3098 case GICXXCustomAction_GICombiner110:{
3099 // Match Patterns
3100 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/true);}()) {
3101 return false;
3102 }
3103 // Apply Patterns
3104 Helper.applySDivByPow2(*State.MIs[0]);
3105 return true;
3106 }
3107 case GICXXCustomAction_GICombiner111:{
3108 // Match Patterns
3109 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/false);}()) {
3110 return false;
3111 }
3112 // Apply Patterns
3113 Helper.applyUDivByPow2(*State.MIs[0]);
3114 return true;
3115 }
3116 case GICXXCustomAction_GICombiner112:{
3117 // Match Patterns
3118 if(![&](){return Helper.matchUMulHToLShr(*State.MIs[0]);}()) {
3119 return false;
3120 }
3121 // Apply Patterns
3122 Helper.applyUMulHToLShr(*State.MIs[0]);
3123 return true;
3124 }
3125 case GICXXCustomAction_GICombiner113:{
3126 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3127 // Match Patterns
3128 if(![&](){return Helper.matchRedundantNegOperands(*State.MIs[0], GIMatchData_matchinfo);}()) {
3129 return false;
3130 }
3131 // Apply Patterns
3132 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3133 return true;
3134 }
3135 case GICXXCustomAction_GICombiner114:{
3136 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3137 // Match Patterns
3138 if(![&](){return Helper.matchAndOrDisjointMask(*State.MIs[0], GIMatchData_info);}()) {
3139 return false;
3140 }
3141 // Apply Patterns
3142 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_info);
3143 return true;
3144 }
3145 case GICXXCustomAction_GICombiner115:{
3146 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3147 // Match Patterns
3148 if(![&](){return Helper.matchCombineFAddFMulToFMadOrFMA(*State.MIs[0],
3149 GIMatchData_info);}()) {
3150 return false;
3151 }
3152 // Apply Patterns
3153 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3154 return true;
3155 }
3156 case GICXXCustomAction_GICombiner116:{
3157 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3158 // Match Patterns
3159 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMA(*State.MIs[0],
3160 GIMatchData_info);}()) {
3161 return false;
3162 }
3163 // Apply Patterns
3164 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3165 return true;
3166 }
3167 case GICXXCustomAction_GICombiner117:{
3168 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3169 // Match Patterns
3170 if(![&](){return Helper.matchCombineFAddFMAFMulToFMadOrFMA(*State.MIs[0],
3171 GIMatchData_info);}()) {
3172 return false;
3173 }
3174 // Apply Patterns
3175 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3176 return true;
3177 }
3178 case GICXXCustomAction_GICombiner118:{
3179 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3180 // Match Patterns
3181 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMAAggressive(
3182 *State.MIs[0], GIMatchData_info);}()) {
3183 return false;
3184 }
3185 // Apply Patterns
3186 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3187 return true;
3188 }
3189 case GICXXCustomAction_GICombiner119:{
3190 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3191 // Match Patterns
3192 if(![&](){return Helper.matchCombineFSubFMulToFMadOrFMA(*State.MIs[0],
3193 GIMatchData_info);}()) {
3194 return false;
3195 }
3196 // Apply Patterns
3197 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3198 return true;
3199 }
3200 case GICXXCustomAction_GICombiner120:{
3201 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3202 // Match Patterns
3203 if(![&](){return Helper.matchCombineFSubFNegFMulToFMadOrFMA(*State.MIs[0],
3204 GIMatchData_info);}()) {
3205 return false;
3206 }
3207 // Apply Patterns
3208 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3209 return true;
3210 }
3211 case GICXXCustomAction_GICombiner121:{
3212 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3213 // Match Patterns
3214 if(![&](){return Helper.matchCombineFSubFpExtFMulToFMadOrFMA(*State.MIs[0],
3215 GIMatchData_info);}()) {
3216 return false;
3217 }
3218 // Apply Patterns
3219 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3220 return true;
3221 }
3222 case GICXXCustomAction_GICombiner122:{
3223 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3224 // Match Patterns
3225 if(![&](){return Helper.matchCombineFSubFpExtFNegFMulToFMadOrFMA(
3226 *State.MIs[0], GIMatchData_info);}()) {
3227 return false;
3228 }
3229 // Apply Patterns
3230 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3231 return true;
3232 }
3233 case GICXXCustomAction_GICombiner123:{
3234 unsigned GIMatchData_select_op_no;
3235 // Match Patterns
3236 if(![&](){return Helper.matchFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);}()) {
3237 return false;
3238 }
3239 // Apply Patterns
3240 Helper.applyFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);
3241 return true;
3242 }
3243 case GICXXCustomAction_GICombiner124:{
3244 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3245 // Match Patterns
3246 if(![&](){return Helper.matchSubAddSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3247 return false;
3248 }
3249 // Apply Patterns
3250 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3251 return true;
3252 }
3253 case GICXXCustomAction_GICombiner125:{
3254 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3255 // Match Patterns
3256 if(![&](){return Helper.matchSimplifySelectToMinMax(*State.MIs[0], GIMatchData_info);}()) {
3257 return false;
3258 }
3259 // Apply Patterns
3260 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3261 return true;
3262 }
3263 case GICXXCustomAction_GICombiner126:{
3264 Register GIMatchData_matchinfo;
3265 // Match Patterns
3266 if(![&](){return Helper.matchFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3267 return false;
3268 }
3269 // Apply Patterns
3270 Helper.applyFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);
3271 return true;
3272 }
3273 case GICXXCustomAction_GICombiner127:{
3274 // Match Patterns
3275 if(![&](){return Helper.matchCommuteConstantToRHS(*State.MIs[0]);}()) {
3276 return false;
3277 }
3278 // Apply Patterns
3279 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
3280 return true;
3281 }
3282 case GICXXCustomAction_GICombiner128:{
3283 // Match Patterns
3284 if(![&](){return Helper.matchCommuteFPConstantToRHS(*State.MIs[0]);}()) {
3285 return false;
3286 }
3287 // Apply Patterns
3288 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
3289 return true;
3290 }
3291 case GICXXCustomAction_GICombiner129:{
3292 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3293 // Match Patterns
3294 if(![&](){return Helper.matchAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3295 return false;
3296 }
3297 // Apply Patterns
3298 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3299 return true;
3300 }
3301 case GICXXCustomAction_GICombiner130:{
3302 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3303 // Match Patterns
3304 if(![&](){return Helper.matchOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
3305 return false;
3306 }
3307 // Apply Patterns
3308 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3309 return true;
3310 }
3311 case GICXXCustomAction_GICombiner131:{
3312 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3313 // Match Patterns
3314 if(![&](){return Helper.matchSimplifyNegMinMax(*State.MIs[0], GIMatchData_matchinfo);}()) {
3315 return false;
3316 }
3317 // Apply Patterns
3318 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3319 return true;
3320 }
3321 case GICXXCustomAction_GICombiner132:{
3322 SmallVector<Register> GIMatchData_matchinfo;
3323 // Match Patterns
3324 if(![&](){return Helper.matchCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);}()) {
3325 return false;
3326 }
3327 // Apply Patterns
3328 Helper.applyCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);
3329 return true;
3330 }
3331 case GICXXCustomAction_GICombiner133:{
3332 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3333 // Match Patterns
3334 if(![&](){return Helper.matchSextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3335 return false;
3336 }
3337 // Apply Patterns
3338 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3339 return true;
3340 }
3341 case GICXXCustomAction_GICombiner134:{
3342 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3343 // Match Patterns
3344 if(![&](){return Helper.matchZextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3345 return false;
3346 }
3347 // Apply Patterns
3348 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3349 return true;
3350 }
3351 case GICXXCustomAction_GICombiner135:{
3352 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3353 // Match Patterns
3354 if(![&](){return Helper.matchNonNegZext(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3355 return false;
3356 }
3357 // Apply Patterns
3358 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3359 return true;
3360 }
3361 case GICXXCustomAction_GICombiner136:{
3362 SmallVector<Register> GIMatchData_matchinfo;
3363 // Match Patterns
3364 if(![&](){return Helper.matchCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);}()) {
3365 return false;
3366 }
3367 // Apply Patterns
3368 Helper.applyCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);
3369 return true;
3370 }
3371 case GICXXCustomAction_GICombiner137:{
3372 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3373 // Match Patterns
3374 if(![&](){return Helper.matchShuffleUndefRHS(*State.MIs[0], GIMatchData_matchinfo);}()) {
3375 return false;
3376 }
3377 // Apply Patterns
3378 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3379 return true;
3380 }
3381 case GICXXCustomAction_GICombiner138:{
3382 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3383 // Match Patterns
3384 if(![&](){return Helper.matchShuffleDisjointMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
3385 return false;
3386 }
3387 // Apply Patterns
3388 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3389 return true;
3390 }
3391 case GICXXCustomAction_GICombiner139:{
3392 Register GIMatchData_matchinfo;
3393 // Match Patterns
3394 if(![&](){return Helper.matchUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);}()) {
3395 return false;
3396 }
3397 // Apply Patterns
3398 Helper.applyUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);
3399 return true;
3400 }
3401 case GICXXCustomAction_GICombiner140:{
3402 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3403 // Match Patterns
3404 if(![&](){return Helper.matchUnmergeValuesAnyExtBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
3405 return false;
3406 }
3407 // Apply Patterns
3408 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3409 return true;
3410 }
3411 case GICXXCustomAction_GICombiner141:{
3412 SmallVector<Register> GIMatchData_info;
3413 // Match Patterns
3414 if(![&](){return Helper.matchCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);}()) {
3415 return false;
3416 }
3417 // Apply Patterns
3418 Helper.applyCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);
3419 return true;
3420 }
3421 case GICXXCustomAction_GICombiner142:{
3422 Register GIMatchData_matchinfo;
3423 // Match Patterns
3424 if(![&](){return Helper.matchCombineMergeUnmerge(*State.MIs[0], GIMatchData_matchinfo);}()) {
3425 return false;
3426 }
3427 // Apply Patterns
3428 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3429 return true;
3430 }
3431 case GICXXCustomAction_GICombiner143:{
3432 SmallVector<APInt, 8> GIMatchData_info;
3433 // Match Patterns
3434 if(![&](){return Helper.matchCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);}()) {
3435 return false;
3436 }
3437 // Apply Patterns
3438 Helper.applyCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);
3439 return true;
3440 }
3441 case GICXXCustomAction_GICombiner144:{
3442 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3443 // Match Patterns
3444 if(![&](){return Helper.matchCombineUnmergeUndef(*State.MIs[0], GIMatchData_info);}()) {
3445 return false;
3446 }
3447 // Apply Patterns
3448 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3449 return true;
3450 }
3451 case GICXXCustomAction_GICombiner145:{
3452 // Match Patterns
3453 if(![&](){return Helper.matchCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);}()) {
3454 return false;
3455 }
3456 // Apply Patterns
3457 Helper.applyCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);
3458 return true;
3459 }
3460 case GICXXCustomAction_GICombiner146:{
3461 // Match Patterns
3462 if(![&](){return Helper.matchCombineUnmergeZExtToZExt(*State.MIs[0]);}()) {
3463 return false;
3464 }
3465 // Apply Patterns
3466 Helper.applyCombineUnmergeZExtToZExt(*State.MIs[0]);
3467 return true;
3468 }
3469 case GICXXCustomAction_GICombiner147:{
3470 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3471 // Match Patterns
3472 if(![&](){return Helper.matchMergeXAndUndef(*State.MIs[0], GIMatchData_matchinfo);}()) {
3473 return false;
3474 }
3475 // Apply Patterns
3476 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3477 return true;
3478 }
3479 case GICXXCustomAction_GICombiner148:{
3480 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3481 // Match Patterns
3482 if(![&](){return Helper.matchMergeXAndZero(*State.MIs[0], GIMatchData_matchinfo);}()) {
3483 return false;
3484 }
3485 // Apply Patterns
3486 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3487 return true;
3488 }
3489 case GICXXCustomAction_GICombiner149:{
3490 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3491 // Match Patterns
3492 if(![&](){return Helper.matchAddOverflow(*State.MIs[0], GIMatchData_matchinfo);}()) {
3493 return false;
3494 }
3495 // Apply Patterns
3496 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3497 return true;
3498 }
3499 case GICXXCustomAction_GICombiner150:{
3500 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3501 // Match Patterns
3502 if(![&](){return Helper.matchSuboCarryOut(*State.MIs[0], GIMatchData_matchinfo);}()) {
3503 return false;
3504 }
3505 // Apply Patterns
3506 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3507 return true;
3508 }
3509 case GICXXCustomAction_GICombiner151:{
3510 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3511 // Match Patterns
3512 if(![&](){return Helper.matchCombineFmulWithSelectToFldexp(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3513 return false;
3514 }
3515 // Apply Patterns
3516 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3517 return true;
3518 }
3519 case GICXXCustomAction_GICombiner152:{
3520 ClampI64ToI16MatchInfo GIMatchData_matchinfo;
3521 // Match Patterns
3522 if(![&](){return matchClampI64ToI16(*State.MIs[0], MRI, MF, GIMatchData_matchinfo);}()) {
3523 return false;
3524 }
3525 // Apply Patterns
3526 applyClampI64ToI16(*State.MIs[0], GIMatchData_matchinfo);
3527 return true;
3528 }
3529 case GICXXCustomAction_GICombiner153:{
3530 MachineInstr * GIMatchData_matchinfo;
3531 // Match Patterns
3532 if(![&](){return Helper.matchFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3533 return false;
3534 }
3535 // Apply Patterns
3536 Helper.applyFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);
3537 return true;
3538 }
3539 case GICXXCustomAction_GICombiner154:{
3540 // Match Patterns
3541 if(![&](){return Helper.matchCombineShuffleToBuildVector(*State.MIs[0]);}()) {
3542 return false;
3543 }
3544 // Apply Patterns
3545 Helper.applyCombineShuffleToBuildVector(*State.MIs[0]);
3546 return true;
3547 }
3548 }
3549 llvm_unreachable("Unknown Apply Action");
3550}
3551#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
3552#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((uint16_t)Val >> 8)
3553#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((uint32_t)Val >> 8), uint8_t((uint32_t)Val >> 16), uint8_t((uint32_t)Val >> 24)
3554#define GIMT_Encode8(Val) uint8_t(Val), uint8_t((uint64_t)Val >> 8), uint8_t((uint64_t)Val >> 16), uint8_t((uint64_t)Val >> 24), uint8_t((uint64_t)Val >> 32), uint8_t((uint64_t)Val >> 40), uint8_t((uint64_t)Val >> 48), uint8_t((uint64_t)Val >> 56)
3555#else
3556#define GIMT_Encode2(Val) uint8_t((uint16_t)Val >> 8), uint8_t(Val)
3557#define GIMT_Encode4(Val) uint8_t((uint32_t)Val >> 24), uint8_t((uint32_t)Val >> 16), uint8_t((uint32_t)Val >> 8), uint8_t(Val)
3558#define GIMT_Encode8(Val) uint8_t((uint64_t)Val >> 56), uint8_t((uint64_t)Val >> 48), uint8_t((uint64_t)Val >> 40), uint8_t((uint64_t)Val >> 32), uint8_t((uint64_t)Val >> 24), uint8_t((uint64_t)Val >> 16), uint8_t((uint64_t)Val >> 8), uint8_t(Val)
3559#endif
3560const uint8_t *AMDGPUPreLegalizerCombinerImpl::getMatchTable() const {
3561 constexpr static uint8_t MatchTable0[] = {
3562 /* 0 */ GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(20), GIMT_Encode2(264), /*)*//*default:*//*Label 95*/ GIMT_Encode4(7084),
3563 /* 10 */ /*TargetOpcode::COPY*//*Label 0*/ GIMT_Encode4(986), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3564 /* 142 */ /*TargetOpcode::G_ADD*//*Label 1*/ GIMT_Encode4(998),
3565 /* 146 */ /*TargetOpcode::G_SUB*//*Label 2*/ GIMT_Encode4(1555),
3566 /* 150 */ /*TargetOpcode::G_MUL*//*Label 3*/ GIMT_Encode4(1873),
3567 /* 154 */ /*TargetOpcode::G_SDIV*//*Label 4*/ GIMT_Encode4(2039),
3568 /* 158 */ /*TargetOpcode::G_UDIV*//*Label 5*/ GIMT_Encode4(2112),
3569 /* 162 */ /*TargetOpcode::G_SREM*//*Label 6*/ GIMT_Encode4(2196),
3570 /* 166 */ /*TargetOpcode::G_UREM*//*Label 7*/ GIMT_Encode4(2241), GIMT_Encode4(0), GIMT_Encode4(0),
3571 /* 178 */ /*TargetOpcode::G_AND*//*Label 8*/ GIMT_Encode4(2319),
3572 /* 182 */ /*TargetOpcode::G_OR*//*Label 9*/ GIMT_Encode4(2600),
3573 /* 186 */ /*TargetOpcode::G_XOR*//*Label 10*/ GIMT_Encode4(2845), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3574 /* 202 */ /*TargetOpcode::G_PHI*//*Label 11*/ GIMT_Encode4(2946), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3575 /* 226 */ /*TargetOpcode::G_UNMERGE_VALUES*//*Label 12*/ GIMT_Encode4(2958), GIMT_Encode4(0),
3576 /* 234 */ /*TargetOpcode::G_MERGE_VALUES*//*Label 13*/ GIMT_Encode4(3025),
3577 /* 238 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 14*/ GIMT_Encode4(3099),
3578 /* 242 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 15*/ GIMT_Encode4(3147),
3579 /* 246 */ /*TargetOpcode::G_CONCAT_VECTORS*//*Label 16*/ GIMT_Encode4(3159),
3580 /* 250 */ /*TargetOpcode::G_PTRTOINT*//*Label 17*/ GIMT_Encode4(3171),
3581 /* 254 */ /*TargetOpcode::G_INTTOPTR*//*Label 18*/ GIMT_Encode4(3214),
3582 /* 258 */ /*TargetOpcode::G_BITCAST*//*Label 19*/ GIMT_Encode4(3247),
3583 /* 262 */ /*TargetOpcode::G_FREEZE*//*Label 20*/ GIMT_Encode4(3290), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3584 /* 302 */ /*TargetOpcode::G_LOAD*//*Label 21*/ GIMT_Encode4(3354),
3585 /* 306 */ /*TargetOpcode::G_SEXTLOAD*//*Label 22*/ GIMT_Encode4(3366),
3586 /* 310 */ /*TargetOpcode::G_ZEXTLOAD*//*Label 23*/ GIMT_Encode4(3378), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3587 /* 326 */ /*TargetOpcode::G_STORE*//*Label 24*/ GIMT_Encode4(3390), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3588 /* 462 */ /*TargetOpcode::G_ANYEXT*//*Label 25*/ GIMT_Encode4(3402),
3589 /* 466 */ /*TargetOpcode::G_TRUNC*//*Label 26*/ GIMT_Encode4(3530), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3590 /* 486 */ /*TargetOpcode::G_SEXT*//*Label 27*/ GIMT_Encode4(3899),
3591 /* 490 */ /*TargetOpcode::G_SEXT_INREG*//*Label 28*/ GIMT_Encode4(3974),
3592 /* 494 */ /*TargetOpcode::G_ZEXT*//*Label 29*/ GIMT_Encode4(4040),
3593 /* 498 */ /*TargetOpcode::G_SHL*//*Label 30*/ GIMT_Encode4(4170),
3594 /* 502 */ /*TargetOpcode::G_LSHR*//*Label 31*/ GIMT_Encode4(4339),
3595 /* 506 */ /*TargetOpcode::G_ASHR*//*Label 32*/ GIMT_Encode4(4462),
3596 /* 510 */ /*TargetOpcode::G_FSHL*//*Label 33*/ GIMT_Encode4(4596),
3597 /* 514 */ /*TargetOpcode::G_FSHR*//*Label 34*/ GIMT_Encode4(4639),
3598 /* 518 */ /*TargetOpcode::G_ROTR*//*Label 35*/ GIMT_Encode4(4682),
3599 /* 522 */ /*TargetOpcode::G_ROTL*//*Label 36*/ GIMT_Encode4(4706),
3600 /* 526 */ /*TargetOpcode::G_ICMP*//*Label 37*/ GIMT_Encode4(4730),
3601 /* 530 */ /*TargetOpcode::G_FCMP*//*Label 38*/ GIMT_Encode4(4775), GIMT_Encode4(0), GIMT_Encode4(0),
3602 /* 542 */ /*TargetOpcode::G_SELECT*//*Label 39*/ GIMT_Encode4(4787),
3603 /* 546 */ /*TargetOpcode::G_UADDO*//*Label 40*/ GIMT_Encode4(4882),
3604 /* 550 */ /*TargetOpcode::G_UADDE*//*Label 41*/ GIMT_Encode4(4905),
3605 /* 554 */ /*TargetOpcode::G_USUBO*//*Label 42*/ GIMT_Encode4(4917),
3606 /* 558 */ /*TargetOpcode::G_USUBE*//*Label 43*/ GIMT_Encode4(4929),
3607 /* 562 */ /*TargetOpcode::G_SADDO*//*Label 44*/ GIMT_Encode4(4941),
3608 /* 566 */ /*TargetOpcode::G_SADDE*//*Label 45*/ GIMT_Encode4(4964),
3609 /* 570 */ /*TargetOpcode::G_SSUBO*//*Label 46*/ GIMT_Encode4(4976),
3610 /* 574 */ /*TargetOpcode::G_SSUBE*//*Label 47*/ GIMT_Encode4(4988),
3611 /* 578 */ /*TargetOpcode::G_UMULO*//*Label 48*/ GIMT_Encode4(5000),
3612 /* 582 */ /*TargetOpcode::G_SMULO*//*Label 49*/ GIMT_Encode4(5034),
3613 /* 586 */ /*TargetOpcode::G_UMULH*//*Label 50*/ GIMT_Encode4(5068),
3614 /* 590 */ /*TargetOpcode::G_SMULH*//*Label 51*/ GIMT_Encode4(5091),
3615 /* 594 */ /*TargetOpcode::G_UADDSAT*//*Label 52*/ GIMT_Encode4(5103),
3616 /* 598 */ /*TargetOpcode::G_SADDSAT*//*Label 53*/ GIMT_Encode4(5115), GIMT_Encode4(0), GIMT_Encode4(0),
3617 /* 610 */ /*TargetOpcode::G_USHLSAT*//*Label 54*/ GIMT_Encode4(5127),
3618 /* 614 */ /*TargetOpcode::G_SSHLSAT*//*Label 55*/ GIMT_Encode4(5150),
3619 /* 618 */ /*TargetOpcode::G_SMULFIX*//*Label 56*/ GIMT_Encode4(5173),
3620 /* 622 */ /*TargetOpcode::G_UMULFIX*//*Label 57*/ GIMT_Encode4(5185),
3621 /* 626 */ /*TargetOpcode::G_SMULFIXSAT*//*Label 58*/ GIMT_Encode4(5197),
3622 /* 630 */ /*TargetOpcode::G_UMULFIXSAT*//*Label 59*/ GIMT_Encode4(5209), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3623 /* 650 */ /*TargetOpcode::G_FADD*//*Label 60*/ GIMT_Encode4(5221),
3624 /* 654 */ /*TargetOpcode::G_FSUB*//*Label 61*/ GIMT_Encode4(5333),
3625 /* 658 */ /*TargetOpcode::G_FMUL*//*Label 62*/ GIMT_Encode4(5422),
3626 /* 662 */ /*TargetOpcode::G_FMA*//*Label 63*/ GIMT_Encode4(5531),
3627 /* 666 */ /*TargetOpcode::G_FMAD*//*Label 64*/ GIMT_Encode4(5554),
3628 /* 670 */ /*TargetOpcode::G_FDIV*//*Label 65*/ GIMT_Encode4(5577),
3629 /* 674 */ /*TargetOpcode::G_FREM*//*Label 66*/ GIMT_Encode4(5611), GIMT_Encode4(0),
3630 /* 682 */ /*TargetOpcode::G_FPOWI*//*Label 67*/ GIMT_Encode4(5623), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3631 /* 702 */ /*TargetOpcode::G_FLOG2*//*Label 68*/ GIMT_Encode4(5645), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3632 /* 718 */ /*TargetOpcode::G_FNEG*//*Label 69*/ GIMT_Encode4(5667), GIMT_Encode4(0),
3633 /* 726 */ /*TargetOpcode::G_FPTRUNC*//*Label 70*/ GIMT_Encode4(5729),
3634 /* 730 */ /*TargetOpcode::G_FPTOSI*//*Label 71*/ GIMT_Encode4(5772),
3635 /* 734 */ /*TargetOpcode::G_FPTOUI*//*Label 72*/ GIMT_Encode4(5794),
3636 /* 738 */ /*TargetOpcode::G_SITOFP*//*Label 73*/ GIMT_Encode4(5816),
3637 /* 742 */ /*TargetOpcode::G_UITOFP*//*Label 74*/ GIMT_Encode4(5843), GIMT_Encode4(0), GIMT_Encode4(0),
3638 /* 754 */ /*TargetOpcode::G_FABS*//*Label 75*/ GIMT_Encode4(5870), GIMT_Encode4(0), GIMT_Encode4(0),
3639 /* 766 */ /*TargetOpcode::G_FCANONICALIZE*//*Label 76*/ GIMT_Encode4(5949),
3640 /* 770 */ /*TargetOpcode::G_FMINNUM*//*Label 77*/ GIMT_Encode4(5979),
3641 /* 774 */ /*TargetOpcode::G_FMAXNUM*//*Label 78*/ GIMT_Encode4(6013),
3642 /* 778 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 79*/ GIMT_Encode4(6047),
3643 /* 782 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 80*/ GIMT_Encode4(6059),
3644 /* 786 */ /*TargetOpcode::G_FMINIMUM*//*Label 81*/ GIMT_Encode4(6071),
3645 /* 790 */ /*TargetOpcode::G_FMAXIMUM*//*Label 82*/ GIMT_Encode4(6105), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3646 /* 826 */ /*TargetOpcode::G_PTR_ADD*//*Label 83*/ GIMT_Encode4(6139), GIMT_Encode4(0),
3647 /* 834 */ /*TargetOpcode::G_SMIN*//*Label 84*/ GIMT_Encode4(6229),
3648 /* 838 */ /*TargetOpcode::G_SMAX*//*Label 85*/ GIMT_Encode4(6263),
3649 /* 842 */ /*TargetOpcode::G_UMIN*//*Label 86*/ GIMT_Encode4(6297),
3650 /* 846 */ /*TargetOpcode::G_UMAX*//*Label 87*/ GIMT_Encode4(6331),
3651 /* 850 */ /*TargetOpcode::G_ABS*//*Label 88*/ GIMT_Encode4(6365), GIMT_Encode4(0), GIMT_Encode4(0),
3652 /* 862 */ /*TargetOpcode::G_BR*//*Label 89*/ GIMT_Encode4(6377), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3653 /* 882 */ /*TargetOpcode::G_INSERT_VECTOR_ELT*//*Label 90*/ GIMT_Encode4(6389),
3654 /* 886 */ /*TargetOpcode::G_EXTRACT_VECTOR_ELT*//*Label 91*/ GIMT_Encode4(6519),
3655 /* 890 */ /*TargetOpcode::G_SHUFFLE_VECTOR*//*Label 92*/ GIMT_Encode4(6896), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3656 /* 930 */ /*TargetOpcode::G_BITREVERSE*//*Label 93*/ GIMT_Encode4(6973), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3657 /* 982 */ /*TargetOpcode::G_FSQRT*//*Label 94*/ GIMT_Encode4(7062),
3658 /* 986 */ // Label 0: @986
3659 /* 986 */ GIM_Try, /*On fail goto*//*Label 96*/ GIMT_Encode4(997), // Rule ID 13 //
3660 /* 991 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
3661 /* 994 */ // MIs[0] d
3662 /* 994 */ // No operand predicates
3663 /* 994 */ // MIs[0] s
3664 /* 994 */ // No operand predicates
3665 /* 994 */ // Combiner Rule #13: copy_prop
3666 /* 994 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
3667 /* 997 */ // Label 96: @997
3668 /* 997 */ GIM_Reject,
3669 /* 998 */ // Label 1: @998
3670 /* 998 */ GIM_Try, /*On fail goto*//*Label 97*/ GIMT_Encode4(1009), // Rule ID 16 //
3671 /* 1003 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
3672 /* 1006 */ // Combiner Rule #16: add_p2i_to_ptradd; wip_match_opcode 'G_ADD'
3673 /* 1006 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
3674 /* 1009 */ // Label 97: @1009
3675 /* 1009 */ GIM_Try, /*On fail goto*//*Label 98*/ GIMT_Encode4(1020), // Rule ID 94 //
3676 /* 1014 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
3677 /* 1017 */ // Combiner Rule #78: propagate_undef_any_op; wip_match_opcode 'G_ADD'
3678 /* 1017 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
3679 /* 1020 */ // Label 98: @1020
3680 /* 1020 */ GIM_Try, /*On fail goto*//*Label 99*/ GIMT_Encode4(1031), // Rule ID 141 //
3681 /* 1025 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
3682 /* 1028 */ // Combiner Rule #103: simplify_add_to_sub; wip_match_opcode 'G_ADD'
3683 /* 1028 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
3684 /* 1031 */ // Label 99: @1031
3685 /* 1031 */ GIM_Try, /*On fail goto*//*Label 100*/ GIMT_Encode4(1042), // Rule ID 231 //
3686 /* 1036 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
3687 /* 1039 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_ADD'
3688 /* 1039 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
3689 /* 1042 */ // Label 100: @1042
3690 /* 1042 */ GIM_Try, /*On fail goto*//*Label 101*/ GIMT_Encode4(1053), // Rule ID 279 //
3691 /* 1047 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
3692 /* 1050 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_ADD'
3693 /* 1050 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
3694 /* 1053 */ // Label 101: @1053
3695 /* 1053 */ GIM_Try, /*On fail goto*//*Label 102*/ GIMT_Encode4(1064), // Rule ID 309 //
3696 /* 1058 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
3697 /* 1061 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_ADD'
3698 /* 1061 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
3699 /* 1064 */ // Label 102: @1064
3700 /* 1064 */ GIM_Try, /*On fail goto*//*Label 103*/ GIMT_Encode4(1098), // Rule ID 0 //
3701 /* 1069 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
3702 /* 1072 */ // MIs[0] root
3703 /* 1072 */ // No operand predicates
3704 /* 1072 */ // MIs[0] sub
3705 /* 1072 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3706 /* 1076 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
3707 /* 1080 */ // MIs[1] Operand 1
3708 /* 1080 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
3709 /* 1084 */ // MIs[1] A
3710 /* 1084 */ // No operand predicates
3711 /* 1084 */ // MIs[0] B
3712 /* 1084 */ // No operand predicates
3713 /* 1084 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
3714 /* 1086 */ // Combiner Rule #0: ZeroMinusAPlusB
3715 /* 1086 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
3716 /* 1089 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
3717 /* 1091 */ GIR_RootToRootCopy, /*OpIdx*/2, // B
3718 /* 1093 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // A
3719 /* 1097 */ GIR_EraseRootFromParent_Done,
3720 /* 1098 */ // Label 103: @1098
3721 /* 1098 */ GIM_Try, /*On fail goto*//*Label 104*/ GIMT_Encode4(1135), // Rule ID 12 //
3722 /* 1103 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
3723 /* 1106 */ // MIs[0] root
3724 /* 1106 */ // No operand predicates
3725 /* 1106 */ // MIs[0] sub
3726 /* 1106 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3727 /* 1110 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
3728 /* 1114 */ // MIs[1] A
3729 /* 1114 */ // No operand predicates
3730 /* 1114 */ // MIs[1] c1
3731 /* 1114 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
3732 /* 1118 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
3733 /* 1122 */ // MIs[2] imm1
3734 /* 1122 */ // No operand predicates
3735 /* 1122 */ // MIs[0] c2
3736 /* 1122 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
3737 /* 1126 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
3738 /* 1130 */ // MIs[3] imm2
3739 /* 1130 */ // No operand predicates
3740 /* 1130 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
3741 /* 1132 */ // Combiner Rule #12: AMinusC1PlusC2
3742 /* 1132 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
3743 /* 1135 */ // Label 104: @1135
3744 /* 1135 */ GIM_Try, /*On fail goto*//*Label 105*/ GIMT_Encode4(1169), // Rule ID 3 //
3745 /* 1140 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
3746 /* 1143 */ // MIs[0] root
3747 /* 1143 */ // No operand predicates
3748 /* 1143 */ // MIs[0] sub
3749 /* 1143 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3750 /* 1147 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
3751 /* 1151 */ // MIs[1] B
3752 /* 1151 */ // No operand predicates
3753 /* 1151 */ // MIs[1] A
3754 /* 1151 */ // No operand predicates
3755 /* 1151 */ // MIs[0] A
3756 /* 1151 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
3757 /* 1156 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
3758 /* 1161 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
3759 /* 1163 */ // Combiner Rule #3: BMinusAPlusA
3760 /* 1163 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
3761 /* 1168 */ GIR_EraseRootFromParent_Done,
3762 /* 1169 */ // Label 105: @1169
3763 /* 1169 */ GIM_Try, /*On fail goto*//*Label 106*/ GIMT_Encode4(1203), // Rule ID 131 //
3764 /* 1174 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
3765 /* 1177 */ // MIs[0] dst
3766 /* 1177 */ // No operand predicates
3767 /* 1177 */ // MIs[0] __add_sub_reg_match_0.tmp
3768 /* 1177 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3769 /* 1181 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
3770 /* 1185 */ // MIs[1] src
3771 /* 1185 */ // No operand predicates
3772 /* 1185 */ // MIs[1] __add_sub_reg_match_0.x
3773 /* 1185 */ // No operand predicates
3774 /* 1185 */ // MIs[0] __add_sub_reg_match_0.x
3775 /* 1185 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
3776 /* 1190 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
3777 /* 1195 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
3778 /* 1197 */ // Combiner Rule #94: add_sub_reg @ [__add_sub_reg_match_0[1]]
3779 /* 1197 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
3780 /* 1202 */ GIR_EraseRootFromParent_Done,
3781 /* 1203 */ // Label 106: @1203
3782 /* 1203 */ GIM_Try, /*On fail goto*//*Label 107*/ GIMT_Encode4(1248), // Rule ID 5 //
3783 /* 1208 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
3784 /* 1211 */ // MIs[0] root
3785 /* 1211 */ // No operand predicates
3786 /* 1211 */ // MIs[0] sub1
3787 /* 1211 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3788 /* 1215 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
3789 /* 1219 */ // MIs[1] A
3790 /* 1219 */ // No operand predicates
3791 /* 1219 */ // MIs[1] B
3792 /* 1219 */ // No operand predicates
3793 /* 1219 */ // MIs[0] sub2
3794 /* 1219 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3795 /* 1223 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
3796 /* 1227 */ // MIs[2] B
3797 /* 1227 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
3798 /* 1232 */ // MIs[2] C
3799 /* 1232 */ // No operand predicates
3800 /* 1232 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
3801 /* 1234 */ // Combiner Rule #5: AMinusBPlusBMinusC
3802 /* 1234 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
3803 /* 1237 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
3804 /* 1239 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
3805 /* 1243 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
3806 /* 1247 */ GIR_EraseRootFromParent_Done,
3807 /* 1248 */ // Label 107: @1248
3808 /* 1248 */ GIM_Try, /*On fail goto*//*Label 108*/ GIMT_Encode4(1293), // Rule ID 4 //
3809 /* 1253 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
3810 /* 1256 */ // MIs[0] root
3811 /* 1256 */ // No operand predicates
3812 /* 1256 */ // MIs[0] sub1
3813 /* 1256 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3814 /* 1260 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
3815 /* 1264 */ // MIs[1] A
3816 /* 1264 */ // No operand predicates
3817 /* 1264 */ // MIs[1] B
3818 /* 1264 */ // No operand predicates
3819 /* 1264 */ // MIs[0] sub2
3820 /* 1264 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3821 /* 1268 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
3822 /* 1272 */ // MIs[2] C
3823 /* 1272 */ // No operand predicates
3824 /* 1272 */ // MIs[2] A
3825 /* 1272 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
3826 /* 1277 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
3827 /* 1279 */ // Combiner Rule #4: AMinusBPlusCMinusA
3828 /* 1279 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
3829 /* 1282 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
3830 /* 1284 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
3831 /* 1288 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
3832 /* 1292 */ GIR_EraseRootFromParent_Done,
3833 /* 1293 */ // Label 108: @1293
3834 /* 1293 */ GIM_Try, /*On fail goto*//*Label 109*/ GIMT_Encode4(1328), // Rule ID 39 //
3835 /* 1298 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
3836 /* 1301 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
3837 /* 1307 */ // MIs[0] root
3838 /* 1307 */ // No operand predicates
3839 /* 1307 */ // MIs[0] left
3840 /* 1307 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3841 /* 1311 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
3842 /* 1315 */ // MIs[1] imm1
3843 /* 1315 */ // No operand predicates
3844 /* 1315 */ // MIs[0] right
3845 /* 1315 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3846 /* 1319 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_VSCALE),
3847 /* 1323 */ // MIs[2] imm2
3848 /* 1323 */ // No operand predicates
3849 /* 1323 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
3850 /* 1325 */ // Combiner Rule #37: add_of_vscale
3851 /* 1325 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
3852 /* 1328 */ // Label 109: @1328
3853 /* 1328 */ GIM_Try, /*On fail goto*//*Label 110*/ GIMT_Encode4(1362), // Rule ID 1 //
3854 /* 1333 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
3855 /* 1336 */ // MIs[0] root
3856 /* 1336 */ // No operand predicates
3857 /* 1336 */ // MIs[0] A
3858 /* 1336 */ // No operand predicates
3859 /* 1336 */ // MIs[0] sub
3860 /* 1336 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3861 /* 1340 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
3862 /* 1344 */ // MIs[1] Operand 1
3863 /* 1344 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
3864 /* 1348 */ // MIs[1] B
3865 /* 1348 */ // No operand predicates
3866 /* 1348 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
3867 /* 1350 */ // Combiner Rule #1: APlusZeroMinusB
3868 /* 1350 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
3869 /* 1353 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
3870 /* 1355 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
3871 /* 1357 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
3872 /* 1361 */ GIR_EraseRootFromParent_Done,
3873 /* 1362 */ // Label 110: @1362
3874 /* 1362 */ GIM_Try, /*On fail goto*//*Label 111*/ GIMT_Encode4(1396), // Rule ID 2 //
3875 /* 1367 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
3876 /* 1370 */ // MIs[0] root
3877 /* 1370 */ // No operand predicates
3878 /* 1370 */ // MIs[0] A
3879 /* 1370 */ // No operand predicates
3880 /* 1370 */ // MIs[0] sub
3881 /* 1370 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3882 /* 1374 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
3883 /* 1378 */ // MIs[1] B
3884 /* 1378 */ // No operand predicates
3885 /* 1378 */ // MIs[1] A
3886 /* 1378 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
3887 /* 1383 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
3888 /* 1388 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
3889 /* 1390 */ // Combiner Rule #2: APlusBMinusB
3890 /* 1390 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
3891 /* 1395 */ GIR_EraseRootFromParent_Done,
3892 /* 1396 */ // Label 111: @1396
3893 /* 1396 */ GIM_Try, /*On fail goto*//*Label 112*/ GIMT_Encode4(1430), // Rule ID 130 //
3894 /* 1401 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
3895 /* 1404 */ // MIs[0] dst
3896 /* 1404 */ // No operand predicates
3897 /* 1404 */ // MIs[0] __add_sub_reg_match_0.x
3898 /* 1404 */ // No operand predicates
3899 /* 1404 */ // MIs[0] __add_sub_reg_match_0.tmp
3900 /* 1404 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3901 /* 1408 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
3902 /* 1412 */ // MIs[1] src
3903 /* 1412 */ // No operand predicates
3904 /* 1412 */ // MIs[1] __add_sub_reg_match_0.x
3905 /* 1412 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
3906 /* 1417 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
3907 /* 1422 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
3908 /* 1424 */ // Combiner Rule #94: add_sub_reg @ [__add_sub_reg_match_0[0]]
3909 /* 1424 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
3910 /* 1429 */ GIR_EraseRootFromParent_Done,
3911 /* 1430 */ // Label 112: @1430
3912 /* 1430 */ GIM_Try, /*On fail goto*//*Label 113*/ GIMT_Encode4(1475), // Rule ID 6 //
3913 /* 1435 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
3914 /* 1438 */ // MIs[0] root
3915 /* 1438 */ // No operand predicates
3916 /* 1438 */ // MIs[0] A
3917 /* 1438 */ // No operand predicates
3918 /* 1438 */ // MIs[0] sub1
3919 /* 1438 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3920 /* 1442 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
3921 /* 1446 */ // MIs[1] B
3922 /* 1446 */ // No operand predicates
3923 /* 1446 */ // MIs[1] add1
3924 /* 1446 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
3925 /* 1450 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
3926 /* 1454 */ // MIs[2] A
3927 /* 1454 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
3928 /* 1459 */ // MIs[2] C
3929 /* 1459 */ // No operand predicates
3930 /* 1459 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
3931 /* 1461 */ // Combiner Rule #6: APlusBMinusAplusC
3932 /* 1461 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
3933 /* 1464 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
3934 /* 1466 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
3935 /* 1470 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
3936 /* 1474 */ GIR_EraseRootFromParent_Done,
3937 /* 1475 */ // Label 113: @1475
3938 /* 1475 */ GIM_Try, /*On fail goto*//*Label 114*/ GIMT_Encode4(1520), // Rule ID 7 //
3939 /* 1480 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
3940 /* 1483 */ // MIs[0] root
3941 /* 1483 */ // No operand predicates
3942 /* 1483 */ // MIs[0] A
3943 /* 1483 */ // No operand predicates
3944 /* 1483 */ // MIs[0] sub1
3945 /* 1483 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
3946 /* 1487 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
3947 /* 1491 */ // MIs[1] B
3948 /* 1491 */ // No operand predicates
3949 /* 1491 */ // MIs[1] add1
3950 /* 1491 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
3951 /* 1495 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
3952 /* 1499 */ // MIs[2] C
3953 /* 1499 */ // No operand predicates
3954 /* 1499 */ // MIs[2] A
3955 /* 1499 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
3956 /* 1504 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
3957 /* 1506 */ // Combiner Rule #7: APlusBMinusCPlusA
3958 /* 1506 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
3959 /* 1509 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
3960 /* 1511 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
3961 /* 1515 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
3962 /* 1519 */ GIR_EraseRootFromParent_Done,
3963 /* 1520 */ // Label 114: @1520
3964 /* 1520 */ GIM_Try, /*On fail goto*//*Label 115*/ GIMT_Encode4(1543), // Rule ID 105 //
3965 /* 1525 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
3966 /* 1528 */ // MIs[0] dst
3967 /* 1528 */ // No operand predicates
3968 /* 1528 */ // MIs[0] lhs
3969 /* 1528 */ // No operand predicates
3970 /* 1528 */ // MIs[0] Operand 2
3971 /* 1528 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
3972 /* 1532 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
3973 /* 1537 */ // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[1]]
3974 /* 1537 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
3975 /* 1542 */ GIR_EraseRootFromParent_Done,
3976 /* 1543 */ // Label 115: @1543
3977 /* 1543 */ GIM_Try, /*On fail goto*//*Label 116*/ GIMT_Encode4(1554), // Rule ID 149 //
3978 /* 1548 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
3979 /* 1551 */ // MIs[0] root
3980 /* 1551 */ // No operand predicates
3981 /* 1551 */ // MIs[0] src1
3982 /* 1551 */ // No operand predicates
3983 /* 1551 */ // MIs[0] src2
3984 /* 1551 */ // No operand predicates
3985 /* 1551 */ // Combiner Rule #107: reassoc_comm_binops
3986 /* 1551 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner58),
3987 /* 1554 */ // Label 116: @1554
3988 /* 1554 */ GIM_Reject,
3989 /* 1555 */ // Label 2: @1555
3990 /* 1555 */ GIM_Try, /*On fail goto*//*Label 117*/ GIMT_Encode4(1566), // Rule ID 95 //
3991 /* 1560 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
3992 /* 1563 */ // Combiner Rule #78: propagate_undef_any_op; wip_match_opcode 'G_SUB'
3993 /* 1563 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
3994 /* 1566 */ // Label 117: @1566
3995 /* 1566 */ GIM_Try, /*On fail goto*//*Label 118*/ GIMT_Encode4(1577), // Rule ID 239 //
3996 /* 1571 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
3997 /* 1574 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_SUB'
3998 /* 1574 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
3999 /* 1577 */ // Label 118: @1577
4000 /* 1577 */ GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(1588), // Rule ID 280 //
4001 /* 1582 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
4002 /* 1585 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SUB'
4003 /* 1585 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
4004 /* 1588 */ // Label 119: @1588
4005 /* 1588 */ GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(1599), // Rule ID 306 //
4006 /* 1593 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
4007 /* 1596 */ // Combiner Rule #188: sub_add_reg; wip_match_opcode 'G_SUB'
4008 /* 1596 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner124),
4009 /* 1599 */ // Label 120: @1599
4010 /* 1599 */ GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(1610), // Rule ID 340 //
4011 /* 1604 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
4012 /* 1607 */ // Combiner Rule #195: simplify_neg_minmax; wip_match_opcode 'G_SUB'
4013 /* 1607 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
4014 /* 1610 */ // Label 121: @1610
4015 /* 1610 */ GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(1647), // Rule ID 8 //
4016 /* 1615 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
4017 /* 1618 */ // MIs[0] root
4018 /* 1618 */ // No operand predicates
4019 /* 1618 */ // MIs[0] add
4020 /* 1618 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4021 /* 1622 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
4022 /* 1626 */ // MIs[1] A
4023 /* 1626 */ // No operand predicates
4024 /* 1626 */ // MIs[1] c1
4025 /* 1626 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4026 /* 1630 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4027 /* 1634 */ // MIs[2] imm1
4028 /* 1634 */ // No operand predicates
4029 /* 1634 */ // MIs[0] c2
4030 /* 1634 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4031 /* 1638 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4032 /* 1642 */ // MIs[3] imm2
4033 /* 1642 */ // No operand predicates
4034 /* 1642 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4035 /* 1644 */ // Combiner Rule #8: APlusC1MinusC2
4036 /* 1644 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
4037 /* 1647 */ // Label 122: @1647
4038 /* 1647 */ GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(1684), // Rule ID 11 //
4039 /* 1652 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
4040 /* 1655 */ // MIs[0] root
4041 /* 1655 */ // No operand predicates
4042 /* 1655 */ // MIs[0] sub1
4043 /* 1655 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4044 /* 1659 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4045 /* 1663 */ // MIs[1] c1
4046 /* 1663 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4047 /* 1667 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4048 /* 1671 */ // MIs[2] imm1
4049 /* 1671 */ // No operand predicates
4050 /* 1671 */ // MIs[1] A
4051 /* 1671 */ // No operand predicates
4052 /* 1671 */ // MIs[0] c2
4053 /* 1671 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4054 /* 1675 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4055 /* 1679 */ // MIs[3] imm2
4056 /* 1679 */ // No operand predicates
4057 /* 1679 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4058 /* 1681 */ // Combiner Rule #11: C1Minus2MinusC2
4059 /* 1681 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
4060 /* 1684 */ // Label 123: @1684
4061 /* 1684 */ GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(1721), // Rule ID 10 //
4062 /* 1689 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
4063 /* 1692 */ // MIs[0] root
4064 /* 1692 */ // No operand predicates
4065 /* 1692 */ // MIs[0] sub1
4066 /* 1692 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4067 /* 1696 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4068 /* 1700 */ // MIs[1] A
4069 /* 1700 */ // No operand predicates
4070 /* 1700 */ // MIs[1] c1
4071 /* 1700 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4072 /* 1704 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4073 /* 1708 */ // MIs[2] imm1
4074 /* 1708 */ // No operand predicates
4075 /* 1708 */ // MIs[0] c2
4076 /* 1708 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4077 /* 1712 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4078 /* 1716 */ // MIs[3] imm2
4079 /* 1716 */ // No operand predicates
4080 /* 1716 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4081 /* 1718 */ // Combiner Rule #10: AMinusC1MinusC2
4082 /* 1718 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
4083 /* 1721 */ // Label 124: @1721
4084 /* 1721 */ GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(1764), // Rule ID 159 //
4085 /* 1726 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled),
4086 /* 1729 */ // MIs[0] dst
4087 /* 1729 */ // No operand predicates
4088 /* 1729 */ // MIs[0] Operand 1
4089 /* 1729 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
4090 /* 1733 */ // MIs[0] and
4091 /* 1733 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4092 /* 1737 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
4093 /* 1741 */ // MIs[1] x
4094 /* 1741 */ // No operand predicates
4095 /* 1741 */ // MIs[1] Operand 2
4096 /* 1741 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
4097 /* 1745 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
4098 /* 1749 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4099 /* 1751 */ // Combiner Rule #117: neg_and_one_to_sext_inreg
4100 /* 1751 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
4101 /* 1754 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
4102 /* 1756 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
4103 /* 1760 */ GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
4104 /* 1763 */ GIR_EraseRootFromParent_Done,
4105 /* 1764 */ // Label 125: @1764
4106 /* 1764 */ GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(1801), // Rule ID 9 //
4107 /* 1769 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
4108 /* 1772 */ // MIs[0] root
4109 /* 1772 */ // No operand predicates
4110 /* 1772 */ // MIs[0] c2
4111 /* 1772 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4112 /* 1776 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4113 /* 1780 */ // MIs[1] imm2
4114 /* 1780 */ // No operand predicates
4115 /* 1780 */ // MIs[0] add
4116 /* 1780 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4117 /* 1784 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4118 /* 1788 */ // MIs[2] A
4119 /* 1788 */ // No operand predicates
4120 /* 1788 */ // MIs[2] c1
4121 /* 1788 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
4122 /* 1792 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4123 /* 1796 */ // MIs[3] imm1
4124 /* 1796 */ // No operand predicates
4125 /* 1796 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4126 /* 1798 */ // Combiner Rule #9: C2MinusAPlusC1
4127 /* 1798 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
4128 /* 1801 */ // Label 126: @1801
4129 /* 1801 */ GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(1828), // Rule ID 42 //
4130 /* 1806 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
4131 /* 1809 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
4132 /* 1815 */ // MIs[0] root
4133 /* 1815 */ // No operand predicates
4134 /* 1815 */ // MIs[0] x
4135 /* 1815 */ // No operand predicates
4136 /* 1815 */ // MIs[0] right
4137 /* 1815 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4138 /* 1819 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
4139 /* 1823 */ // MIs[1] imm
4140 /* 1823 */ // No operand predicates
4141 /* 1823 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4142 /* 1825 */ // Combiner Rule #40: sub_of_vscale
4143 /* 1825 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
4144 /* 1828 */ // Label 127: @1828
4145 /* 1828 */ GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(1851), // Rule ID 104 //
4146 /* 1833 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
4147 /* 1836 */ // MIs[0] dst
4148 /* 1836 */ // No operand predicates
4149 /* 1836 */ // MIs[0] lhs
4150 /* 1836 */ // No operand predicates
4151 /* 1836 */ // MIs[0] Operand 2
4152 /* 1836 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4153 /* 1840 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4154 /* 1845 */ // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[0]]
4155 /* 1845 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4156 /* 1850 */ GIR_EraseRootFromParent_Done,
4157 /* 1851 */ // Label 128: @1851
4158 /* 1851 */ GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(1872), // Rule ID 15 //
4159 /* 1856 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
4160 /* 1859 */ // MIs[0] d
4161 /* 1859 */ // No operand predicates
4162 /* 1859 */ // MIs[0] op1
4163 /* 1859 */ // No operand predicates
4164 /* 1859 */ // MIs[0] c
4165 /* 1859 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4166 /* 1863 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4167 /* 1867 */ // MIs[1] imm
4168 /* 1867 */ // No operand predicates
4169 /* 1867 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4170 /* 1869 */ // Combiner Rule #15: sub_to_add
4171 /* 1869 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
4172 /* 1872 */ // Label 129: @1872
4173 /* 1872 */ GIM_Reject,
4174 /* 1873 */ // Label 3: @1873
4175 /* 1873 */ GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(1884), // Rule ID 78 //
4176 /* 1878 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
4177 /* 1881 */ // Combiner Rule #72: undef_to_int_zero; wip_match_opcode 'G_MUL'
4178 /* 1881 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
4179 /* 1884 */ // Label 130: @1884
4180 /* 1884 */ GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(1895), // Rule ID 236 //
4181 /* 1889 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
4182 /* 1892 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_MUL'
4183 /* 1892 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
4184 /* 1895 */ // Label 131: @1895
4185 /* 1895 */ GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(1906), // Rule ID 310 //
4186 /* 1900 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
4187 /* 1903 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_MUL'
4188 /* 1903 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
4189 /* 1906 */ // Label 132: @1906
4190 /* 1906 */ GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(1946), // Rule ID 17 //
4191 /* 1911 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
4192 /* 1914 */ // MIs[0] dst
4193 /* 1914 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/uint8_t(-1),
4194 /* 1918 */ // MIs[0] x
4195 /* 1918 */ // No operand predicates
4196 /* 1918 */ // MIs[0] Operand 2
4197 /* 1918 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, uint8_t(-1),
4198 /* 1922 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/uint8_t(-1),
4199 /* 1925 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
4200 /* 1935 */ // Combiner Rule #17: mul_by_neg_one
4201 /* 1935 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4202 /* 1938 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
4203 /* 1940 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
4204 /* 1943 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
4205 /* 1945 */ GIR_EraseRootFromParent_Done,
4206 /* 1946 */ // Label 133: @1946
4207 /* 1946 */ GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(1981), // Rule ID 40 //
4208 /* 1951 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
4209 /* 1954 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
4210 /* 1960 */ // MIs[0] root
4211 /* 1960 */ // No operand predicates
4212 /* 1960 */ // MIs[0] left
4213 /* 1960 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4214 /* 1964 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
4215 /* 1968 */ // MIs[1] scale
4216 /* 1968 */ // No operand predicates
4217 /* 1968 */ // MIs[0] x
4218 /* 1968 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4219 /* 1972 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4220 /* 1976 */ // MIs[2] imm1
4221 /* 1976 */ // No operand predicates
4222 /* 1976 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4223 /* 1978 */ // Combiner Rule #38: mul_of_vscale
4224 /* 1978 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
4225 /* 1981 */ // Label 134: @1981
4226 /* 1981 */ GIM_Try, /*On fail goto*//*Label 135*/ GIMT_Encode4(2004), // Rule ID 123 //
4227 /* 1986 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
4228 /* 1989 */ // MIs[0] dst
4229 /* 1989 */ // No operand predicates
4230 /* 1989 */ // MIs[0] lhs
4231 /* 1989 */ // No operand predicates
4232 /* 1989 */ // MIs[0] zero
4233 /* 1989 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4234 /* 1993 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
4235 /* 1998 */ // Combiner Rule #87: binop_right_to_zero
4236 /* 1998 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
4237 /* 2003 */ GIR_EraseRootFromParent_Done,
4238 /* 2004 */ // Label 135: @2004
4239 /* 2004 */ GIM_Try, /*On fail goto*//*Label 136*/ GIMT_Encode4(2027), // Rule ID 128 //
4240 /* 2009 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
4241 /* 2012 */ // MIs[0] dst
4242 /* 2012 */ // No operand predicates
4243 /* 2012 */ // MIs[0] x
4244 /* 2012 */ // No operand predicates
4245 /* 2012 */ // MIs[0] Operand 2
4246 /* 2012 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
4247 /* 2016 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4248 /* 2021 */ // Combiner Rule #92: right_identity_one_int
4249 /* 2021 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4250 /* 2026 */ GIR_EraseRootFromParent_Done,
4251 /* 2027 */ // Label 136: @2027
4252 /* 2027 */ GIM_Try, /*On fail goto*//*Label 137*/ GIMT_Encode4(2038), // Rule ID 14 //
4253 /* 2032 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
4254 /* 2035 */ // MIs[0] d
4255 /* 2035 */ // No operand predicates
4256 /* 2035 */ // MIs[0] op1
4257 /* 2035 */ // No operand predicates
4258 /* 2035 */ // MIs[0] op2
4259 /* 2035 */ // No operand predicates
4260 /* 2035 */ // Combiner Rule #14: mul_to_shl
4261 /* 2035 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
4262 /* 2038 */ // Label 137: @2038
4263 /* 2038 */ GIM_Reject,
4264 /* 2039 */ // Label 4: @2039
4265 /* 2039 */ GIM_Try, /*On fail goto*//*Label 138*/ GIMT_Encode4(2050), // Rule ID 119 //
4266 /* 2044 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
4267 /* 2047 */ // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_SDIV'
4268 /* 2047 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
4269 /* 2050 */ // Label 138: @2050
4270 /* 2050 */ GIM_Try, /*On fail goto*//*Label 139*/ GIMT_Encode4(2061), // Rule ID 211 //
4271 /* 2055 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
4272 /* 2058 */ // Combiner Rule #153: div_rem_to_divrem; wip_match_opcode 'G_SDIV'
4273 /* 2058 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
4274 /* 2061 */ // Label 139: @2061
4275 /* 2061 */ GIM_Try, /*On fail goto*//*Label 140*/ GIMT_Encode4(2072), // Rule ID 242 //
4276 /* 2066 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
4277 /* 2069 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_SDIV'
4278 /* 2069 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
4279 /* 2072 */ // Label 140: @2072
4280 /* 2072 */ GIM_Try, /*On fail goto*//*Label 141*/ GIMT_Encode4(2083), // Rule ID 260 //
4281 /* 2077 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
4282 /* 2080 */ // Combiner Rule #172: sdiv_by_const; wip_match_opcode 'G_SDIV'
4283 /* 2080 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
4284 /* 2083 */ // Label 141: @2083
4285 /* 2083 */ GIM_Try, /*On fail goto*//*Label 142*/ GIMT_Encode4(2094), // Rule ID 285 //
4286 /* 2088 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
4287 /* 2091 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SDIV'
4288 /* 2091 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
4289 /* 2094 */ // Label 142: @2094
4290 /* 2094 */ GIM_Try, /*On fail goto*//*Label 143*/ GIMT_Encode4(2111), // Rule ID 261 //
4291 /* 2099 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
4292 /* 2102 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
4293 /* 2108 */ // MIs[0] dst
4294 /* 2108 */ // No operand predicates
4295 /* 2108 */ // MIs[0] x
4296 /* 2108 */ // No operand predicates
4297 /* 2108 */ // MIs[0] y
4298 /* 2108 */ // No operand predicates
4299 /* 2108 */ // Combiner Rule #173: sdiv_by_pow2
4300 /* 2108 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
4301 /* 2111 */ // Label 143: @2111
4302 /* 2111 */ GIM_Reject,
4303 /* 2112 */ // Label 5: @2112
4304 /* 2112 */ GIM_Try, /*On fail goto*//*Label 144*/ GIMT_Encode4(2123), // Rule ID 81 //
4305 /* 2117 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
4306 /* 2120 */ // Combiner Rule #74: binop_left_undef_to_zero; wip_match_opcode 'G_UDIV'
4307 /* 2120 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
4308 /* 2123 */ // Label 144: @2123
4309 /* 2123 */ GIM_Try, /*On fail goto*//*Label 145*/ GIMT_Encode4(2134), // Rule ID 120 //
4310 /* 2128 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
4311 /* 2131 */ // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_UDIV'
4312 /* 2131 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
4313 /* 2134 */ // Label 145: @2134
4314 /* 2134 */ GIM_Try, /*On fail goto*//*Label 146*/ GIMT_Encode4(2145), // Rule ID 212 //
4315 /* 2139 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
4316 /* 2142 */ // Combiner Rule #153: div_rem_to_divrem; wip_match_opcode 'G_UDIV'
4317 /* 2142 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
4318 /* 2145 */ // Label 146: @2145
4319 /* 2145 */ GIM_Try, /*On fail goto*//*Label 147*/ GIMT_Encode4(2156), // Rule ID 241 //
4320 /* 2150 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
4321 /* 2153 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_UDIV'
4322 /* 2153 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
4323 /* 2156 */ // Label 147: @2156
4324 /* 2156 */ GIM_Try, /*On fail goto*//*Label 148*/ GIMT_Encode4(2167), // Rule ID 259 //
4325 /* 2161 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
4326 /* 2164 */ // Combiner Rule #171: udiv_by_const; wip_match_opcode 'G_UDIV'
4327 /* 2164 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
4328 /* 2167 */ // Label 148: @2167
4329 /* 2167 */ GIM_Try, /*On fail goto*//*Label 149*/ GIMT_Encode4(2178), // Rule ID 287 //
4330 /* 2172 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
4331 /* 2175 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_UDIV'
4332 /* 2175 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
4333 /* 2178 */ // Label 149: @2178
4334 /* 2178 */ GIM_Try, /*On fail goto*//*Label 150*/ GIMT_Encode4(2195), // Rule ID 262 //
4335 /* 2183 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
4336 /* 2186 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
4337 /* 2192 */ // MIs[0] dst
4338 /* 2192 */ // No operand predicates
4339 /* 2192 */ // MIs[0] x
4340 /* 2192 */ // No operand predicates
4341 /* 2192 */ // MIs[0] y
4342 /* 2192 */ // No operand predicates
4343 /* 2192 */ // Combiner Rule #174: udiv_by_pow2
4344 /* 2192 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner111),
4345 /* 2195 */ // Label 150: @2195
4346 /* 2195 */ GIM_Reject,
4347 /* 2196 */ // Label 6: @2196
4348 /* 2196 */ GIM_Try, /*On fail goto*//*Label 151*/ GIMT_Encode4(2207), // Rule ID 121 //
4349 /* 2201 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
4350 /* 2204 */ // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_SREM'
4351 /* 2204 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
4352 /* 2207 */ // Label 151: @2207
4353 /* 2207 */ GIM_Try, /*On fail goto*//*Label 152*/ GIMT_Encode4(2218), // Rule ID 213 //
4354 /* 2212 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
4355 /* 2215 */ // Combiner Rule #153: div_rem_to_divrem; wip_match_opcode 'G_SREM'
4356 /* 2215 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
4357 /* 2218 */ // Label 152: @2218
4358 /* 2218 */ GIM_Try, /*On fail goto*//*Label 153*/ GIMT_Encode4(2229), // Rule ID 244 //
4359 /* 2223 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
4360 /* 2226 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_SREM'
4361 /* 2226 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
4362 /* 2229 */ // Label 153: @2229
4363 /* 2229 */ GIM_Try, /*On fail goto*//*Label 154*/ GIMT_Encode4(2240), // Rule ID 286 //
4364 /* 2234 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
4365 /* 2237 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SREM'
4366 /* 2237 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
4367 /* 2240 */ // Label 154: @2240
4368 /* 2240 */ GIM_Reject,
4369 /* 2241 */ // Label 7: @2241
4370 /* 2241 */ GIM_Try, /*On fail goto*//*Label 155*/ GIMT_Encode4(2252), // Rule ID 82 //
4371 /* 2246 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
4372 /* 2249 */ // Combiner Rule #74: binop_left_undef_to_zero; wip_match_opcode 'G_UREM'
4373 /* 2249 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
4374 /* 2252 */ // Label 155: @2252
4375 /* 2252 */ GIM_Try, /*On fail goto*//*Label 156*/ GIMT_Encode4(2263), // Rule ID 122 //
4376 /* 2257 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
4377 /* 2260 */ // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_UREM'
4378 /* 2260 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
4379 /* 2263 */ // Label 156: @2263
4380 /* 2263 */ GIM_Try, /*On fail goto*//*Label 157*/ GIMT_Encode4(2274), // Rule ID 170 //
4381 /* 2268 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule128Enabled),
4382 /* 2271 */ // Combiner Rule #128: urem_pow2_to_mask; wip_match_opcode 'G_UREM'
4383 /* 2271 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner75),
4384 /* 2274 */ // Label 157: @2274
4385 /* 2274 */ GIM_Try, /*On fail goto*//*Label 158*/ GIMT_Encode4(2285), // Rule ID 214 //
4386 /* 2279 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
4387 /* 2282 */ // Combiner Rule #153: div_rem_to_divrem; wip_match_opcode 'G_UREM'
4388 /* 2282 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
4389 /* 2285 */ // Label 158: @2285
4390 /* 2285 */ GIM_Try, /*On fail goto*//*Label 159*/ GIMT_Encode4(2296), // Rule ID 243 //
4391 /* 2290 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
4392 /* 2293 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_UREM'
4393 /* 2293 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
4394 /* 2296 */ // Label 159: @2296
4395 /* 2296 */ GIM_Try, /*On fail goto*//*Label 160*/ GIMT_Encode4(2307), // Rule ID 288 //
4396 /* 2301 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
4397 /* 2304 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_UREM'
4398 /* 2304 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
4399 /* 2307 */ // Label 160: @2307
4400 /* 2307 */ GIM_Try, /*On fail goto*//*Label 161*/ GIMT_Encode4(2318), // Rule ID 305 //
4401 /* 2312 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
4402 /* 2315 */ // MIs[0] dst
4403 /* 2315 */ // No operand predicates
4404 /* 2315 */ // MIs[0] x
4405 /* 2315 */ // No operand predicates
4406 /* 2315 */ // MIs[0] y
4407 /* 2315 */ // No operand predicates
4408 /* 2315 */ // Combiner Rule #187: urem_by_const
4409 /* 2315 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
4410 /* 2318 */ // Label 161: @2318
4411 /* 2318 */ GIM_Reject,
4412 /* 2319 */ // Label 8: @2319
4413 /* 2319 */ GIM_Try, /*On fail goto*//*Label 162*/ GIMT_Encode4(2330), // Rule ID 73 //
4414 /* 2324 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled),
4415 /* 2327 */ // Combiner Rule #69: load_and_mask; wip_match_opcode 'G_AND'
4416 /* 2327 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
4417 /* 2330 */ // Label 162: @2330
4418 /* 2330 */ GIM_Try, /*On fail goto*//*Label 163*/ GIMT_Encode4(2341), // Rule ID 77 //
4419 /* 2335 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
4420 /* 2338 */ // Combiner Rule #72: undef_to_int_zero; wip_match_opcode 'G_AND'
4421 /* 2338 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
4422 /* 2341 */ // Label 163: @2341
4423 /* 2341 */ GIM_Try, /*On fail goto*//*Label 164*/ GIMT_Encode4(2352), // Rule ID 142 //
4424 /* 2346 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
4425 /* 2349 */ // Combiner Rule #104: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_AND'
4426 /* 2349 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
4427 /* 2352 */ // Label 164: @2352
4428 /* 2352 */ GIM_Try, /*On fail goto*//*Label 165*/ GIMT_Encode4(2363), // Rule ID 162 //
4429 /* 2357 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule120Enabled),
4430 /* 2360 */ // Combiner Rule #120: narrow_binop_feeding_and; wip_match_opcode 'G_AND'
4431 /* 2360 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner68),
4432 /* 2363 */ // Label 165: @2363
4433 /* 2363 */ GIM_Try, /*On fail goto*//*Label 166*/ GIMT_Encode4(2374), // Rule ID 167 //
4434 /* 2368 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule125Enabled),
4435 /* 2371 */ // Combiner Rule #125: redundant_and; wip_match_opcode 'G_AND'
4436 /* 2371 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
4437 /* 2374 */ // Label 166: @2374
4438 /* 2374 */ GIM_Try, /*On fail goto*//*Label 167*/ GIMT_Encode4(2385), // Rule ID 184 //
4439 /* 2379 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule142Enabled),
4440 /* 2382 */ // Combiner Rule #142: overlapping_and; wip_match_opcode 'G_AND'
4441 /* 2382 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
4442 /* 2385 */ // Label 167: @2385
4443 /* 2385 */ GIM_Try, /*On fail goto*//*Label 168*/ GIMT_Encode4(2396), // Rule ID 233 //
4444 /* 2390 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
4445 /* 2393 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_AND'
4446 /* 2393 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
4447 /* 2396 */ // Label 168: @2396
4448 /* 2396 */ GIM_Try, /*On fail goto*//*Label 169*/ GIMT_Encode4(2407), // Rule ID 270 //
4449 /* 2401 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled),
4450 /* 2404 */ // Combiner Rule #177: and_or_disjoint_mask; wip_match_opcode 'G_AND'
4451 /* 2404 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114),
4452 /* 2407 */ // Label 169: @2407
4453 /* 2407 */ GIM_Try, /*On fail goto*//*Label 170*/ GIMT_Encode4(2418), // Rule ID 282 //
4454 /* 2412 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
4455 /* 2415 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_AND'
4456 /* 2415 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
4457 /* 2418 */ // Label 170: @2418
4458 /* 2418 */ GIM_Try, /*On fail goto*//*Label 171*/ GIMT_Encode4(2429), // Rule ID 311 //
4459 /* 2423 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
4460 /* 2426 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_AND'
4461 /* 2426 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
4462 /* 2429 */ // Label 171: @2429
4463 /* 2429 */ GIM_Try, /*On fail goto*//*Label 172*/ GIMT_Encode4(2440), // Rule ID 338 //
4464 /* 2434 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
4465 /* 2437 */ // Combiner Rule #193: match_ands; wip_match_opcode 'G_AND'
4466 /* 2437 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
4467 /* 2440 */ // Label 172: @2440
4468 /* 2440 */ GIM_Try, /*On fail goto*//*Label 173*/ GIMT_Encode4(2538), // Rule ID 155 //
4469 /* 2445 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
4470 /* 2448 */ // MIs[0] root
4471 /* 2448 */ // No operand predicates
4472 /* 2448 */ // MIs[0] d1
4473 /* 2448 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4474 /* 2452 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
4475 /* 2456 */ // MIs[1] p
4476 /* 2456 */ // No operand predicates
4477 /* 2456 */ // MIs[1] s1
4478 /* 2456 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/uint8_t(-1),
4479 /* 2460 */ // MIs[1] Operand 3
4480 /* 2460 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
4481 /* 2464 */ // MIs[0] d2
4482 /* 2464 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4483 /* 2468 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
4484 /* 2472 */ // MIs[2] p
4485 /* 2472 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
4486 /* 2477 */ // MIs[2] s2
4487 /* 2477 */ // No operand predicates
4488 /* 2477 */ // MIs[2] Operand 3
4489 /* 2477 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
4490 /* 2481 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner5),
4491 /* 2485 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4492 /* 2487 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/uint8_t(-1),
4493 /* 2490 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
4494 /* 2500 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/uint8_t(-1),
4495 /* 2503 */ // Combiner Rule #113: double_icmp_zero_and_combine
4496 /* 2503 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
4497 /* 2506 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
4498 /* 2511 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
4499 /* 2515 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
4500 /* 2519 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
4501 /* 2523 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
4502 /* 2527 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
4503 /* 2531 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4504 /* 2534 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
4505 /* 2537 */ GIR_EraseRootFromParent_Done,
4506 /* 2538 */ // Label 173: @2538
4507 /* 2538 */ GIM_Try, /*On fail goto*//*Label 174*/ GIMT_Encode4(2575), // Rule ID 226 //
4508 /* 2543 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
4509 /* 2546 */ // MIs[0] root
4510 /* 2546 */ // No operand predicates
4511 /* 2546 */ // MIs[0] shift
4512 /* 2546 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4513 /* 2550 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
4514 /* 2554 */ // MIs[1] x
4515 /* 2554 */ // No operand predicates
4516 /* 2554 */ // MIs[1] lsb
4517 /* 2554 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4518 /* 2558 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4519 /* 2562 */ // MIs[2] imm1
4520 /* 2562 */ // No operand predicates
4521 /* 2562 */ // MIs[0] mask
4522 /* 2562 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4523 /* 2566 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4524 /* 2570 */ // MIs[3] imm2
4525 /* 2570 */ // No operand predicates
4526 /* 2570 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4527 /* 2572 */ // Combiner Rule #163: bitfield_extract_from_and
4528 /* 2572 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
4529 /* 2575 */ // Label 174: @2575
4530 /* 2575 */ GIM_Try, /*On fail goto*//*Label 175*/ GIMT_Encode4(2599), // Rule ID 114 //
4531 /* 2580 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
4532 /* 2583 */ // MIs[0] dst
4533 /* 2583 */ // No operand predicates
4534 /* 2583 */ // MIs[0] src
4535 /* 2583 */ // No operand predicates
4536 /* 2583 */ // MIs[0] src
4537 /* 2583 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4538 /* 2588 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4539 /* 2593 */ // Combiner Rule #85: binop_same_val @ [__binop_same_val_match_0[0]]
4540 /* 2593 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4541 /* 2598 */ GIR_EraseRootFromParent_Done,
4542 /* 2599 */ // Label 175: @2599
4543 /* 2599 */ GIM_Reject,
4544 /* 2600 */ // Label 9: @2600
4545 /* 2600 */ GIM_Try, /*On fail goto*//*Label 176*/ GIMT_Encode4(2611), // Rule ID 79 //
4546 /* 2605 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
4547 /* 2608 */ // Combiner Rule #73: undef_to_negative_one; wip_match_opcode 'G_OR'
4548 /* 2608 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
4549 /* 2611 */ // Label 176: @2611
4550 /* 2611 */ GIM_Try, /*On fail goto*//*Label 177*/ GIMT_Encode4(2622), // Rule ID 143 //
4551 /* 2616 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
4552 /* 2619 */ // Combiner Rule #104: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_OR'
4553 /* 2619 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
4554 /* 2622 */ // Label 177: @2622
4555 /* 2622 */ GIM_Try, /*On fail goto*//*Label 178*/ GIMT_Encode4(2633), // Rule ID 169 //
4556 /* 2627 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule127Enabled),
4557 /* 2630 */ // Combiner Rule #127: redundant_or; wip_match_opcode 'G_OR'
4558 /* 2630 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner74),
4559 /* 2633 */ // Label 178: @2633
4560 /* 2633 */ GIM_Try, /*On fail goto*//*Label 179*/ GIMT_Encode4(2644), // Rule ID 210 //
4561 /* 2638 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
4562 /* 2641 */ // Combiner Rule #152: load_or_combine; wip_match_opcode 'G_OR'
4563 /* 2641 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
4564 /* 2644 */ // Label 179: @2644
4565 /* 2644 */ GIM_Try, /*On fail goto*//*Label 180*/ GIMT_Encode4(2655), // Rule ID 215 //
4566 /* 2649 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule154Enabled),
4567 /* 2652 */ // Combiner Rule #154: funnel_shift_from_or_shift; wip_match_opcode 'G_OR'
4568 /* 2652 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
4569 /* 2655 */ // Label 180: @2655
4570 /* 2655 */ GIM_Try, /*On fail goto*//*Label 181*/ GIMT_Encode4(2666), // Rule ID 237 //
4571 /* 2660 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
4572 /* 2663 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_OR'
4573 /* 2663 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
4574 /* 2666 */ // Label 181: @2666
4575 /* 2666 */ GIM_Try, /*On fail goto*//*Label 182*/ GIMT_Encode4(2677), // Rule ID 283 //
4576 /* 2671 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
4577 /* 2674 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_OR'
4578 /* 2674 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
4579 /* 2677 */ // Label 182: @2677
4580 /* 2677 */ GIM_Try, /*On fail goto*//*Label 183*/ GIMT_Encode4(2688), // Rule ID 312 //
4581 /* 2682 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
4582 /* 2685 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_OR'
4583 /* 2685 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
4584 /* 2688 */ // Label 183: @2688
4585 /* 2688 */ GIM_Try, /*On fail goto*//*Label 184*/ GIMT_Encode4(2699), // Rule ID 339 //
4586 /* 2693 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
4587 /* 2696 */ // Combiner Rule #194: match_ors; wip_match_opcode 'G_OR'
4588 /* 2696 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
4589 /* 2699 */ // Label 184: @2699
4590 /* 2699 */ GIM_Try, /*On fail goto*//*Label 185*/ GIMT_Encode4(2797), // Rule ID 156 //
4591 /* 2704 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
4592 /* 2707 */ // MIs[0] root
4593 /* 2707 */ // No operand predicates
4594 /* 2707 */ // MIs[0] d1
4595 /* 2707 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4596 /* 2711 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
4597 /* 2715 */ // MIs[1] p
4598 /* 2715 */ // No operand predicates
4599 /* 2715 */ // MIs[1] s1
4600 /* 2715 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/uint8_t(-1),
4601 /* 2719 */ // MIs[1] Operand 3
4602 /* 2719 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
4603 /* 2723 */ // MIs[0] d2
4604 /* 2723 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4605 /* 2727 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
4606 /* 2731 */ // MIs[2] p
4607 /* 2731 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
4608 /* 2736 */ // MIs[2] s2
4609 /* 2736 */ // No operand predicates
4610 /* 2736 */ // MIs[2] Operand 3
4611 /* 2736 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
4612 /* 2740 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
4613 /* 2744 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4614 /* 2746 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/uint8_t(-1),
4615 /* 2749 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
4616 /* 2759 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/uint8_t(-1),
4617 /* 2762 */ // Combiner Rule #114: double_icmp_zero_or_combine
4618 /* 2762 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
4619 /* 2765 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
4620 /* 2770 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
4621 /* 2774 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
4622 /* 2778 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
4623 /* 2782 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
4624 /* 2786 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
4625 /* 2790 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4626 /* 2793 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
4627 /* 2796 */ GIR_EraseRootFromParent_Done,
4628 /* 2797 */ // Label 185: @2797
4629 /* 2797 */ GIM_Try, /*On fail goto*//*Label 186*/ GIMT_Encode4(2821), // Rule ID 115 //
4630 /* 2802 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
4631 /* 2805 */ // MIs[0] dst
4632 /* 2805 */ // No operand predicates
4633 /* 2805 */ // MIs[0] src
4634 /* 2805 */ // No operand predicates
4635 /* 2805 */ // MIs[0] src
4636 /* 2805 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4637 /* 2810 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4638 /* 2815 */ // Combiner Rule #85: binop_same_val @ [__binop_same_val_match_0[1]]
4639 /* 2815 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4640 /* 2820 */ GIR_EraseRootFromParent_Done,
4641 /* 2821 */ // Label 186: @2821
4642 /* 2821 */ GIM_Try, /*On fail goto*//*Label 187*/ GIMT_Encode4(2844), // Rule ID 106 //
4643 /* 2826 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
4644 /* 2829 */ // MIs[0] dst
4645 /* 2829 */ // No operand predicates
4646 /* 2829 */ // MIs[0] lhs
4647 /* 2829 */ // No operand predicates
4648 /* 2829 */ // MIs[0] Operand 2
4649 /* 2829 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4650 /* 2833 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4651 /* 2838 */ // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[2]]
4652 /* 2838 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4653 /* 2843 */ GIR_EraseRootFromParent_Done,
4654 /* 2844 */ // Label 187: @2844
4655 /* 2844 */ GIM_Reject,
4656 /* 2845 */ // Label 10: @2845
4657 /* 2845 */ GIM_Try, /*On fail goto*//*Label 188*/ GIMT_Encode4(2856), // Rule ID 96 //
4658 /* 2850 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
4659 /* 2853 */ // Combiner Rule #78: propagate_undef_any_op; wip_match_opcode 'G_XOR'
4660 /* 2853 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
4661 /* 2856 */ // Label 188: @2856
4662 /* 2856 */ GIM_Try, /*On fail goto*//*Label 189*/ GIMT_Encode4(2867), // Rule ID 144 //
4663 /* 2861 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
4664 /* 2864 */ // Combiner Rule #104: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_XOR'
4665 /* 2864 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
4666 /* 2867 */ // Label 189: @2867
4667 /* 2867 */ GIM_Try, /*On fail goto*//*Label 190*/ GIMT_Encode4(2878), // Rule ID 174 //
4668 /* 2872 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled),
4669 /* 2875 */ // Combiner Rule #132: not_cmp_fold; wip_match_opcode 'G_XOR'
4670 /* 2875 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
4671 /* 2878 */ // Label 190: @2878
4672 /* 2878 */ GIM_Try, /*On fail goto*//*Label 191*/ GIMT_Encode4(2889), // Rule ID 198 //
4673 /* 2883 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
4674 /* 2886 */ // Combiner Rule #148: xor_of_and_with_same_reg; wip_match_opcode 'G_XOR'
4675 /* 2886 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner90),
4676 /* 2889 */ // Label 191: @2889
4677 /* 2889 */ GIM_Try, /*On fail goto*//*Label 192*/ GIMT_Encode4(2900), // Rule ID 240 //
4678 /* 2894 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
4679 /* 2897 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_XOR'
4680 /* 2897 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
4681 /* 2900 */ // Label 192: @2900
4682 /* 2900 */ GIM_Try, /*On fail goto*//*Label 193*/ GIMT_Encode4(2911), // Rule ID 284 //
4683 /* 2905 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
4684 /* 2908 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_XOR'
4685 /* 2908 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
4686 /* 2911 */ // Label 193: @2911
4687 /* 2911 */ GIM_Try, /*On fail goto*//*Label 194*/ GIMT_Encode4(2922), // Rule ID 313 //
4688 /* 2916 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
4689 /* 2919 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_XOR'
4690 /* 2919 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
4691 /* 2922 */ // Label 194: @2922
4692 /* 2922 */ GIM_Try, /*On fail goto*//*Label 195*/ GIMT_Encode4(2945), // Rule ID 107 //
4693 /* 2927 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
4694 /* 2930 */ // MIs[0] dst
4695 /* 2930 */ // No operand predicates
4696 /* 2930 */ // MIs[0] lhs
4697 /* 2930 */ // No operand predicates
4698 /* 2930 */ // MIs[0] Operand 2
4699 /* 2930 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4700 /* 2934 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4701 /* 2939 */ // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[3]]
4702 /* 2939 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4703 /* 2944 */ GIR_EraseRootFromParent_Done,
4704 /* 2945 */ // Label 195: @2945
4705 /* 2945 */ GIM_Reject,
4706 /* 2946 */ // Label 11: @2946
4707 /* 2946 */ GIM_Try, /*On fail goto*//*Label 196*/ GIMT_Encode4(2957), // Rule ID 140 //
4708 /* 2951 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
4709 /* 2954 */ // Combiner Rule #102: extend_through_phis; wip_match_opcode 'G_PHI'
4710 /* 2954 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner53),
4711 /* 2957 */ // Label 196: @2957
4712 /* 2957 */ GIM_Reject,
4713 /* 2958 */ // Label 12: @2958
4714 /* 2958 */ GIM_Try, /*On fail goto*//*Label 197*/ GIMT_Encode4(2969), // Rule ID 349 //
4715 /* 2963 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
4716 /* 2966 */ // Combiner Rule #204: unmerge_anyext_build_vector; wip_match_opcode 'G_UNMERGE_VALUES'
4717 /* 2966 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner140),
4718 /* 2969 */ // Label 197: @2969
4719 /* 2969 */ GIM_Try, /*On fail goto*//*Label 198*/ GIMT_Encode4(2980), // Rule ID 350 //
4720 /* 2974 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule205Enabled),
4721 /* 2977 */ // Combiner Rule #205: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
4722 /* 2977 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner141),
4723 /* 2980 */ // Label 198: @2980
4724 /* 2980 */ GIM_Try, /*On fail goto*//*Label 199*/ GIMT_Encode4(2991), // Rule ID 352 //
4725 /* 2985 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
4726 /* 2988 */ // Combiner Rule #207: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
4727 /* 2988 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner143),
4728 /* 2991 */ // Label 199: @2991
4729 /* 2991 */ GIM_Try, /*On fail goto*//*Label 200*/ GIMT_Encode4(3002), // Rule ID 353 //
4730 /* 2996 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
4731 /* 2999 */ // Combiner Rule #208: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
4732 /* 2999 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner144),
4733 /* 3002 */ // Label 200: @3002
4734 /* 3002 */ GIM_Try, /*On fail goto*//*Label 201*/ GIMT_Encode4(3013), // Rule ID 354 //
4735 /* 3007 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
4736 /* 3010 */ // Combiner Rule #209: unmerge_dead_to_trunc; wip_match_opcode 'G_UNMERGE_VALUES'
4737 /* 3010 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner145),
4738 /* 3013 */ // Label 201: @3013
4739 /* 3013 */ GIM_Try, /*On fail goto*//*Label 202*/ GIMT_Encode4(3024), // Rule ID 355 //
4740 /* 3018 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
4741 /* 3021 */ // Combiner Rule #210: unmerge_zext_to_zext; wip_match_opcode 'G_UNMERGE_VALUES'
4742 /* 3021 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner146),
4743 /* 3024 */ // Label 202: @3024
4744 /* 3024 */ GIM_Reject,
4745 /* 3025 */ // Label 13: @3025
4746 /* 3025 */ GIM_Try, /*On fail goto*//*Label 203*/ GIMT_Encode4(3036), // Rule ID 351 //
4747 /* 3030 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
4748 /* 3033 */ // Combiner Rule #206: merge_unmerge; wip_match_opcode 'G_MERGE_VALUES'
4749 /* 3033 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner142),
4750 /* 3036 */ // Label 203: @3036
4751 /* 3036 */ GIM_Try, /*On fail goto*//*Label 204*/ GIMT_Encode4(3098),
4752 /* 3041 */ GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
4753 /* 3044 */ GIM_Try, /*On fail goto*//*Label 205*/ GIMT_Encode4(3065), // Rule ID 356 //
4754 /* 3049 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
4755 /* 3052 */ // MIs[0] root
4756 /* 3052 */ // No operand predicates
4757 /* 3052 */ // MIs[0] x
4758 /* 3052 */ // No operand predicates
4759 /* 3052 */ // MIs[0] undef
4760 /* 3052 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4761 /* 3056 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
4762 /* 3060 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4763 /* 3062 */ // Combiner Rule #211: merge_of_x_and_undef
4764 /* 3062 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner147),
4765 /* 3065 */ // Label 205: @3065
4766 /* 3065 */ GIM_Try, /*On fail goto*//*Label 206*/ GIMT_Encode4(3097), // Rule ID 357 //
4767 /* 3070 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
4768 /* 3073 */ // MIs[0] root
4769 /* 3073 */ // No operand predicates
4770 /* 3073 */ // MIs[0] x
4771 /* 3073 */ // No operand predicates
4772 /* 3073 */ // MIs[0] zero
4773 /* 3073 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4774 /* 3077 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4775 /* 3081 */ // MIs[1] Operand 1
4776 /* 3081 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
4777 /* 3092 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4778 /* 3094 */ // Combiner Rule #212: merge_of_x_and_zero
4779 /* 3094 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner148),
4780 /* 3097 */ // Label 206: @3097
4781 /* 3097 */ GIM_Reject,
4782 /* 3098 */ // Label 204: @3098
4783 /* 3098 */ GIM_Reject,
4784 /* 3099 */ // Label 14: @3099
4785 /* 3099 */ GIM_Try, /*On fail goto*//*Label 207*/ GIMT_Encode4(3110), // Rule ID 69 //
4786 /* 3104 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule67Enabled),
4787 /* 3107 */ // Combiner Rule #67: extract_all_elts_from_build_vector; wip_match_opcode 'G_BUILD_VECTOR'
4788 /* 3107 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
4789 /* 3110 */ // Label 207: @3110
4790 /* 3110 */ GIM_Try, /*On fail goto*//*Label 208*/ GIMT_Encode4(3121), // Rule ID 98 //
4791 /* 3115 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
4792 /* 3118 */ // Combiner Rule #79: propagate_undef_all_ops; wip_match_opcode 'G_BUILD_VECTOR'
4793 /* 3118 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
4794 /* 3121 */ // Label 208: @3121
4795 /* 3121 */ GIM_Try, /*On fail goto*//*Label 209*/ GIMT_Encode4(3132), // Rule ID 133 //
4796 /* 3126 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
4797 /* 3129 */ // Combiner Rule #95: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR'
4798 /* 3129 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
4799 /* 3132 */ // Label 209: @3132
4800 /* 3132 */ GIM_Try, /*On fail goto*//*Label 210*/ GIMT_Encode4(3146), // Rule ID 348 //
4801 /* 3137 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule203Enabled),
4802 /* 3140 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
4803 /* 3143 */ // MIs[0] dst
4804 /* 3143 */ // No operand predicates
4805 /* 3143 */ // MIs[0] unused
4806 /* 3143 */ // No operand predicates
4807 /* 3143 */ // Combiner Rule #203: combine_use_vector_truncate
4808 /* 3143 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner139),
4809 /* 3146 */ // Label 210: @3146
4810 /* 3146 */ GIM_Reject,
4811 /* 3147 */ // Label 15: @3147
4812 /* 3147 */ GIM_Try, /*On fail goto*//*Label 211*/ GIMT_Encode4(3158), // Rule ID 132 //
4813 /* 3152 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
4814 /* 3155 */ // Combiner Rule #95: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR_TRUNC'
4815 /* 3155 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
4816 /* 3158 */ // Label 211: @3158
4817 /* 3158 */ GIM_Reject,
4818 /* 3159 */ // Label 16: @3159
4819 /* 3159 */ GIM_Try, /*On fail goto*//*Label 212*/ GIMT_Encode4(3170), // Rule ID 341 //
4820 /* 3164 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule196Enabled),
4821 /* 3167 */ // Combiner Rule #196: combine_concat_vector; wip_match_opcode 'G_CONCAT_VECTORS'
4822 /* 3167 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132),
4823 /* 3170 */ // Label 212: @3170
4824 /* 3170 */ GIM_Reject,
4825 /* 3171 */ // Label 17: @3171
4826 /* 3171 */ GIM_Try, /*On fail goto*//*Label 213*/ GIMT_Encode4(3192), // Rule ID 125 //
4827 /* 3176 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
4828 /* 3179 */ // MIs[0] dst
4829 /* 3179 */ // No operand predicates
4830 /* 3179 */ // MIs[0] t
4831 /* 3179 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4832 /* 3183 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
4833 /* 3187 */ // MIs[1] ptr
4834 /* 3187 */ // No operand predicates
4835 /* 3187 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4836 /* 3189 */ // Combiner Rule #89: i2p_to_p2i
4837 /* 3189 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
4838 /* 3192 */ // Label 213: @3192
4839 /* 3192 */ GIM_Try, /*On fail goto*//*Label 214*/ GIMT_Encode4(3213), // Rule ID 90 //
4840 /* 3197 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
4841 /* 3200 */ // MIs[0] dst
4842 /* 3200 */ // No operand predicates
4843 /* 3200 */ // MIs[0] __unary_undef_to_undef_match_0.x
4844 /* 3200 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4845 /* 3204 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
4846 /* 3208 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4847 /* 3210 */ // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[3]]
4848 /* 3210 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
4849 /* 3213 */ // Label 214: @3213
4850 /* 3213 */ GIM_Reject,
4851 /* 3214 */ // Label 18: @3214
4852 /* 3214 */ GIM_Try, /*On fail goto*//*Label 215*/ GIMT_Encode4(3225), // Rule ID 124 //
4853 /* 3219 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
4854 /* 3222 */ // Combiner Rule #88: p2i_to_i2p; wip_match_opcode 'G_INTTOPTR'
4855 /* 3222 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
4856 /* 3225 */ // Label 215: @3225
4857 /* 3225 */ GIM_Try, /*On fail goto*//*Label 216*/ GIMT_Encode4(3246), // Rule ID 91 //
4858 /* 3230 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
4859 /* 3233 */ // MIs[0] dst
4860 /* 3233 */ // No operand predicates
4861 /* 3233 */ // MIs[0] __unary_undef_to_undef_match_0.x
4862 /* 3233 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4863 /* 3237 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
4864 /* 3241 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4865 /* 3243 */ // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[4]]
4866 /* 3243 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
4867 /* 3246 */ // Label 216: @3246
4868 /* 3246 */ GIM_Reject,
4869 /* 3247 */ // Label 19: @3247
4870 /* 3247 */ GIM_Try, /*On fail goto*//*Label 217*/ GIMT_Encode4(3268), // Rule ID 136 //
4871 /* 3252 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule98Enabled),
4872 /* 3255 */ // MIs[0] dst
4873 /* 3255 */ // No operand predicates
4874 /* 3255 */ // MIs[0] src1
4875 /* 3255 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4876 /* 3259 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
4877 /* 3263 */ // MIs[1] src0
4878 /* 3263 */ // No operand predicates
4879 /* 3263 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4880 /* 3265 */ // Combiner Rule #98: bitcast_bitcast_fold
4881 /* 3265 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
4882 /* 3268 */ // Label 217: @3268
4883 /* 3268 */ GIM_Try, /*On fail goto*//*Label 218*/ GIMT_Encode4(3289), // Rule ID 88 //
4884 /* 3273 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
4885 /* 3276 */ // MIs[0] dst
4886 /* 3276 */ // No operand predicates
4887 /* 3276 */ // MIs[0] __unary_undef_to_undef_match_0.x
4888 /* 3276 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4889 /* 3280 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
4890 /* 3284 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4891 /* 3286 */ // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[1]]
4892 /* 3286 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
4893 /* 3289 */ // Label 218: @3289
4894 /* 3289 */ GIM_Reject,
4895 /* 3290 */ // Label 20: @3290
4896 /* 3290 */ GIM_Try, /*On fail goto*//*Label 219*/ GIMT_Encode4(3319), // Rule ID 18 //
4897 /* 3295 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
4898 /* 3298 */ // MIs[0] dst
4899 /* 3298 */ // No operand predicates
4900 /* 3298 */ // MIs[0] src
4901 /* 3298 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4902 /* 3302 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREEZE),
4903 /* 3306 */ // MIs[1] __idempotent_prop_match_0.x
4904 /* 3306 */ // No operand predicates
4905 /* 3306 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4906 /* 3311 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4907 /* 3313 */ // Combiner Rule #18: idempotent_prop @ [__idempotent_prop_match_0[0]]
4908 /* 3313 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4909 /* 3318 */ GIR_EraseRootFromParent_Done,
4910 /* 3319 */ // Label 219: @3319
4911 /* 3319 */ GIM_Try, /*On fail goto*//*Label 220*/ GIMT_Encode4(3342), // Rule ID 43 //
4912 /* 3324 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
4913 /* 3327 */ // MIs[0] root
4914 /* 3327 */ // No operand predicates
4915 /* 3327 */ // MIs[0] src
4916 /* 3327 */ // No operand predicates
4917 /* 3327 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
4918 /* 3331 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4919 /* 3336 */ // Combiner Rule #41: freeze_of_non_undef_non_poison
4920 /* 3336 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4921 /* 3341 */ GIR_EraseRootFromParent_Done,
4922 /* 3342 */ // Label 220: @3342
4923 /* 3342 */ GIM_Try, /*On fail goto*//*Label 221*/ GIMT_Encode4(3353), // Rule ID 44 //
4924 /* 3347 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
4925 /* 3350 */ // MIs[0] dst
4926 /* 3350 */ // No operand predicates
4927 /* 3350 */ // MIs[0] src
4928 /* 3350 */ // No operand predicates
4929 /* 3350 */ // Combiner Rule #42: push_freeze_to_prevent_poison_from_propagating
4930 /* 3350 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
4931 /* 3353 */ // Label 221: @3353
4932 /* 3353 */ GIM_Reject,
4933 /* 3354 */ // Label 21: @3354
4934 /* 3354 */ GIM_Try, /*On fail goto*//*Label 222*/ GIMT_Encode4(3365), // Rule ID 70 //
4935 /* 3359 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
4936 /* 3362 */ // Combiner Rule #68: extending_loads; wip_match_opcode 'G_LOAD'
4937 /* 3362 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
4938 /* 3365 */ // Label 222: @3365
4939 /* 3365 */ GIM_Reject,
4940 /* 3366 */ // Label 22: @3366
4941 /* 3366 */ GIM_Try, /*On fail goto*//*Label 223*/ GIMT_Encode4(3377), // Rule ID 71 //
4942 /* 3371 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
4943 /* 3374 */ // Combiner Rule #68: extending_loads; wip_match_opcode 'G_SEXTLOAD'
4944 /* 3374 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
4945 /* 3377 */ // Label 223: @3377
4946 /* 3377 */ GIM_Reject,
4947 /* 3378 */ // Label 23: @3378
4948 /* 3378 */ GIM_Try, /*On fail goto*//*Label 224*/ GIMT_Encode4(3389), // Rule ID 72 //
4949 /* 3383 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
4950 /* 3386 */ // Combiner Rule #68: extending_loads; wip_match_opcode 'G_ZEXTLOAD'
4951 /* 3386 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
4952 /* 3389 */ // Label 224: @3389
4953 /* 3389 */ GIM_Reject,
4954 /* 3390 */ // Label 24: @3390
4955 /* 3390 */ GIM_Try, /*On fail goto*//*Label 225*/ GIMT_Encode4(3401), // Rule ID 100 //
4956 /* 3395 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
4957 /* 3398 */ // Combiner Rule #81: erase_undef_store; wip_match_opcode 'G_STORE'
4958 /* 3398 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner42),
4959 /* 3401 */ // Label 225: @3401
4960 /* 3401 */ GIM_Reject,
4961 /* 3402 */ // Label 25: @3402
4962 /* 3402 */ GIM_Try, /*On fail goto*//*Label 226*/ GIMT_Encode4(3413), // Rule ID 126 //
4963 /* 3407 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
4964 /* 3410 */ // Combiner Rule #90: anyext_trunc_fold; wip_match_opcode 'G_ANYEXT'
4965 /* 3410 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
4966 /* 3413 */ // Label 226: @3413
4967 /* 3413 */ GIM_Try, /*On fail goto*//*Label 227*/ GIMT_Encode4(3424), // Rule ID 257 //
4968 /* 3418 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
4969 /* 3421 */ // Combiner Rule #169: constant_fold_cast_op; wip_match_opcode 'G_ANYEXT'
4970 /* 3421 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
4971 /* 3424 */ // Label 227: @3424
4972 /* 3424 */ GIM_Try, /*On fail goto*//*Label 228*/ GIMT_Encode4(3445), // Rule ID 57 //
4973 /* 3429 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
4974 /* 3432 */ // MIs[0] root
4975 /* 3432 */ // No operand predicates
4976 /* 3432 */ // MIs[0] select
4977 /* 3432 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4978 /* 3436 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
4979 /* 3440 */ // MIs[1] cond
4980 /* 3440 */ // No operand predicates
4981 /* 3440 */ // MIs[1] true
4982 /* 3440 */ // No operand predicates
4983 /* 3440 */ // MIs[1] false
4984 /* 3440 */ // No operand predicates
4985 /* 3440 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4986 /* 3442 */ // Combiner Rule #55: select_of_anyext
4987 /* 3442 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
4988 /* 3445 */ // Label 228: @3445
4989 /* 3445 */ GIM_Try, /*On fail goto*//*Label 229*/ GIMT_Encode4(3466), // Rule ID 52 //
4990 /* 3450 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
4991 /* 3453 */ // MIs[0] root
4992 /* 3453 */ // No operand predicates
4993 /* 3453 */ // MIs[0] second
4994 /* 3453 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4995 /* 3457 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
4996 /* 3461 */ // MIs[1] src
4997 /* 3461 */ // No operand predicates
4998 /* 3461 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4999 /* 3463 */ // Combiner Rule #50: anyext_of_anyext
5000 /* 3463 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
5001 /* 3466 */ // Label 229: @3466
5002 /* 3466 */ GIM_Try, /*On fail goto*//*Label 230*/ GIMT_Encode4(3487), // Rule ID 54 //
5003 /* 3471 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
5004 /* 3474 */ // MIs[0] root
5005 /* 3474 */ // No operand predicates
5006 /* 3474 */ // MIs[0] second
5007 /* 3474 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5008 /* 3478 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
5009 /* 3482 */ // MIs[1] src
5010 /* 3482 */ // No operand predicates
5011 /* 3482 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5012 /* 3484 */ // Combiner Rule #52: anyext_of_sext
5013 /* 3484 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
5014 /* 3487 */ // Label 230: @3487
5015 /* 3487 */ GIM_Try, /*On fail goto*//*Label 231*/ GIMT_Encode4(3508), // Rule ID 53 //
5016 /* 3492 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
5017 /* 3495 */ // MIs[0] root
5018 /* 3495 */ // No operand predicates
5019 /* 3495 */ // MIs[0] second
5020 /* 3495 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5021 /* 3499 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
5022 /* 3503 */ // MIs[1] src
5023 /* 3503 */ // No operand predicates
5024 /* 3503 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5025 /* 3505 */ // Combiner Rule #51: anyext_of_zext
5026 /* 3505 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
5027 /* 3508 */ // Label 231: @3508
5028 /* 3508 */ GIM_Try, /*On fail goto*//*Label 232*/ GIMT_Encode4(3529), // Rule ID 89 //
5029 /* 3513 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
5030 /* 3516 */ // MIs[0] dst
5031 /* 3516 */ // No operand predicates
5032 /* 3516 */ // MIs[0] __unary_undef_to_undef_match_0.x
5033 /* 3516 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5034 /* 3520 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5035 /* 3524 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5036 /* 3526 */ // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[2]]
5037 /* 3526 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
5038 /* 3529 */ // Label 232: @3529
5039 /* 3529 */ GIM_Reject,
5040 /* 3530 */ // Label 26: @3530
5041 /* 3530 */ GIM_Try, /*On fail goto*//*Label 233*/ GIMT_Encode4(3541), // Rule ID 134 //
5042 /* 3535 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule96Enabled),
5043 /* 3538 */ // Combiner Rule #96: trunc_buildvector_fold; wip_match_opcode 'G_TRUNC'
5044 /* 3538 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner50),
5045 /* 3541 */ // Label 233: @3541
5046 /* 3541 */ GIM_Try, /*On fail goto*//*Label 234*/ GIMT_Encode4(3552), // Rule ID 135 //
5047 /* 3546 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled),
5048 /* 3549 */ // Combiner Rule #97: trunc_lshr_buildvector_fold; wip_match_opcode 'G_TRUNC'
5049 /* 3549 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
5050 /* 3552 */ // Label 234: @3552
5051 /* 3552 */ GIM_Try, /*On fail goto*//*Label 235*/ GIMT_Encode4(3563), // Rule ID 173 //
5052 /* 3557 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled),
5053 /* 3560 */ // Combiner Rule #131: trunc_shift; wip_match_opcode 'G_TRUNC'
5054 /* 3560 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
5055 /* 3563 */ // Label 235: @3563
5056 /* 3563 */ GIM_Try, /*On fail goto*//*Label 236*/ GIMT_Encode4(3574), // Rule ID 363 //
5057 /* 3568 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
5058 /* 3571 */ // Combiner Rule #216: clamp_i64_to_i16; wip_match_opcode 'G_TRUNC'
5059 /* 3571 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner152),
5060 /* 3574 */ // Label 236: @3574
5061 /* 3574 */ GIM_Try, /*On fail goto*//*Label 237*/ GIMT_Encode4(3595), // Rule ID 58 //
5062 /* 3579 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
5063 /* 3582 */ // MIs[0] root
5064 /* 3582 */ // No operand predicates
5065 /* 3582 */ // MIs[0] select
5066 /* 3582 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5067 /* 3586 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
5068 /* 3590 */ // MIs[1] cond
5069 /* 3590 */ // No operand predicates
5070 /* 3590 */ // MIs[1] true
5071 /* 3590 */ // No operand predicates
5072 /* 3590 */ // MIs[1] false
5073 /* 3590 */ // No operand predicates
5074 /* 3590 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5075 /* 3592 */ // Combiner Rule #56: select_of_truncate
5076 /* 3592 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
5077 /* 3595 */ // Label 237: @3595
5078 /* 3595 */ GIM_Try, /*On fail goto*//*Label 238*/ GIMT_Encode4(3624), // Rule ID 60 //
5079 /* 3600 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
5080 /* 3603 */ // MIs[0] root
5081 /* 3603 */ // No operand predicates
5082 /* 3603 */ // MIs[0] binop
5083 /* 3603 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5084 /* 3607 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5085 /* 3611 */ // MIs[1] x
5086 /* 3611 */ // No operand predicates
5087 /* 3611 */ // MIs[1] const
5088 /* 3611 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5089 /* 3615 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5090 /* 3619 */ // MIs[2] imm
5091 /* 3619 */ // No operand predicates
5092 /* 3619 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5093 /* 3621 */ // Combiner Rule #58: narrow_binop_add
5094 /* 3621 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
5095 /* 3624 */ // Label 238: @3624
5096 /* 3624 */ GIM_Try, /*On fail goto*//*Label 239*/ GIMT_Encode4(3653), // Rule ID 63 //
5097 /* 3629 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule61Enabled),
5098 /* 3632 */ // MIs[0] root
5099 /* 3632 */ // No operand predicates
5100 /* 3632 */ // MIs[0] binop
5101 /* 3632 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5102 /* 3636 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5103 /* 3640 */ // MIs[1] x
5104 /* 3640 */ // No operand predicates
5105 /* 3640 */ // MIs[1] const
5106 /* 3640 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5107 /* 3644 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5108 /* 3648 */ // MIs[2] imm
5109 /* 3648 */ // No operand predicates
5110 /* 3648 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5111 /* 3650 */ // Combiner Rule #61: narrow_binop_and
5112 /* 3650 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
5113 /* 3653 */ // Label 239: @3653
5114 /* 3653 */ GIM_Try, /*On fail goto*//*Label 240*/ GIMT_Encode4(3682), // Rule ID 62 //
5115 /* 3658 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled),
5116 /* 3661 */ // MIs[0] root
5117 /* 3661 */ // No operand predicates
5118 /* 3661 */ // MIs[0] binop
5119 /* 3661 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5120 /* 3665 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
5121 /* 3669 */ // MIs[1] x
5122 /* 3669 */ // No operand predicates
5123 /* 3669 */ // MIs[1] const
5124 /* 3669 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5125 /* 3673 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5126 /* 3677 */ // MIs[2] imm
5127 /* 3677 */ // No operand predicates
5128 /* 3677 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5129 /* 3679 */ // Combiner Rule #60: narrow_binop_mul
5130 /* 3679 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
5131 /* 3682 */ // Label 240: @3682
5132 /* 3682 */ GIM_Try, /*On fail goto*//*Label 241*/ GIMT_Encode4(3711), // Rule ID 64 //
5133 /* 3687 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled),
5134 /* 3690 */ // MIs[0] root
5135 /* 3690 */ // No operand predicates
5136 /* 3690 */ // MIs[0] binop
5137 /* 3690 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5138 /* 3694 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
5139 /* 3698 */ // MIs[1] x
5140 /* 3698 */ // No operand predicates
5141 /* 3698 */ // MIs[1] const
5142 /* 3698 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5143 /* 3702 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5144 /* 3706 */ // MIs[2] imm
5145 /* 3706 */ // No operand predicates
5146 /* 3706 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5147 /* 3708 */ // Combiner Rule #62: narrow_binop_or
5148 /* 3708 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
5149 /* 3711 */ // Label 241: @3711
5150 /* 3711 */ GIM_Try, /*On fail goto*//*Label 242*/ GIMT_Encode4(3740), // Rule ID 61 //
5151 /* 3716 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled),
5152 /* 3719 */ // MIs[0] root
5153 /* 3719 */ // No operand predicates
5154 /* 3719 */ // MIs[0] binop
5155 /* 3719 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5156 /* 3723 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5157 /* 3727 */ // MIs[1] x
5158 /* 3727 */ // No operand predicates
5159 /* 3727 */ // MIs[1] const
5160 /* 3727 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5161 /* 3731 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5162 /* 3735 */ // MIs[2] imm
5163 /* 3735 */ // No operand predicates
5164 /* 3735 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5165 /* 3737 */ // Combiner Rule #59: narrow_binop_sub
5166 /* 3737 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
5167 /* 3740 */ // Label 242: @3740
5168 /* 3740 */ GIM_Try, /*On fail goto*//*Label 243*/ GIMT_Encode4(3769), // Rule ID 65 //
5169 /* 3745 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled),
5170 /* 3748 */ // MIs[0] root
5171 /* 3748 */ // No operand predicates
5172 /* 3748 */ // MIs[0] binop
5173 /* 3748 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5174 /* 3752 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
5175 /* 3756 */ // MIs[1] x
5176 /* 3756 */ // No operand predicates
5177 /* 3756 */ // MIs[1] const
5178 /* 3756 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5179 /* 3760 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5180 /* 3764 */ // MIs[2] imm
5181 /* 3764 */ // No operand predicates
5182 /* 3764 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5183 /* 3766 */ // Combiner Rule #63: narrow_binop_xor
5184 /* 3766 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
5185 /* 3769 */ // Label 243: @3769
5186 /* 3769 */ GIM_Try, /*On fail goto*//*Label 244*/ GIMT_Encode4(3790), // Rule ID 47 //
5187 /* 3774 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
5188 /* 3777 */ // MIs[0] root
5189 /* 3777 */ // No operand predicates
5190 /* 3777 */ // MIs[0] ext
5191 /* 3777 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5192 /* 3781 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
5193 /* 3785 */ // MIs[1] src
5194 /* 3785 */ // No operand predicates
5195 /* 3785 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5196 /* 3787 */ // Combiner Rule #45: truncate_of_anyext
5197 /* 3787 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
5198 /* 3790 */ // Label 244: @3790
5199 /* 3790 */ GIM_Try, /*On fail goto*//*Label 245*/ GIMT_Encode4(3814), // Rule ID 59 //
5200 /* 3795 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
5201 /* 3798 */ // MIs[0] root
5202 /* 3798 */ // No operand predicates
5203 /* 3798 */ // MIs[0] bv
5204 /* 3798 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5205 /* 3802 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
5206 /* 3806 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
5207 /* 3809 */ // MIs[1] unused
5208 /* 3809 */ // No operand predicates
5209 /* 3809 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5210 /* 3811 */ // Combiner Rule #57: buildvector_of_truncate
5211 /* 3811 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
5212 /* 3814 */ // Label 245: @3814
5213 /* 3814 */ GIM_Try, /*On fail goto*//*Label 246*/ GIMT_Encode4(3835), // Rule ID 46 //
5214 /* 3819 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
5215 /* 3822 */ // MIs[0] root
5216 /* 3822 */ // No operand predicates
5217 /* 3822 */ // MIs[0] ext
5218 /* 3822 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5219 /* 3826 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
5220 /* 3830 */ // MIs[1] src
5221 /* 3830 */ // No operand predicates
5222 /* 3830 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5223 /* 3832 */ // Combiner Rule #44: truncate_of_sext
5224 /* 3832 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
5225 /* 3835 */ // Label 246: @3835
5226 /* 3835 */ GIM_Try, /*On fail goto*//*Label 247*/ GIMT_Encode4(3856), // Rule ID 45 //
5227 /* 3840 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
5228 /* 3843 */ // MIs[0] root
5229 /* 3843 */ // No operand predicates
5230 /* 3843 */ // MIs[0] ext
5231 /* 3843 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5232 /* 3847 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
5233 /* 3851 */ // MIs[1] src
5234 /* 3851 */ // No operand predicates
5235 /* 3851 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5236 /* 3853 */ // Combiner Rule #43: truncate_of_zext
5237 /* 3853 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
5238 /* 3856 */ // Label 247: @3856
5239 /* 3856 */ GIM_Try, /*On fail goto*//*Label 248*/ GIMT_Encode4(3877), // Rule ID 87 //
5240 /* 3861 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
5241 /* 3864 */ // MIs[0] dst
5242 /* 3864 */ // No operand predicates
5243 /* 3864 */ // MIs[0] __unary_undef_to_undef_match_0.x
5244 /* 3864 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5245 /* 3868 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5246 /* 3872 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5247 /* 3874 */ // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[0]]
5248 /* 3874 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
5249 /* 3877 */ // Label 248: @3877
5250 /* 3877 */ GIM_Try, /*On fail goto*//*Label 249*/ GIMT_Encode4(3898), // Rule ID 66 //
5251 /* 3882 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
5252 /* 3885 */ // MIs[0] root
5253 /* 3885 */ // No operand predicates
5254 /* 3885 */ // MIs[0] int
5255 /* 3885 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5256 /* 3889 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5257 /* 3893 */ // MIs[1] imm
5258 /* 3893 */ // No operand predicates
5259 /* 3893 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5260 /* 3895 */ // Combiner Rule #64: integer_of_truncate
5261 /* 3895 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner26),
5262 /* 3898 */ // Label 249: @3898
5263 /* 3898 */ GIM_Reject,
5264 /* 3899 */ // Label 27: @3899
5265 /* 3899 */ GIM_Try, /*On fail goto*//*Label 250*/ GIMT_Encode4(3910), // Rule ID 256 //
5266 /* 3904 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
5267 /* 3907 */ // Combiner Rule #169: constant_fold_cast_op; wip_match_opcode 'G_SEXT'
5268 /* 3907 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
5269 /* 3910 */ // Label 250: @3910
5270 /* 3910 */ GIM_Try, /*On fail goto*//*Label 251*/ GIMT_Encode4(3931), // Rule ID 51 //
5271 /* 3915 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
5272 /* 3918 */ // MIs[0] root
5273 /* 3918 */ // No operand predicates
5274 /* 3918 */ // MIs[0] second
5275 /* 3918 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5276 /* 3922 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
5277 /* 3926 */ // MIs[1] src
5278 /* 3926 */ // No operand predicates
5279 /* 3926 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5280 /* 3928 */ // Combiner Rule #49: sext_of_anyext
5281 /* 3928 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
5282 /* 3931 */ // Label 251: @3931
5283 /* 3931 */ GIM_Try, /*On fail goto*//*Label 252*/ GIMT_Encode4(3952), // Rule ID 50 //
5284 /* 3936 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
5285 /* 3939 */ // MIs[0] root
5286 /* 3939 */ // No operand predicates
5287 /* 3939 */ // MIs[0] second
5288 /* 3939 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5289 /* 3943 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
5290 /* 3947 */ // MIs[1] src
5291 /* 3947 */ // No operand predicates
5292 /* 3947 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5293 /* 3949 */ // Combiner Rule #48: sext_of_sext
5294 /* 3949 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
5295 /* 3952 */ // Label 252: @3952
5296 /* 3952 */ GIM_Try, /*On fail goto*//*Label 253*/ GIMT_Encode4(3973), // Rule ID 342 //
5297 /* 3957 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
5298 /* 3960 */ // MIs[0] root
5299 /* 3960 */ // No operand predicates
5300 /* 3960 */ // MIs[0] src
5301 /* 3960 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5302 /* 3964 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
5303 /* 3968 */ // MIs[1] x
5304 /* 3968 */ // No operand predicates
5305 /* 3968 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5306 /* 3970 */ // Combiner Rule #197: sext_trunc
5307 /* 3970 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
5308 /* 3973 */ // Label 253: @3973
5309 /* 3973 */ GIM_Reject,
5310 /* 3974 */ // Label 28: @3974
5311 /* 3974 */ GIM_Try, /*On fail goto*//*Label 254*/ GIMT_Encode4(3985), // Rule ID 160 //
5312 /* 3979 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
5313 /* 3982 */ // Combiner Rule #118: sext_inreg_of_load; wip_match_opcode 'G_SEXT_INREG'
5314 /* 3982 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner66),
5315 /* 3985 */ // Label 254: @3985
5316 /* 3985 */ GIM_Try, /*On fail goto*//*Label 255*/ GIMT_Encode4(3996), // Rule ID 168 //
5317 /* 3990 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
5318 /* 3993 */ // Combiner Rule #126: redundant_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
5319 /* 3993 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner73),
5320 /* 3996 */ // Label 255: @3996
5321 /* 3996 */ GIM_Try, /*On fail goto*//*Label 256*/ GIMT_Encode4(4007), // Rule ID 225 //
5322 /* 4001 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
5323 /* 4004 */ // Combiner Rule #162: bitfield_extract_from_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
5324 /* 4004 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner100),
5325 /* 4007 */ // Label 256: @4007
5326 /* 4007 */ GIM_Try, /*On fail goto*//*Label 257*/ GIMT_Encode4(4028), // Rule ID 55 //
5327 /* 4012 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
5328 /* 4015 */ // MIs[0] dst
5329 /* 4015 */ // No operand predicates
5330 /* 4015 */ // MIs[0] x
5331 /* 4015 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5332 /* 4019 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
5333 /* 4023 */ // MIs[1] src
5334 /* 4023 */ // No operand predicates
5335 /* 4023 */ // MIs[1] a
5336 /* 4023 */ // No operand predicates
5337 /* 4023 */ // MIs[0] b
5338 /* 4023 */ // No operand predicates
5339 /* 4023 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5340 /* 4025 */ // Combiner Rule #53: sext_inreg_of_sext_inreg
5341 /* 4025 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
5342 /* 4028 */ // Label 257: @4028
5343 /* 4028 */ GIM_Try, /*On fail goto*//*Label 258*/ GIMT_Encode4(4039), // Rule ID 172 //
5344 /* 4033 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule130Enabled),
5345 /* 4036 */ // MIs[0] dst
5346 /* 4036 */ // No operand predicates
5347 /* 4036 */ // MIs[0] src
5348 /* 4036 */ // No operand predicates
5349 /* 4036 */ // MIs[0] imm
5350 /* 4036 */ // No operand predicates
5351 /* 4036 */ // Combiner Rule #130: sext_inreg_to_zext_inreg
5352 /* 4036 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
5353 /* 4039 */ // Label 258: @4039
5354 /* 4039 */ GIM_Reject,
5355 /* 4040 */ // Label 29: @4040
5356 /* 4040 */ GIM_Try, /*On fail goto*//*Label 259*/ GIMT_Encode4(4051), // Rule ID 171 //
5357 /* 4045 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule129Enabled),
5358 /* 4048 */ // Combiner Rule #129: zext_trunc_fold; wip_match_opcode 'G_ZEXT'
5359 /* 4048 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76),
5360 /* 4051 */ // Label 259: @4051
5361 /* 4051 */ GIM_Try, /*On fail goto*//*Label 260*/ GIMT_Encode4(4062), // Rule ID 255 //
5362 /* 4056 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
5363 /* 4059 */ // Combiner Rule #169: constant_fold_cast_op; wip_match_opcode 'G_ZEXT'
5364 /* 4059 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
5365 /* 4062 */ // Label 260: @4062
5366 /* 4062 */ GIM_Try, /*On fail goto*//*Label 261*/ GIMT_Encode4(4083), // Rule ID 56 //
5367 /* 4067 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
5368 /* 4070 */ // MIs[0] root
5369 /* 4070 */ // No operand predicates
5370 /* 4070 */ // MIs[0] select
5371 /* 4070 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5372 /* 4074 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
5373 /* 4078 */ // MIs[1] cond
5374 /* 4078 */ // No operand predicates
5375 /* 4078 */ // MIs[1] true
5376 /* 4078 */ // No operand predicates
5377 /* 4078 */ // MIs[1] false
5378 /* 4078 */ // No operand predicates
5379 /* 4078 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5380 /* 4080 */ // Combiner Rule #54: select_of_zext
5381 /* 4080 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
5382 /* 4083 */ // Label 261: @4083
5383 /* 4083 */ GIM_Try, /*On fail goto*//*Label 262*/ GIMT_Encode4(4104), // Rule ID 49 //
5384 /* 4088 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
5385 /* 4091 */ // MIs[0] root
5386 /* 4091 */ // No operand predicates
5387 /* 4091 */ // MIs[0] second
5388 /* 4091 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5389 /* 4095 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
5390 /* 4099 */ // MIs[1] src
5391 /* 4099 */ // No operand predicates
5392 /* 4099 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5393 /* 4101 */ // Combiner Rule #47: zext_of_anyext
5394 /* 4101 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
5395 /* 4104 */ // Label 262: @4104
5396 /* 4104 */ GIM_Try, /*On fail goto*//*Label 263*/ GIMT_Encode4(4131), // Rule ID 343 //
5397 /* 4109 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
5398 /* 4112 */ // MIs[0] root
5399 /* 4112 */ // No operand predicates
5400 /* 4112 */ // MIs[0] src
5401 /* 4112 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5402 /* 4116 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
5403 /* 4120 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::NoUWrap),
5404 /* 4126 */ // MIs[1] x
5405 /* 4126 */ // No operand predicates
5406 /* 4126 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5407 /* 4128 */ // Combiner Rule #198: zext_trunc
5408 /* 4128 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner134),
5409 /* 4131 */ // Label 263: @4131
5410 /* 4131 */ GIM_Try, /*On fail goto*//*Label 264*/ GIMT_Encode4(4152), // Rule ID 48 //
5411 /* 4136 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
5412 /* 4139 */ // MIs[0] root
5413 /* 4139 */ // No operand predicates
5414 /* 4139 */ // MIs[0] second
5415 /* 4139 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5416 /* 4143 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
5417 /* 4147 */ // MIs[1] src
5418 /* 4147 */ // No operand predicates
5419 /* 4147 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5420 /* 4149 */ // Combiner Rule #46: zext_of_zext
5421 /* 4149 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
5422 /* 4152 */ // Label 264: @4152
5423 /* 4152 */ GIM_Try, /*On fail goto*//*Label 265*/ GIMT_Encode4(4169), // Rule ID 344 //
5424 /* 4157 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule199Enabled),
5425 /* 4160 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NonNeg),
5426 /* 4166 */ // MIs[0] root
5427 /* 4166 */ // No operand predicates
5428 /* 4166 */ // MIs[0] x
5429 /* 4166 */ // No operand predicates
5430 /* 4166 */ // Combiner Rule #199: nneg_zext
5431 /* 4166 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner135),
5432 /* 4169 */ // Label 265: @4169
5433 /* 4169 */ GIM_Reject,
5434 /* 4170 */ // Label 30: @4170
5435 /* 4170 */ GIM_Try, /*On fail goto*//*Label 266*/ GIMT_Encode4(4181), // Rule ID 80 //
5436 /* 4175 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
5437 /* 4178 */ // Combiner Rule #74: binop_left_undef_to_zero; wip_match_opcode 'G_SHL'
5438 /* 4178 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
5439 /* 4181 */ // Label 266: @4181
5440 /* 4181 */ GIM_Try, /*On fail goto*//*Label 267*/ GIMT_Encode4(4192), // Rule ID 83 //
5441 /* 4186 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
5442 /* 4189 */ // Combiner Rule #75: binop_right_undef_to_undef; wip_match_opcode 'G_SHL'
5443 /* 4189 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
5444 /* 4192 */ // Label 267: @4192
5445 /* 4192 */ GIM_Try, /*On fail goto*//*Label 268*/ GIMT_Encode4(4203), // Rule ID 116 //
5446 /* 4197 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
5447 /* 4200 */ // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_SHL'
5448 /* 4200 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
5449 /* 4203 */ // Label 268: @4203
5450 /* 4203 */ GIM_Try, /*On fail goto*//*Label 269*/ GIMT_Encode4(4214), // Rule ID 200 //
5451 /* 4208 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
5452 /* 4211 */ // Combiner Rule #150: shift_immed_chain; wip_match_opcode 'G_SHL'
5453 /* 4211 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
5454 /* 4214 */ // Label 269: @4214
5455 /* 4214 */ GIM_Try, /*On fail goto*//*Label 270*/ GIMT_Encode4(4225), // Rule ID 205 //
5456 /* 4219 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
5457 /* 4222 */ // Combiner Rule #151: shift_of_shifted_logic_chain; wip_match_opcode 'G_SHL'
5458 /* 4222 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
5459 /* 4225 */ // Label 270: @4225
5460 /* 4225 */ GIM_Try, /*On fail goto*//*Label 271*/ GIMT_Encode4(4236), // Rule ID 224 //
5461 /* 4230 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
5462 /* 4233 */ // Combiner Rule #161: commute_shift; wip_match_opcode 'G_SHL'
5463 /* 4233 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner99),
5464 /* 4236 */ // Label 271: @4236
5465 /* 4236 */ GIM_Try, /*On fail goto*//*Label 272*/ GIMT_Encode4(4247), // Rule ID 238 //
5466 /* 4241 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
5467 /* 4244 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_SHL'
5468 /* 4244 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
5469 /* 4247 */ // Label 272: @4247
5470 /* 4247 */ GIM_Try, /*On fail goto*//*Label 273*/ GIMT_Encode4(4258), // Rule ID 291 //
5471 /* 4252 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
5472 /* 4255 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SHL'
5473 /* 4255 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
5474 /* 4258 */ // Label 273: @4258
5475 /* 4258 */ GIM_Try, /*On fail goto*//*Label 274*/ GIMT_Encode4(4293), // Rule ID 41 //
5476 /* 4263 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
5477 /* 4266 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
5478 /* 4272 */ // MIs[0] root
5479 /* 4272 */ // No operand predicates
5480 /* 4272 */ // MIs[0] left
5481 /* 4272 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5482 /* 4276 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
5483 /* 4280 */ // MIs[1] imm
5484 /* 4280 */ // No operand predicates
5485 /* 4280 */ // MIs[0] x
5486 /* 4280 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5487 /* 4284 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5488 /* 4288 */ // MIs[2] imm1
5489 /* 4288 */ // No operand predicates
5490 /* 4288 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5491 /* 4290 */ // Combiner Rule #39: shl_of_vscale
5492 /* 4290 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
5493 /* 4293 */ // Label 274: @4293
5494 /* 4293 */ GIM_Try, /*On fail goto*//*Label 275*/ GIMT_Encode4(4316), // Rule ID 108 //
5495 /* 4298 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
5496 /* 4301 */ // MIs[0] dst
5497 /* 4301 */ // No operand predicates
5498 /* 4301 */ // MIs[0] lhs
5499 /* 4301 */ // No operand predicates
5500 /* 4301 */ // MIs[0] Operand 2
5501 /* 4301 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5502 /* 4305 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5503 /* 4310 */ // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[4]]
5504 /* 4310 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5505 /* 4315 */ GIR_EraseRootFromParent_Done,
5506 /* 4316 */ // Label 275: @4316
5507 /* 4316 */ GIM_Try, /*On fail goto*//*Label 276*/ GIMT_Encode4(4327), // Rule ID 145 //
5508 /* 4321 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
5509 /* 4324 */ // MIs[0] root
5510 /* 4324 */ // No operand predicates
5511 /* 4324 */ // MIs[0] mi.shifted
5512 /* 4324 */ // No operand predicates
5513 /* 4324 */ // MIs[0] mi.amt
5514 /* 4324 */ // No operand predicates
5515 /* 4324 */ // Combiner Rule #105: shifts_too_big @ [mi[0]]
5516 /* 4324 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
5517 /* 4327 */ // Label 276: @4327
5518 /* 4327 */ GIM_Try, /*On fail goto*//*Label 277*/ GIMT_Encode4(4338), // Rule ID 161 //
5519 /* 4332 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
5520 /* 4335 */ // MIs[0] dst
5521 /* 4335 */ // No operand predicates
5522 /* 4335 */ // MIs[0] src0
5523 /* 4335 */ // No operand predicates
5524 /* 4335 */ // MIs[0] src1
5525 /* 4335 */ // No operand predicates
5526 /* 4335 */ // Combiner Rule #119: reduce_shl_of_extend
5527 /* 4335 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner67),
5528 /* 4338 */ // Label 277: @4338
5529 /* 4338 */ GIM_Reject,
5530 /* 4339 */ // Label 31: @4339
5531 /* 4339 */ GIM_Try, /*On fail goto*//*Label 278*/ GIMT_Encode4(4350), // Rule ID 85 //
5532 /* 4344 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
5533 /* 4347 */ // Combiner Rule #75: binop_right_undef_to_undef; wip_match_opcode 'G_LSHR'
5534 /* 4347 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
5535 /* 4350 */ // Label 278: @4350
5536 /* 4350 */ GIM_Try, /*On fail goto*//*Label 279*/ GIMT_Encode4(4361), // Rule ID 117 //
5537 /* 4355 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
5538 /* 4358 */ // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_LSHR'
5539 /* 4358 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
5540 /* 4361 */ // Label 279: @4361
5541 /* 4361 */ GIM_Try, /*On fail goto*//*Label 280*/ GIMT_Encode4(4372), // Rule ID 202 //
5542 /* 4366 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
5543 /* 4369 */ // Combiner Rule #150: shift_immed_chain; wip_match_opcode 'G_LSHR'
5544 /* 4369 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
5545 /* 4372 */ // Label 280: @4372
5546 /* 4372 */ GIM_Try, /*On fail goto*//*Label 281*/ GIMT_Encode4(4383), // Rule ID 207 //
5547 /* 4377 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
5548 /* 4380 */ // Combiner Rule #151: shift_of_shifted_logic_chain; wip_match_opcode 'G_LSHR'
5549 /* 4380 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
5550 /* 4383 */ // Label 281: @4383
5551 /* 4383 */ GIM_Try, /*On fail goto*//*Label 282*/ GIMT_Encode4(4394), // Rule ID 228 //
5552 /* 4388 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
5553 /* 4391 */ // Combiner Rule #164: bitfield_extract_from_shr; wip_match_opcode 'G_LSHR'
5554 /* 4391 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
5555 /* 4394 */ // Label 282: @4394
5556 /* 4394 */ GIM_Try, /*On fail goto*//*Label 283*/ GIMT_Encode4(4405), // Rule ID 230 //
5557 /* 4399 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
5558 /* 4402 */ // Combiner Rule #165: bitfield_extract_from_shr_and; wip_match_opcode 'G_LSHR'
5559 /* 4402 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5560 /* 4405 */ // Label 283: @4405
5561 /* 4405 */ GIM_Try, /*On fail goto*//*Label 284*/ GIMT_Encode4(4416), // Rule ID 235 //
5562 /* 4410 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
5563 /* 4413 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_LSHR'
5564 /* 4413 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
5565 /* 4416 */ // Label 284: @4416
5566 /* 4416 */ GIM_Try, /*On fail goto*//*Label 285*/ GIMT_Encode4(4427), // Rule ID 289 //
5567 /* 4421 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
5568 /* 4424 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_LSHR'
5569 /* 4424 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
5570 /* 4427 */ // Label 285: @4427
5571 /* 4427 */ GIM_Try, /*On fail goto*//*Label 286*/ GIMT_Encode4(4450), // Rule ID 110 //
5572 /* 4432 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
5573 /* 4435 */ // MIs[0] dst
5574 /* 4435 */ // No operand predicates
5575 /* 4435 */ // MIs[0] lhs
5576 /* 4435 */ // No operand predicates
5577 /* 4435 */ // MIs[0] Operand 2
5578 /* 4435 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5579 /* 4439 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5580 /* 4444 */ // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[6]]
5581 /* 4444 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5582 /* 4449 */ GIR_EraseRootFromParent_Done,
5583 /* 4450 */ // Label 286: @4450
5584 /* 4450 */ GIM_Try, /*On fail goto*//*Label 287*/ GIMT_Encode4(4461), // Rule ID 147 //
5585 /* 4455 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
5586 /* 4458 */ // MIs[0] root
5587 /* 4458 */ // No operand predicates
5588 /* 4458 */ // MIs[0] mi.shifted
5589 /* 4458 */ // No operand predicates
5590 /* 4458 */ // MIs[0] mi.amt
5591 /* 4458 */ // No operand predicates
5592 /* 4458 */ // Combiner Rule #105: shifts_too_big @ [mi[2]]
5593 /* 4458 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
5594 /* 4461 */ // Label 287: @4461
5595 /* 4461 */ GIM_Reject,
5596 /* 4462 */ // Label 32: @4462
5597 /* 4462 */ GIM_Try, /*On fail goto*//*Label 288*/ GIMT_Encode4(4473), // Rule ID 84 //
5598 /* 4467 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
5599 /* 4470 */ // Combiner Rule #75: binop_right_undef_to_undef; wip_match_opcode 'G_ASHR'
5600 /* 4470 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
5601 /* 4473 */ // Label 288: @4473
5602 /* 4473 */ GIM_Try, /*On fail goto*//*Label 289*/ GIMT_Encode4(4484), // Rule ID 118 //
5603 /* 4478 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
5604 /* 4481 */ // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_ASHR'
5605 /* 4481 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
5606 /* 4484 */ // Label 289: @4484
5607 /* 4484 */ GIM_Try, /*On fail goto*//*Label 290*/ GIMT_Encode4(4495), // Rule ID 158 //
5608 /* 4489 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule116Enabled),
5609 /* 4492 */ // Combiner Rule #116: shl_ashr_to_sext_inreg; wip_match_opcode 'G_ASHR'
5610 /* 4492 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner65),
5611 /* 4495 */ // Label 290: @4495
5612 /* 4495 */ GIM_Try, /*On fail goto*//*Label 291*/ GIMT_Encode4(4506), // Rule ID 201 //
5613 /* 4500 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
5614 /* 4503 */ // Combiner Rule #150: shift_immed_chain; wip_match_opcode 'G_ASHR'
5615 /* 4503 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
5616 /* 4506 */ // Label 291: @4506
5617 /* 4506 */ GIM_Try, /*On fail goto*//*Label 292*/ GIMT_Encode4(4517), // Rule ID 206 //
5618 /* 4511 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
5619 /* 4514 */ // Combiner Rule #151: shift_of_shifted_logic_chain; wip_match_opcode 'G_ASHR'
5620 /* 4514 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
5621 /* 4517 */ // Label 292: @4517
5622 /* 4517 */ GIM_Try, /*On fail goto*//*Label 293*/ GIMT_Encode4(4528), // Rule ID 227 //
5623 /* 4522 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
5624 /* 4525 */ // Combiner Rule #164: bitfield_extract_from_shr; wip_match_opcode 'G_ASHR'
5625 /* 4525 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
5626 /* 4528 */ // Label 293: @4528
5627 /* 4528 */ GIM_Try, /*On fail goto*//*Label 294*/ GIMT_Encode4(4539), // Rule ID 229 //
5628 /* 4533 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
5629 /* 4536 */ // Combiner Rule #165: bitfield_extract_from_shr_and; wip_match_opcode 'G_ASHR'
5630 /* 4536 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5631 /* 4539 */ // Label 294: @4539
5632 /* 4539 */ GIM_Try, /*On fail goto*//*Label 295*/ GIMT_Encode4(4550), // Rule ID 234 //
5633 /* 4544 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
5634 /* 4547 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_ASHR'
5635 /* 4547 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
5636 /* 4550 */ // Label 295: @4550
5637 /* 4550 */ GIM_Try, /*On fail goto*//*Label 296*/ GIMT_Encode4(4561), // Rule ID 290 //
5638 /* 4555 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
5639 /* 4558 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_ASHR'
5640 /* 4558 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
5641 /* 4561 */ // Label 296: @4561
5642 /* 4561 */ GIM_Try, /*On fail goto*//*Label 297*/ GIMT_Encode4(4584), // Rule ID 109 //
5643 /* 4566 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
5644 /* 4569 */ // MIs[0] dst
5645 /* 4569 */ // No operand predicates
5646 /* 4569 */ // MIs[0] lhs
5647 /* 4569 */ // No operand predicates
5648 /* 4569 */ // MIs[0] Operand 2
5649 /* 4569 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5650 /* 4573 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5651 /* 4578 */ // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[5]]
5652 /* 4578 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5653 /* 4583 */ GIR_EraseRootFromParent_Done,
5654 /* 4584 */ // Label 297: @4584
5655 /* 4584 */ GIM_Try, /*On fail goto*//*Label 298*/ GIMT_Encode4(4595), // Rule ID 146 //
5656 /* 4589 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
5657 /* 4592 */ // MIs[0] root
5658 /* 4592 */ // No operand predicates
5659 /* 4592 */ // MIs[0] mi.shifted
5660 /* 4592 */ // No operand predicates
5661 /* 4592 */ // MIs[0] mi.amt
5662 /* 4592 */ // No operand predicates
5663 /* 4592 */ // Combiner Rule #105: shifts_too_big @ [mi[1]]
5664 /* 4592 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
5665 /* 4595 */ // Label 298: @4595
5666 /* 4595 */ GIM_Reject,
5667 /* 4596 */ // Label 33: @4596
5668 /* 4596 */ GIM_Try, /*On fail goto*//*Label 299*/ GIMT_Encode4(4607), // Rule ID 216 //
5669 /* 4601 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
5670 /* 4604 */ // Combiner Rule #155: funnel_shift_to_rotate; wip_match_opcode 'G_FSHL'
5671 /* 4604 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
5672 /* 4607 */ // Label 299: @4607
5673 /* 4607 */ GIM_Try, /*On fail goto*//*Label 300*/ GIMT_Encode4(4618), // Rule ID 220 //
5674 /* 4612 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
5675 /* 4615 */ // Combiner Rule #158: funnel_shift_overshift; wip_match_opcode 'G_FSHL'
5676 /* 4615 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
5677 /* 4618 */ // Label 300: @4618
5678 /* 4618 */ GIM_Try, /*On fail goto*//*Label 301*/ GIMT_Encode4(4638), // Rule ID 219 //
5679 /* 4623 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
5680 /* 4626 */ // MIs[0] x
5681 /* 4626 */ // No operand predicates
5682 /* 4626 */ // MIs[0] y
5683 /* 4626 */ // No operand predicates
5684 /* 4626 */ // MIs[0] z
5685 /* 4626 */ // No operand predicates
5686 /* 4626 */ // MIs[0] Operand 3
5687 /* 4626 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
5688 /* 4630 */ // Combiner Rule #157: funnel_shift_left_zero
5689 /* 4630 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5690 /* 4633 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
5691 /* 4635 */ GIR_RootToRootCopy, /*OpIdx*/1, // y
5692 /* 4637 */ GIR_EraseRootFromParent_Done,
5693 /* 4638 */ // Label 301: @4638
5694 /* 4638 */ GIM_Reject,
5695 /* 4639 */ // Label 34: @4639
5696 /* 4639 */ GIM_Try, /*On fail goto*//*Label 302*/ GIMT_Encode4(4650), // Rule ID 217 //
5697 /* 4644 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
5698 /* 4647 */ // Combiner Rule #155: funnel_shift_to_rotate; wip_match_opcode 'G_FSHR'
5699 /* 4647 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
5700 /* 4650 */ // Label 302: @4650
5701 /* 4650 */ GIM_Try, /*On fail goto*//*Label 303*/ GIMT_Encode4(4661), // Rule ID 221 //
5702 /* 4655 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
5703 /* 4658 */ // Combiner Rule #158: funnel_shift_overshift; wip_match_opcode 'G_FSHR'
5704 /* 4658 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
5705 /* 4661 */ // Label 303: @4661
5706 /* 4661 */ GIM_Try, /*On fail goto*//*Label 304*/ GIMT_Encode4(4681), // Rule ID 218 //
5707 /* 4666 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
5708 /* 4669 */ // MIs[0] x
5709 /* 4669 */ // No operand predicates
5710 /* 4669 */ // MIs[0] y
5711 /* 4669 */ // No operand predicates
5712 /* 4669 */ // MIs[0] z
5713 /* 4669 */ // No operand predicates
5714 /* 4669 */ // MIs[0] Operand 3
5715 /* 4669 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
5716 /* 4673 */ // Combiner Rule #156: funnel_shift_right_zero
5717 /* 4673 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5718 /* 4676 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
5719 /* 4678 */ GIR_RootToRootCopy, /*OpIdx*/2, // z
5720 /* 4680 */ GIR_EraseRootFromParent_Done,
5721 /* 4681 */ // Label 304: @4681
5722 /* 4681 */ GIM_Reject,
5723 /* 4682 */ // Label 35: @4682
5724 /* 4682 */ GIM_Try, /*On fail goto*//*Label 305*/ GIMT_Encode4(4705), // Rule ID 113 //
5725 /* 4687 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
5726 /* 4690 */ // MIs[0] dst
5727 /* 4690 */ // No operand predicates
5728 /* 4690 */ // MIs[0] lhs
5729 /* 4690 */ // No operand predicates
5730 /* 4690 */ // MIs[0] Operand 2
5731 /* 4690 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5732 /* 4694 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5733 /* 4699 */ // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[9]]
5734 /* 4699 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5735 /* 4704 */ GIR_EraseRootFromParent_Done,
5736 /* 4705 */ // Label 305: @4705
5737 /* 4705 */ GIM_Reject,
5738 /* 4706 */ // Label 36: @4706
5739 /* 4706 */ GIM_Try, /*On fail goto*//*Label 306*/ GIMT_Encode4(4729), // Rule ID 112 //
5740 /* 4711 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
5741 /* 4714 */ // MIs[0] dst
5742 /* 4714 */ // No operand predicates
5743 /* 4714 */ // MIs[0] lhs
5744 /* 4714 */ // No operand predicates
5745 /* 4714 */ // MIs[0] Operand 2
5746 /* 4714 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5747 /* 4718 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5748 /* 4723 */ // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[8]]
5749 /* 4723 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5750 /* 4728 */ GIR_EraseRootFromParent_Done,
5751 /* 4729 */ // Label 306: @4729
5752 /* 4729 */ GIM_Reject,
5753 /* 4730 */ // Label 37: @4730
5754 /* 4730 */ GIM_Try, /*On fail goto*//*Label 307*/ GIMT_Encode4(4741), // Rule ID 153 //
5755 /* 4735 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
5756 /* 4738 */ // Combiner Rule #111: icmp_to_true_false_known_bits; wip_match_opcode 'G_ICMP'
5757 /* 4738 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner62),
5758 /* 4741 */ // Label 307: @4741
5759 /* 4741 */ GIM_Try, /*On fail goto*//*Label 308*/ GIMT_Encode4(4752), // Rule ID 154 //
5760 /* 4746 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
5761 /* 4749 */ // Combiner Rule #112: icmp_to_lhs_known_bits; wip_match_opcode 'G_ICMP'
5762 /* 4749 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
5763 /* 4752 */ // Label 308: @4752
5764 /* 4752 */ GIM_Try, /*On fail goto*//*Label 309*/ GIMT_Encode4(4763), // Rule ID 157 //
5765 /* 4757 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule115Enabled),
5766 /* 4760 */ // Combiner Rule #115: redundant_binop_in_equality; wip_match_opcode 'G_ICMP'
5767 /* 4760 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner64),
5768 /* 4763 */ // Label 309: @4763
5769 /* 4763 */ GIM_Try, /*On fail goto*//*Label 310*/ GIMT_Encode4(4774), // Rule ID 151 //
5770 /* 4768 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule109Enabled),
5771 /* 4771 */ // MIs[0] root
5772 /* 4771 */ // No operand predicates
5773 /* 4771 */ // MIs[0] pred
5774 /* 4771 */ // No operand predicates
5775 /* 4771 */ // MIs[0] lhs
5776 /* 4771 */ // No operand predicates
5777 /* 4771 */ // MIs[0] rhs
5778 /* 4771 */ // No operand predicates
5779 /* 4771 */ // Combiner Rule #109: canonicalize_icmp
5780 /* 4771 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner60),
5781 /* 4774 */ // Label 310: @4774
5782 /* 4774 */ GIM_Reject,
5783 /* 4775 */ // Label 38: @4775
5784 /* 4775 */ GIM_Try, /*On fail goto*//*Label 311*/ GIMT_Encode4(4786), // Rule ID 152 //
5785 /* 4780 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled),
5786 /* 4783 */ // MIs[0] root
5787 /* 4783 */ // No operand predicates
5788 /* 4783 */ // MIs[0] pred
5789 /* 4783 */ // No operand predicates
5790 /* 4783 */ // MIs[0] lhs
5791 /* 4783 */ // No operand predicates
5792 /* 4783 */ // MIs[0] rhs
5793 /* 4783 */ // No operand predicates
5794 /* 4783 */ // Combiner Rule #110: canonicalize_fcmp
5795 /* 4783 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner61),
5796 /* 4786 */ // Label 311: @4786
5797 /* 4786 */ GIM_Reject,
5798 /* 4787 */ // Label 39: @4787
5799 /* 4787 */ GIM_Try, /*On fail goto*//*Label 312*/ GIMT_Encode4(4798), // Rule ID 103 //
5800 /* 4792 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5801 /* 4795 */ // Combiner Rule #83: select_same_val; wip_match_opcode 'G_SELECT'
5802 /* 4795 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner44),
5803 /* 4798 */ // Label 312: @4798
5804 /* 4798 */ GIM_Try, /*On fail goto*//*Label 313*/ GIMT_Encode4(4809), // Rule ID 164 //
5805 /* 4803 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule122Enabled),
5806 /* 4806 */ // Combiner Rule #122: select_constant_cmp; wip_match_opcode 'G_SELECT'
5807 /* 4806 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
5808 /* 4809 */ // Label 313: @4809
5809 /* 4809 */ GIM_Try, /*On fail goto*//*Label 314*/ GIMT_Encode4(4820), // Rule ID 166 //
5810 /* 4814 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule124Enabled),
5811 /* 4817 */ // Combiner Rule #124: match_selects; wip_match_opcode 'G_SELECT'
5812 /* 4817 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner71),
5813 /* 4820 */ // Label 314: @4820
5814 /* 4820 */ GIM_Try, /*On fail goto*//*Label 315*/ GIMT_Encode4(4831), // Rule ID 307 //
5815 /* 4825 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule189Enabled),
5816 /* 4828 */ // Combiner Rule #189: select_to_minmax; wip_match_opcode 'G_SELECT'
5817 /* 4828 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner125),
5818 /* 4831 */ // Label 315: @4831
5819 /* 4831 */ GIM_Try, /*On fail goto*//*Label 316*/ GIMT_Encode4(4852), // Rule ID 165 //
5820 /* 4836 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule123Enabled),
5821 /* 4839 */ // MIs[0] root
5822 /* 4839 */ // No operand predicates
5823 /* 4839 */ // MIs[0] tst
5824 /* 4839 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5825 /* 4843 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
5826 /* 4847 */ // MIs[1] tst1
5827 /* 4847 */ // No operand predicates
5828 /* 4847 */ // MIs[1] a
5829 /* 4847 */ // No operand predicates
5830 /* 4847 */ // MIs[1] b
5831 /* 4847 */ // No operand predicates
5832 /* 4847 */ // MIs[0] x
5833 /* 4847 */ // No operand predicates
5834 /* 4847 */ // MIs[0] y
5835 /* 4847 */ // No operand predicates
5836 /* 4847 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5837 /* 4849 */ // Combiner Rule #123: select_to_iminmax
5838 /* 4849 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
5839 /* 4852 */ // Label 316: @4852
5840 /* 4852 */ GIM_Try, /*On fail goto*//*Label 317*/ GIMT_Encode4(4881), // Rule ID 163 //
5841 /* 4857 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
5842 /* 4860 */ // MIs[0] dst
5843 /* 4860 */ // No operand predicates
5844 /* 4860 */ // MIs[0] undef
5845 /* 4860 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5846 /* 4864 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5847 /* 4868 */ // MIs[0] x
5848 /* 4868 */ // No operand predicates
5849 /* 4868 */ // MIs[0] y
5850 /* 4868 */ // No operand predicates
5851 /* 4868 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
5852 /* 4873 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5853 /* 4875 */ // Combiner Rule #121: select_undef_cmp
5854 /* 4875 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
5855 /* 4880 */ GIR_EraseRootFromParent_Done,
5856 /* 4881 */ // Label 317: @4881
5857 /* 4881 */ GIM_Reject,
5858 /* 4882 */ // Label 40: @4882
5859 /* 4882 */ GIM_Try, /*On fail goto*//*Label 318*/ GIMT_Encode4(4893), // Rule ID 318 //
5860 /* 4887 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
5861 /* 4890 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDO'
5862 /* 4890 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5863 /* 4893 */ // Label 318: @4893
5864 /* 4893 */ GIM_Try, /*On fail goto*//*Label 319*/ GIMT_Encode4(4904), // Rule ID 359 //
5865 /* 4898 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
5866 /* 4901 */ // Combiner Rule #213: match_addos; wip_match_opcode 'G_UADDO'
5867 /* 4901 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner149),
5868 /* 4904 */ // Label 319: @4904
5869 /* 4904 */ GIM_Reject,
5870 /* 4905 */ // Label 41: @4905
5871 /* 4905 */ GIM_Try, /*On fail goto*//*Label 320*/ GIMT_Encode4(4916), // Rule ID 189 //
5872 /* 4910 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
5873 /* 4913 */ // Combiner Rule #145: adde_to_addo; wip_match_opcode 'G_UADDE'
5874 /* 4913 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
5875 /* 4916 */ // Label 320: @4916
5876 /* 4916 */ GIM_Reject,
5877 /* 4917 */ // Label 42: @4917
5878 /* 4917 */ GIM_Try, /*On fail goto*//*Label 321*/ GIMT_Encode4(4928), // Rule ID 361 //
5879 /* 4922 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
5880 /* 4925 */ // Combiner Rule #214: match_subo_no_overflow; wip_match_opcode 'G_USUBO'
5881 /* 4925 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner150),
5882 /* 4928 */ // Label 321: @4928
5883 /* 4928 */ GIM_Reject,
5884 /* 4929 */ // Label 43: @4929
5885 /* 4929 */ GIM_Try, /*On fail goto*//*Label 322*/ GIMT_Encode4(4940), // Rule ID 191 //
5886 /* 4934 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
5887 /* 4937 */ // Combiner Rule #145: adde_to_addo; wip_match_opcode 'G_USUBE'
5888 /* 4937 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
5889 /* 4940 */ // Label 322: @4940
5890 /* 4940 */ GIM_Reject,
5891 /* 4941 */ // Label 44: @4941
5892 /* 4941 */ GIM_Try, /*On fail goto*//*Label 323*/ GIMT_Encode4(4952), // Rule ID 319 //
5893 /* 4946 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
5894 /* 4949 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDO'
5895 /* 4949 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5896 /* 4952 */ // Label 323: @4952
5897 /* 4952 */ GIM_Try, /*On fail goto*//*Label 324*/ GIMT_Encode4(4963), // Rule ID 358 //
5898 /* 4957 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
5899 /* 4960 */ // Combiner Rule #213: match_addos; wip_match_opcode 'G_SADDO'
5900 /* 4960 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner149),
5901 /* 4963 */ // Label 324: @4963
5902 /* 4963 */ GIM_Reject,
5903 /* 4964 */ // Label 45: @4964
5904 /* 4964 */ GIM_Try, /*On fail goto*//*Label 325*/ GIMT_Encode4(4975), // Rule ID 190 //
5905 /* 4969 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
5906 /* 4972 */ // Combiner Rule #145: adde_to_addo; wip_match_opcode 'G_SADDE'
5907 /* 4972 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
5908 /* 4975 */ // Label 325: @4975
5909 /* 4975 */ GIM_Reject,
5910 /* 4976 */ // Label 46: @4976
5911 /* 4976 */ GIM_Try, /*On fail goto*//*Label 326*/ GIMT_Encode4(4987), // Rule ID 360 //
5912 /* 4981 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
5913 /* 4984 */ // Combiner Rule #214: match_subo_no_overflow; wip_match_opcode 'G_SSUBO'
5914 /* 4984 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner150),
5915 /* 4987 */ // Label 326: @4987
5916 /* 4987 */ GIM_Reject,
5917 /* 4988 */ // Label 47: @4988
5918 /* 4988 */ GIM_Try, /*On fail goto*//*Label 327*/ GIMT_Encode4(4999), // Rule ID 192 //
5919 /* 4993 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
5920 /* 4996 */ // Combiner Rule #145: adde_to_addo; wip_match_opcode 'G_SSUBE'
5921 /* 4996 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
5922 /* 4999 */ // Label 327: @4999
5923 /* 4999 */ GIM_Reject,
5924 /* 5000 */ // Label 48: @5000
5925 /* 5000 */ GIM_Try, /*On fail goto*//*Label 328*/ GIMT_Encode4(5011), // Rule ID 185 //
5926 /* 5005 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule143Enabled),
5927 /* 5008 */ // Combiner Rule #143: mulo_by_2; wip_match_opcode 'G_UMULO'
5928 /* 5008 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
5929 /* 5011 */ // Label 328: @5011
5930 /* 5011 */ GIM_Try, /*On fail goto*//*Label 329*/ GIMT_Encode4(5022), // Rule ID 187 //
5931 /* 5016 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule144Enabled),
5932 /* 5019 */ // Combiner Rule #144: mulo_by_0; wip_match_opcode 'G_UMULO'
5933 /* 5019 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
5934 /* 5022 */ // Label 329: @5022
5935 /* 5022 */ GIM_Try, /*On fail goto*//*Label 330*/ GIMT_Encode4(5033), // Rule ID 320 //
5936 /* 5027 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
5937 /* 5030 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULO'
5938 /* 5030 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5939 /* 5033 */ // Label 330: @5033
5940 /* 5033 */ GIM_Reject,
5941 /* 5034 */ // Label 49: @5034
5942 /* 5034 */ GIM_Try, /*On fail goto*//*Label 331*/ GIMT_Encode4(5045), // Rule ID 186 //
5943 /* 5039 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule143Enabled),
5944 /* 5042 */ // Combiner Rule #143: mulo_by_2; wip_match_opcode 'G_SMULO'
5945 /* 5042 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
5946 /* 5045 */ // Label 331: @5045
5947 /* 5045 */ GIM_Try, /*On fail goto*//*Label 332*/ GIMT_Encode4(5056), // Rule ID 188 //
5948 /* 5050 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule144Enabled),
5949 /* 5053 */ // Combiner Rule #144: mulo_by_0; wip_match_opcode 'G_SMULO'
5950 /* 5053 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
5951 /* 5056 */ // Label 332: @5056
5952 /* 5056 */ GIM_Try, /*On fail goto*//*Label 333*/ GIMT_Encode4(5067), // Rule ID 321 //
5953 /* 5061 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
5954 /* 5064 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULO'
5955 /* 5064 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5956 /* 5067 */ // Label 333: @5067
5957 /* 5067 */ GIM_Reject,
5958 /* 5068 */ // Label 50: @5068
5959 /* 5068 */ GIM_Try, /*On fail goto*//*Label 334*/ GIMT_Encode4(5079), // Rule ID 263 //
5960 /* 5073 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
5961 /* 5076 */ // Combiner Rule #175: mulh_to_lshr; wip_match_opcode 'G_UMULH'
5962 /* 5076 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner112),
5963 /* 5079 */ // Label 334: @5079
5964 /* 5079 */ GIM_Try, /*On fail goto*//*Label 335*/ GIMT_Encode4(5090), // Rule ID 322 //
5965 /* 5084 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
5966 /* 5087 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULH'
5967 /* 5087 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5968 /* 5090 */ // Label 335: @5090
5969 /* 5090 */ GIM_Reject,
5970 /* 5091 */ // Label 51: @5091
5971 /* 5091 */ GIM_Try, /*On fail goto*//*Label 336*/ GIMT_Encode4(5102), // Rule ID 323 //
5972 /* 5096 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
5973 /* 5099 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULH'
5974 /* 5099 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5975 /* 5102 */ // Label 336: @5102
5976 /* 5102 */ GIM_Reject,
5977 /* 5103 */ // Label 52: @5103
5978 /* 5103 */ GIM_Try, /*On fail goto*//*Label 337*/ GIMT_Encode4(5114), // Rule ID 324 //
5979 /* 5108 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
5980 /* 5111 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDSAT'
5981 /* 5111 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5982 /* 5114 */ // Label 337: @5114
5983 /* 5114 */ GIM_Reject,
5984 /* 5115 */ // Label 53: @5115
5985 /* 5115 */ GIM_Try, /*On fail goto*//*Label 338*/ GIMT_Encode4(5126), // Rule ID 325 //
5986 /* 5120 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
5987 /* 5123 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDSAT'
5988 /* 5123 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5989 /* 5126 */ // Label 338: @5126
5990 /* 5126 */ GIM_Reject,
5991 /* 5127 */ // Label 54: @5127
5992 /* 5127 */ GIM_Try, /*On fail goto*//*Label 339*/ GIMT_Encode4(5138), // Rule ID 204 //
5993 /* 5132 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
5994 /* 5135 */ // Combiner Rule #150: shift_immed_chain; wip_match_opcode 'G_USHLSAT'
5995 /* 5135 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
5996 /* 5138 */ // Label 339: @5138
5997 /* 5138 */ GIM_Try, /*On fail goto*//*Label 340*/ GIMT_Encode4(5149), // Rule ID 208 //
5998 /* 5143 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
5999 /* 5146 */ // Combiner Rule #151: shift_of_shifted_logic_chain; wip_match_opcode 'G_USHLSAT'
6000 /* 5146 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
6001 /* 5149 */ // Label 340: @5149
6002 /* 5149 */ GIM_Reject,
6003 /* 5150 */ // Label 55: @5150
6004 /* 5150 */ GIM_Try, /*On fail goto*//*Label 341*/ GIMT_Encode4(5161), // Rule ID 203 //
6005 /* 5155 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
6006 /* 5158 */ // Combiner Rule #150: shift_immed_chain; wip_match_opcode 'G_SSHLSAT'
6007 /* 5158 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6008 /* 5161 */ // Label 341: @5161
6009 /* 5161 */ GIM_Try, /*On fail goto*//*Label 342*/ GIMT_Encode4(5172), // Rule ID 209 //
6010 /* 5166 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
6011 /* 5169 */ // Combiner Rule #151: shift_of_shifted_logic_chain; wip_match_opcode 'G_SSHLSAT'
6012 /* 5169 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
6013 /* 5172 */ // Label 342: @5172
6014 /* 5172 */ GIM_Reject,
6015 /* 5173 */ // Label 56: @5173
6016 /* 5173 */ GIM_Try, /*On fail goto*//*Label 343*/ GIMT_Encode4(5184), // Rule ID 326 //
6017 /* 5178 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6018 /* 5181 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIX'
6019 /* 5181 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6020 /* 5184 */ // Label 343: @5184
6021 /* 5184 */ GIM_Reject,
6022 /* 5185 */ // Label 57: @5185
6023 /* 5185 */ GIM_Try, /*On fail goto*//*Label 344*/ GIMT_Encode4(5196), // Rule ID 327 //
6024 /* 5190 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6025 /* 5193 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIX'
6026 /* 5193 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6027 /* 5196 */ // Label 344: @5196
6028 /* 5196 */ GIM_Reject,
6029 /* 5197 */ // Label 58: @5197
6030 /* 5197 */ GIM_Try, /*On fail goto*//*Label 345*/ GIMT_Encode4(5208), // Rule ID 328 //
6031 /* 5202 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6032 /* 5205 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIXSAT'
6033 /* 5205 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6034 /* 5208 */ // Label 345: @5208
6035 /* 5208 */ GIM_Reject,
6036 /* 5209 */ // Label 59: @5209
6037 /* 5209 */ GIM_Try, /*On fail goto*//*Label 346*/ GIMT_Encode4(5220), // Rule ID 329 //
6038 /* 5214 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6039 /* 5217 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIXSAT'
6040 /* 5217 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6041 /* 5220 */ // Label 346: @5220
6042 /* 5220 */ GIM_Reject,
6043 /* 5221 */ // Label 60: @5221
6044 /* 5221 */ GIM_Try, /*On fail goto*//*Label 347*/ GIMT_Encode4(5232), // Rule ID 249 //
6045 /* 5226 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
6046 /* 5229 */ // Combiner Rule #167: constant_fold_fp_binop; wip_match_opcode 'G_FADD'
6047 /* 5229 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
6048 /* 5232 */ // Label 347: @5232
6049 /* 5232 */ GIM_Try, /*On fail goto*//*Label 348*/ GIMT_Encode4(5243), // Rule ID 264 //
6050 /* 5237 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
6051 /* 5240 */ // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FADD'
6052 /* 5240 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
6053 /* 5243 */ // Label 348: @5243
6054 /* 5243 */ GIM_Try, /*On fail goto*//*Label 349*/ GIMT_Encode4(5254), // Rule ID 271 //
6055 /* 5248 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
6056 /* 5251 */ // Combiner Rule #178: combine_fadd_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
6057 /* 5251 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner115),
6058 /* 5254 */ // Label 349: @5254
6059 /* 5254 */ GIM_Try, /*On fail goto*//*Label 350*/ GIMT_Encode4(5265), // Rule ID 272 //
6060 /* 5259 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
6061 /* 5262 */ // Combiner Rule #179: combine_fadd_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
6062 /* 5262 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner116),
6063 /* 5265 */ // Label 350: @5265
6064 /* 5265 */ GIM_Try, /*On fail goto*//*Label 351*/ GIMT_Encode4(5276), // Rule ID 273 //
6065 /* 5270 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
6066 /* 5273 */ // Combiner Rule #180: combine_fadd_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
6067 /* 5273 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner117),
6068 /* 5276 */ // Label 351: @5276
6069 /* 5276 */ GIM_Try, /*On fail goto*//*Label 352*/ GIMT_Encode4(5287), // Rule ID 274 //
6070 /* 5281 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
6071 /* 5284 */ // Combiner Rule #181: combine_fadd_fpext_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
6072 /* 5284 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
6073 /* 5287 */ // Label 352: @5287
6074 /* 5287 */ GIM_Try, /*On fail goto*//*Label 353*/ GIMT_Encode4(5298), // Rule ID 297 //
6075 /* 5292 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6076 /* 5295 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FADD'
6077 /* 5295 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6078 /* 5298 */ // Label 353: @5298
6079 /* 5298 */ GIM_Try, /*On fail goto*//*Label 354*/ GIMT_Encode4(5309), // Rule ID 330 //
6080 /* 5303 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
6081 /* 5306 */ // Combiner Rule #192: commute_fp_constant_to_rhs; wip_match_opcode 'G_FADD'
6082 /* 5306 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
6083 /* 5309 */ // Label 354: @5309
6084 /* 5309 */ GIM_Try, /*On fail goto*//*Label 355*/ GIMT_Encode4(5332), // Rule ID 138 //
6085 /* 5314 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule100Enabled),
6086 /* 5317 */ // MIs[0] dst
6087 /* 5317 */ // No operand predicates
6088 /* 5317 */ // MIs[0] x
6089 /* 5317 */ // No operand predicates
6090 /* 5317 */ // MIs[0] y
6091 /* 5317 */ // No operand predicates
6092 /* 5317 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
6093 /* 5321 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6094 /* 5326 */ // Combiner Rule #100: right_identity_neg_zero_fp
6095 /* 5326 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6096 /* 5331 */ GIR_EraseRootFromParent_Done,
6097 /* 5332 */ // Label 355: @5332
6098 /* 5332 */ GIM_Reject,
6099 /* 5333 */ // Label 61: @5333
6100 /* 5333 */ GIM_Try, /*On fail goto*//*Label 356*/ GIMT_Encode4(5344), // Rule ID 250 //
6101 /* 5338 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
6102 /* 5341 */ // Combiner Rule #167: constant_fold_fp_binop; wip_match_opcode 'G_FSUB'
6103 /* 5341 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
6104 /* 5344 */ // Label 356: @5344
6105 /* 5344 */ GIM_Try, /*On fail goto*//*Label 357*/ GIMT_Encode4(5355), // Rule ID 265 //
6106 /* 5349 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
6107 /* 5352 */ // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FSUB'
6108 /* 5352 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
6109 /* 5355 */ // Label 357: @5355
6110 /* 5355 */ GIM_Try, /*On fail goto*//*Label 358*/ GIMT_Encode4(5366), // Rule ID 275 //
6111 /* 5360 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
6112 /* 5363 */ // Combiner Rule #182: combine_fsub_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
6113 /* 5363 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
6114 /* 5366 */ // Label 358: @5366
6115 /* 5366 */ GIM_Try, /*On fail goto*//*Label 359*/ GIMT_Encode4(5377), // Rule ID 276 //
6116 /* 5371 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
6117 /* 5374 */ // Combiner Rule #183: combine_fsub_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
6118 /* 5374 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
6119 /* 5377 */ // Label 359: @5377
6120 /* 5377 */ GIM_Try, /*On fail goto*//*Label 360*/ GIMT_Encode4(5388), // Rule ID 277 //
6121 /* 5382 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
6122 /* 5385 */ // Combiner Rule #184: combine_fsub_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
6123 /* 5385 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
6124 /* 5388 */ // Label 360: @5388
6125 /* 5388 */ GIM_Try, /*On fail goto*//*Label 361*/ GIMT_Encode4(5399), // Rule ID 278 //
6126 /* 5393 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
6127 /* 5396 */ // Combiner Rule #185: combine_fsub_fpext_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
6128 /* 5396 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
6129 /* 5399 */ // Label 361: @5399
6130 /* 5399 */ GIM_Try, /*On fail goto*//*Label 362*/ GIMT_Encode4(5410), // Rule ID 298 //
6131 /* 5404 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6132 /* 5407 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FSUB'
6133 /* 5407 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6134 /* 5410 */ // Label 362: @5410
6135 /* 5410 */ GIM_Try, /*On fail goto*//*Label 363*/ GIMT_Encode4(5421), // Rule ID 308 //
6136 /* 5415 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
6137 /* 5418 */ // Combiner Rule #190: fsub_to_fneg; wip_match_opcode 'G_FSUB'
6138 /* 5418 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner126),
6139 /* 5421 */ // Label 363: @5421
6140 /* 5421 */ GIM_Reject,
6141 /* 5422 */ // Label 62: @5422
6142 /* 5422 */ GIM_Try, /*On fail goto*//*Label 364*/ GIMT_Encode4(5433), // Rule ID 251 //
6143 /* 5427 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
6144 /* 5430 */ // Combiner Rule #167: constant_fold_fp_binop; wip_match_opcode 'G_FMUL'
6145 /* 5430 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
6146 /* 5433 */ // Label 364: @5433
6147 /* 5433 */ GIM_Try, /*On fail goto*//*Label 365*/ GIMT_Encode4(5444), // Rule ID 266 //
6148 /* 5438 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
6149 /* 5441 */ // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FMUL'
6150 /* 5441 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
6151 /* 5444 */ // Label 365: @5444
6152 /* 5444 */ GIM_Try, /*On fail goto*//*Label 366*/ GIMT_Encode4(5455), // Rule ID 296 //
6153 /* 5449 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6154 /* 5452 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMUL'
6155 /* 5452 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6156 /* 5455 */ // Label 366: @5455
6157 /* 5455 */ GIM_Try, /*On fail goto*//*Label 367*/ GIMT_Encode4(5466), // Rule ID 331 //
6158 /* 5460 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
6159 /* 5463 */ // Combiner Rule #192: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMUL'
6160 /* 5463 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
6161 /* 5466 */ // Label 367: @5466
6162 /* 5466 */ GIM_Try, /*On fail goto*//*Label 368*/ GIMT_Encode4(5487), // Rule ID 362 //
6163 /* 5471 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
6164 /* 5474 */ // MIs[0] dst
6165 /* 5474 */ // No operand predicates
6166 /* 5474 */ // MIs[0] x
6167 /* 5474 */ // No operand predicates
6168 /* 5474 */ // MIs[0] select
6169 /* 5474 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6170 /* 5478 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
6171 /* 5482 */ // MIs[1] y
6172 /* 5482 */ // No operand predicates
6173 /* 5482 */ // MIs[1] A
6174 /* 5482 */ // No operand predicates
6175 /* 5482 */ // MIs[1] B
6176 /* 5482 */ // No operand predicates
6177 /* 5482 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6178 /* 5484 */ // Combiner Rule #215: combine_fmul_with_select_to_fldexp
6179 /* 5484 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner151),
6180 /* 5487 */ // Label 368: @5487
6181 /* 5487 */ GIM_Try, /*On fail goto*//*Label 369*/ GIMT_Encode4(5510), // Rule ID 129 //
6182 /* 5492 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
6183 /* 5495 */ // MIs[0] dst
6184 /* 5495 */ // No operand predicates
6185 /* 5495 */ // MIs[0] x
6186 /* 5495 */ // No operand predicates
6187 /* 5495 */ // MIs[0] y
6188 /* 5495 */ // No operand predicates
6189 /* 5495 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
6190 /* 5499 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6191 /* 5504 */ // Combiner Rule #93: right_identity_one_fp
6192 /* 5504 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6193 /* 5509 */ GIR_EraseRootFromParent_Done,
6194 /* 5510 */ // Label 369: @5510
6195 /* 5510 */ GIM_Try, /*On fail goto*//*Label 370*/ GIMT_Encode4(5530), // Rule ID 139 //
6196 /* 5515 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
6197 /* 5518 */ // MIs[0] dst
6198 /* 5518 */ // No operand predicates
6199 /* 5518 */ // MIs[0] x
6200 /* 5518 */ // No operand predicates
6201 /* 5518 */ // MIs[0] y
6202 /* 5518 */ // No operand predicates
6203 /* 5518 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
6204 /* 5522 */ // Combiner Rule #101: right_identity_neg_one_fp
6205 /* 5522 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
6206 /* 5525 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6207 /* 5527 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
6208 /* 5529 */ GIR_EraseRootFromParent_Done,
6209 /* 5530 */ // Label 370: @5530
6210 /* 5530 */ GIM_Reject,
6211 /* 5531 */ // Label 63: @5531
6212 /* 5531 */ GIM_Try, /*On fail goto*//*Label 371*/ GIMT_Encode4(5542), // Rule ID 254 //
6213 /* 5536 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
6214 /* 5539 */ // Combiner Rule #168: constant_fold_fma; wip_match_opcode 'G_FMA'
6215 /* 5539 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
6216 /* 5542 */ // Label 371: @5542
6217 /* 5542 */ GIM_Try, /*On fail goto*//*Label 372*/ GIMT_Encode4(5553), // Rule ID 269 //
6218 /* 5547 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
6219 /* 5550 */ // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FMA'
6220 /* 5550 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
6221 /* 5553 */ // Label 372: @5553
6222 /* 5553 */ GIM_Reject,
6223 /* 5554 */ // Label 64: @5554
6224 /* 5554 */ GIM_Try, /*On fail goto*//*Label 373*/ GIMT_Encode4(5565), // Rule ID 253 //
6225 /* 5559 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
6226 /* 5562 */ // Combiner Rule #168: constant_fold_fma; wip_match_opcode 'G_FMAD'
6227 /* 5562 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
6228 /* 5565 */ // Label 373: @5565
6229 /* 5565 */ GIM_Try, /*On fail goto*//*Label 374*/ GIMT_Encode4(5576), // Rule ID 268 //
6230 /* 5570 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
6231 /* 5573 */ // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FMAD'
6232 /* 5573 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
6233 /* 5576 */ // Label 374: @5576
6234 /* 5576 */ GIM_Reject,
6235 /* 5577 */ // Label 65: @5577
6236 /* 5577 */ GIM_Try, /*On fail goto*//*Label 375*/ GIMT_Encode4(5588), // Rule ID 252 //
6237 /* 5582 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
6238 /* 5585 */ // Combiner Rule #167: constant_fold_fp_binop; wip_match_opcode 'G_FDIV'
6239 /* 5585 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
6240 /* 5588 */ // Label 375: @5588
6241 /* 5588 */ GIM_Try, /*On fail goto*//*Label 376*/ GIMT_Encode4(5599), // Rule ID 267 //
6242 /* 5593 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
6243 /* 5596 */ // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FDIV'
6244 /* 5596 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
6245 /* 5599 */ // Label 376: @5599
6246 /* 5599 */ GIM_Try, /*On fail goto*//*Label 377*/ GIMT_Encode4(5610), // Rule ID 299 //
6247 /* 5604 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6248 /* 5607 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FDIV'
6249 /* 5607 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6250 /* 5610 */ // Label 377: @5610
6251 /* 5610 */ GIM_Reject,
6252 /* 5611 */ // Label 66: @5611
6253 /* 5611 */ GIM_Try, /*On fail goto*//*Label 378*/ GIMT_Encode4(5622), // Rule ID 300 //
6254 /* 5616 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6255 /* 5619 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FREM'
6256 /* 5619 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6257 /* 5622 */ // Label 378: @5622
6258 /* 5622 */ GIM_Reject,
6259 /* 5623 */ // Label 67: @5623
6260 /* 5623 */ GIM_Try, /*On fail goto*//*Label 379*/ GIMT_Encode4(5644), // Rule ID 197 //
6261 /* 5628 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
6262 /* 5631 */ // MIs[0] dst
6263 /* 5631 */ // No operand predicates
6264 /* 5631 */ // MIs[0] float
6265 /* 5631 */ // No operand predicates
6266 /* 5631 */ // MIs[0] int
6267 /* 5631 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6268 /* 5635 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6269 /* 5639 */ // MIs[1] imm
6270 /* 5639 */ // No operand predicates
6271 /* 5639 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6272 /* 5641 */ // Combiner Rule #147: expand_const_fpowi
6273 /* 5641 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner89),
6274 /* 5644 */ // Label 379: @5644
6275 /* 5644 */ GIM_Reject,
6276 /* 5645 */ // Label 68: @5645
6277 /* 5645 */ GIM_Try, /*On fail goto*//*Label 380*/ GIMT_Encode4(5666), // Rule ID 179 //
6278 /* 5650 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled),
6279 /* 5653 */ // MIs[0] dst
6280 /* 5653 */ // No operand predicates
6281 /* 5653 */ // MIs[0] src0
6282 /* 5653 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6283 /* 5657 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
6284 /* 5661 */ // MIs[1] cst
6285 /* 5661 */ // No operand predicates
6286 /* 5661 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6287 /* 5663 */ // Combiner Rule #137: constant_fold_flog2
6288 /* 5663 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
6289 /* 5666 */ // Label 380: @5666
6290 /* 5666 */ GIM_Reject,
6291 /* 5667 */ // Label 69: @5667
6292 /* 5667 */ GIM_Try, /*On fail goto*//*Label 381*/ GIMT_Encode4(5678), // Rule ID 364 //
6293 /* 5672 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
6294 /* 5675 */ // Combiner Rule #217: foldable_fneg; wip_match_opcode 'G_FNEG'
6295 /* 5675 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
6296 /* 5678 */ // Label 381: @5678
6297 /* 5678 */ GIM_Try, /*On fail goto*//*Label 382*/ GIMT_Encode4(5699), // Rule ID 176 //
6298 /* 5683 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule134Enabled),
6299 /* 5686 */ // MIs[0] dst
6300 /* 5686 */ // No operand predicates
6301 /* 5686 */ // MIs[0] src0
6302 /* 5686 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6303 /* 5690 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
6304 /* 5694 */ // MIs[1] cst
6305 /* 5694 */ // No operand predicates
6306 /* 5694 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6307 /* 5696 */ // Combiner Rule #134: constant_fold_fneg
6308 /* 5696 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
6309 /* 5699 */ // Label 382: @5699
6310 /* 5699 */ GIM_Try, /*On fail goto*//*Label 383*/ GIMT_Encode4(5728), // Rule ID 127 //
6311 /* 5704 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
6312 /* 5707 */ // MIs[0] dst
6313 /* 5707 */ // No operand predicates
6314 /* 5707 */ // MIs[0] t
6315 /* 5707 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6316 /* 5711 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
6317 /* 5715 */ // MIs[1] src
6318 /* 5715 */ // No operand predicates
6319 /* 5715 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
6320 /* 5720 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6321 /* 5722 */ // Combiner Rule #91: fneg_fneg_fold
6322 /* 5722 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
6323 /* 5727 */ GIR_EraseRootFromParent_Done,
6324 /* 5728 */ // Label 383: @5728
6325 /* 5728 */ GIM_Reject,
6326 /* 5729 */ // Label 70: @5729
6327 /* 5729 */ GIM_Try, /*On fail goto*//*Label 384*/ GIMT_Encode4(5750), // Rule ID 180 //
6328 /* 5734 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule138Enabled),
6329 /* 5737 */ // MIs[0] dst
6330 /* 5737 */ // No operand predicates
6331 /* 5737 */ // MIs[0] src0
6332 /* 5737 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6333 /* 5741 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
6334 /* 5745 */ // MIs[1] cst
6335 /* 5745 */ // No operand predicates
6336 /* 5745 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6337 /* 5747 */ // Combiner Rule #138: constant_fold_fptrunc
6338 /* 5747 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
6339 /* 5750 */ // Label 384: @5750
6340 /* 5750 */ GIM_Try, /*On fail goto*//*Label 385*/ GIMT_Encode4(5771), // Rule ID 137 //
6341 /* 5755 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule99Enabled),
6342 /* 5758 */ // MIs[0] dst
6343 /* 5758 */ // No operand predicates
6344 /* 5758 */ // MIs[0] src1
6345 /* 5758 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6346 /* 5762 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
6347 /* 5766 */ // MIs[1] src0
6348 /* 5766 */ // No operand predicates
6349 /* 5766 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6350 /* 5768 */ // Combiner Rule #99: fptrunc_fpext_fold
6351 /* 5768 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
6352 /* 5771 */ // Label 385: @5771
6353 /* 5771 */ GIM_Reject,
6354 /* 5772 */ // Label 71: @5772
6355 /* 5772 */ GIM_Try, /*On fail goto*//*Label 386*/ GIMT_Encode4(5793), // Rule ID 92 //
6356 /* 5777 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6357 /* 5780 */ // MIs[0] dst
6358 /* 5780 */ // No operand predicates
6359 /* 5780 */ // MIs[0] __unary_undef_to_undef_match_0.x
6360 /* 5780 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6361 /* 5784 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6362 /* 5788 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6363 /* 5790 */ // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[5]]
6364 /* 5790 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6365 /* 5793 */ // Label 386: @5793
6366 /* 5793 */ GIM_Reject,
6367 /* 5794 */ // Label 72: @5794
6368 /* 5794 */ GIM_Try, /*On fail goto*//*Label 387*/ GIMT_Encode4(5815), // Rule ID 93 //
6369 /* 5799 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6370 /* 5802 */ // MIs[0] dst
6371 /* 5802 */ // No operand predicates
6372 /* 5802 */ // MIs[0] __unary_undef_to_undef_match_0.x
6373 /* 5802 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6374 /* 5806 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6375 /* 5810 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6376 /* 5812 */ // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[6]]
6377 /* 5812 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6378 /* 5815 */ // Label 387: @5815
6379 /* 5815 */ GIM_Reject,
6380 /* 5816 */ // Label 73: @5816
6381 /* 5816 */ GIM_Try, /*On fail goto*//*Label 388*/ GIMT_Encode4(5827), // Rule ID 76 //
6382 /* 5821 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
6383 /* 5824 */ // Combiner Rule #71: undef_to_fp_zero; wip_match_opcode 'G_SITOFP'
6384 /* 5824 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
6385 /* 5827 */ // Label 388: @5827
6386 /* 5827 */ GIM_Try, /*On fail goto*//*Label 389*/ GIMT_Encode4(5842), // Rule ID 181 //
6387 /* 5832 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule139Enabled),
6388 /* 5835 */ // MIs[0] dst
6389 /* 5835 */ // No operand predicates
6390 /* 5835 */ // MIs[0] Operand 1
6391 /* 5835 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
6392 /* 5839 */ // Combiner Rule #139: itof_const_zero_fold_si
6393 /* 5839 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
6394 /* 5842 */ // Label 389: @5842
6395 /* 5842 */ GIM_Reject,
6396 /* 5843 */ // Label 74: @5843
6397 /* 5843 */ GIM_Try, /*On fail goto*//*Label 390*/ GIMT_Encode4(5854), // Rule ID 75 //
6398 /* 5848 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
6399 /* 5851 */ // Combiner Rule #71: undef_to_fp_zero; wip_match_opcode 'G_UITOFP'
6400 /* 5851 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
6401 /* 5854 */ // Label 390: @5854
6402 /* 5854 */ GIM_Try, /*On fail goto*//*Label 391*/ GIMT_Encode4(5869), // Rule ID 182 //
6403 /* 5859 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule140Enabled),
6404 /* 5862 */ // MIs[0] dst
6405 /* 5862 */ // No operand predicates
6406 /* 5862 */ // MIs[0] Operand 1
6407 /* 5862 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
6408 /* 5866 */ // Combiner Rule #140: itof_const_zero_fold_ui
6409 /* 5866 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
6410 /* 5869 */ // Label 391: @5869
6411 /* 5869 */ GIM_Reject,
6412 /* 5870 */ // Label 75: @5870
6413 /* 5870 */ GIM_Try, /*On fail goto*//*Label 392*/ GIMT_Encode4(5899), // Rule ID 19 //
6414 /* 5875 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
6415 /* 5878 */ // MIs[0] dst
6416 /* 5878 */ // No operand predicates
6417 /* 5878 */ // MIs[0] src
6418 /* 5878 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6419 /* 5882 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
6420 /* 5886 */ // MIs[1] __idempotent_prop_match_0.x
6421 /* 5886 */ // No operand predicates
6422 /* 5886 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6423 /* 5891 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6424 /* 5893 */ // Combiner Rule #18: idempotent_prop @ [__idempotent_prop_match_0[1]]
6425 /* 5893 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6426 /* 5898 */ GIR_EraseRootFromParent_Done,
6427 /* 5899 */ // Label 392: @5899
6428 /* 5899 */ GIM_Try, /*On fail goto*//*Label 393*/ GIMT_Encode4(5920), // Rule ID 177 //
6429 /* 5904 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule135Enabled),
6430 /* 5907 */ // MIs[0] dst
6431 /* 5907 */ // No operand predicates
6432 /* 5907 */ // MIs[0] src0
6433 /* 5907 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6434 /* 5911 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
6435 /* 5915 */ // MIs[1] cst
6436 /* 5915 */ // No operand predicates
6437 /* 5915 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6438 /* 5917 */ // Combiner Rule #135: constant_fold_fabs
6439 /* 5917 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
6440 /* 5920 */ // Label 393: @5920
6441 /* 5920 */ GIM_Try, /*On fail goto*//*Label 394*/ GIMT_Encode4(5948), // Rule ID 258 //
6442 /* 5925 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
6443 /* 5928 */ // MIs[0] dst
6444 /* 5928 */ // No operand predicates
6445 /* 5928 */ // MIs[0] tmp
6446 /* 5928 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6447 /* 5932 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
6448 /* 5936 */ // MIs[1] x
6449 /* 5936 */ // No operand predicates
6450 /* 5936 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6451 /* 5938 */ // Combiner Rule #170: fabs_fneg_fold
6452 /* 5938 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FABS),
6453 /* 5941 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6454 /* 5943 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6455 /* 5947 */ GIR_EraseRootFromParent_Done,
6456 /* 5948 */ // Label 394: @5948
6457 /* 5948 */ GIM_Reject,
6458 /* 5949 */ // Label 76: @5949
6459 /* 5949 */ GIM_Try, /*On fail goto*//*Label 395*/ GIMT_Encode4(5978), // Rule ID 20 //
6460 /* 5954 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
6461 /* 5957 */ // MIs[0] dst
6462 /* 5957 */ // No operand predicates
6463 /* 5957 */ // MIs[0] src
6464 /* 5957 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6465 /* 5961 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCANONICALIZE),
6466 /* 5965 */ // MIs[1] __idempotent_prop_match_0.x
6467 /* 5965 */ // No operand predicates
6468 /* 5965 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6469 /* 5970 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6470 /* 5972 */ // Combiner Rule #18: idempotent_prop @ [__idempotent_prop_match_0[2]]
6471 /* 5972 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6472 /* 5977 */ GIR_EraseRootFromParent_Done,
6473 /* 5978 */ // Label 395: @5978
6474 /* 5978 */ GIM_Reject,
6475 /* 5979 */ // Label 77: @5979
6476 /* 5979 */ GIM_Try, /*On fail goto*//*Label 396*/ GIMT_Encode4(5990), // Rule ID 193 //
6477 /* 5984 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
6478 /* 5987 */ // Combiner Rule #146: combine_minmax_nan; wip_match_opcode 'G_FMINNUM'
6479 /* 5987 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
6480 /* 5990 */ // Label 396: @5990
6481 /* 5990 */ GIM_Try, /*On fail goto*//*Label 397*/ GIMT_Encode4(6001), // Rule ID 301 //
6482 /* 5995 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6483 /* 5998 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMINNUM'
6484 /* 5998 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6485 /* 6001 */ // Label 397: @6001
6486 /* 6001 */ GIM_Try, /*On fail goto*//*Label 398*/ GIMT_Encode4(6012), // Rule ID 332 //
6487 /* 6006 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
6488 /* 6009 */ // Combiner Rule #192: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM'
6489 /* 6009 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
6490 /* 6012 */ // Label 398: @6012
6491 /* 6012 */ GIM_Reject,
6492 /* 6013 */ // Label 78: @6013
6493 /* 6013 */ GIM_Try, /*On fail goto*//*Label 399*/ GIMT_Encode4(6024), // Rule ID 194 //
6494 /* 6018 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
6495 /* 6021 */ // Combiner Rule #146: combine_minmax_nan; wip_match_opcode 'G_FMAXNUM'
6496 /* 6021 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
6497 /* 6024 */ // Label 399: @6024
6498 /* 6024 */ GIM_Try, /*On fail goto*//*Label 400*/ GIMT_Encode4(6035), // Rule ID 302 //
6499 /* 6029 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6500 /* 6032 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMAXNUM'
6501 /* 6032 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6502 /* 6035 */ // Label 400: @6035
6503 /* 6035 */ GIM_Try, /*On fail goto*//*Label 401*/ GIMT_Encode4(6046), // Rule ID 333 //
6504 /* 6040 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
6505 /* 6043 */ // Combiner Rule #192: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM'
6506 /* 6043 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
6507 /* 6046 */ // Label 401: @6046
6508 /* 6046 */ GIM_Reject,
6509 /* 6047 */ // Label 79: @6047
6510 /* 6047 */ GIM_Try, /*On fail goto*//*Label 402*/ GIMT_Encode4(6058), // Rule ID 334 //
6511 /* 6052 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
6512 /* 6055 */ // Combiner Rule #192: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM_IEEE'
6513 /* 6055 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
6514 /* 6058 */ // Label 402: @6058
6515 /* 6058 */ GIM_Reject,
6516 /* 6059 */ // Label 80: @6059
6517 /* 6059 */ GIM_Try, /*On fail goto*//*Label 403*/ GIMT_Encode4(6070), // Rule ID 335 //
6518 /* 6064 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
6519 /* 6067 */ // Combiner Rule #192: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM_IEEE'
6520 /* 6067 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
6521 /* 6070 */ // Label 403: @6070
6522 /* 6070 */ GIM_Reject,
6523 /* 6071 */ // Label 81: @6071
6524 /* 6071 */ GIM_Try, /*On fail goto*//*Label 404*/ GIMT_Encode4(6082), // Rule ID 195 //
6525 /* 6076 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
6526 /* 6079 */ // Combiner Rule #146: combine_minmax_nan; wip_match_opcode 'G_FMINIMUM'
6527 /* 6079 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
6528 /* 6082 */ // Label 404: @6082
6529 /* 6082 */ GIM_Try, /*On fail goto*//*Label 405*/ GIMT_Encode4(6093), // Rule ID 303 //
6530 /* 6087 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6531 /* 6090 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMINIMUM'
6532 /* 6090 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6533 /* 6093 */ // Label 405: @6093
6534 /* 6093 */ GIM_Try, /*On fail goto*//*Label 406*/ GIMT_Encode4(6104), // Rule ID 336 //
6535 /* 6098 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
6536 /* 6101 */ // Combiner Rule #192: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINIMUM'
6537 /* 6101 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
6538 /* 6104 */ // Label 406: @6104
6539 /* 6104 */ GIM_Reject,
6540 /* 6105 */ // Label 82: @6105
6541 /* 6105 */ GIM_Try, /*On fail goto*//*Label 407*/ GIMT_Encode4(6116), // Rule ID 196 //
6542 /* 6110 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
6543 /* 6113 */ // Combiner Rule #146: combine_minmax_nan; wip_match_opcode 'G_FMAXIMUM'
6544 /* 6113 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
6545 /* 6116 */ // Label 407: @6116
6546 /* 6116 */ GIM_Try, /*On fail goto*//*Label 408*/ GIMT_Encode4(6127), // Rule ID 304 //
6547 /* 6121 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6548 /* 6124 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMAXIMUM'
6549 /* 6124 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6550 /* 6127 */ // Label 408: @6127
6551 /* 6127 */ GIM_Try, /*On fail goto*//*Label 409*/ GIMT_Encode4(6138), // Rule ID 337 //
6552 /* 6132 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
6553 /* 6135 */ // Combiner Rule #192: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXIMUM'
6554 /* 6135 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
6555 /* 6138 */ // Label 409: @6138
6556 /* 6138 */ GIM_Reject,
6557 /* 6139 */ // Label 83: @6139
6558 /* 6139 */ GIM_Try, /*On fail goto*//*Label 410*/ GIMT_Encode4(6150), // Rule ID 148 //
6559 /* 6144 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
6560 /* 6147 */ // Combiner Rule #106: reassoc_ptradd; wip_match_opcode 'G_PTR_ADD'
6561 /* 6147 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner57),
6562 /* 6150 */ // Label 410: @6150
6563 /* 6150 */ GIM_Try, /*On fail goto*//*Label 411*/ GIMT_Encode4(6161), // Rule ID 150 //
6564 /* 6155 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
6565 /* 6158 */ // Combiner Rule #108: ptr_add_immed_chain; wip_match_opcode 'G_PTR_ADD'
6566 /* 6158 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner59),
6567 /* 6161 */ // Label 411: @6161
6568 /* 6161 */ GIM_Try, /*On fail goto*//*Label 412*/ GIMT_Encode4(6172), // Rule ID 183 //
6569 /* 6166 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule141Enabled),
6570 /* 6169 */ // Combiner Rule #141: const_ptradd_to_i2p; wip_match_opcode 'G_PTR_ADD'
6571 /* 6169 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
6572 /* 6172 */ // Label 412: @6172
6573 /* 6172 */ GIM_Try, /*On fail goto*//*Label 413*/ GIMT_Encode4(6183), // Rule ID 199 //
6574 /* 6177 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule149Enabled),
6575 /* 6180 */ // Combiner Rule #149: ptr_add_with_zero; wip_match_opcode 'G_PTR_ADD'
6576 /* 6180 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
6577 /* 6183 */ // Label 413: @6183
6578 /* 6183 */ GIM_Try, /*On fail goto*//*Label 414*/ GIMT_Encode4(6194), // Rule ID 232 //
6579 /* 6188 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
6580 /* 6191 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_PTR_ADD'
6581 /* 6191 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
6582 /* 6194 */ // Label 414: @6194
6583 /* 6194 */ GIM_Try, /*On fail goto*//*Label 415*/ GIMT_Encode4(6205), // Rule ID 281 //
6584 /* 6199 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6585 /* 6202 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_PTR_ADD'
6586 /* 6202 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6587 /* 6205 */ // Label 415: @6205
6588 /* 6205 */ GIM_Try, /*On fail goto*//*Label 416*/ GIMT_Encode4(6228), // Rule ID 111 //
6589 /* 6210 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
6590 /* 6213 */ // MIs[0] dst
6591 /* 6213 */ // No operand predicates
6592 /* 6213 */ // MIs[0] lhs
6593 /* 6213 */ // No operand predicates
6594 /* 6213 */ // MIs[0] Operand 2
6595 /* 6213 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6596 /* 6217 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6597 /* 6222 */ // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[7]]
6598 /* 6222 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6599 /* 6227 */ GIR_EraseRootFromParent_Done,
6600 /* 6228 */ // Label 416: @6228
6601 /* 6228 */ GIM_Reject,
6602 /* 6229 */ // Label 84: @6229
6603 /* 6229 */ GIM_Try, /*On fail goto*//*Label 417*/ GIMT_Encode4(6240), // Rule ID 245 //
6604 /* 6234 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
6605 /* 6237 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_SMIN'
6606 /* 6237 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
6607 /* 6240 */ // Label 417: @6240
6608 /* 6240 */ GIM_Try, /*On fail goto*//*Label 418*/ GIMT_Encode4(6251), // Rule ID 292 //
6609 /* 6245 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6610 /* 6248 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SMIN'
6611 /* 6248 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6612 /* 6251 */ // Label 418: @6251
6613 /* 6251 */ GIM_Try, /*On fail goto*//*Label 419*/ GIMT_Encode4(6262), // Rule ID 314 //
6614 /* 6256 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6615 /* 6259 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_SMIN'
6616 /* 6259 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6617 /* 6262 */ // Label 419: @6262
6618 /* 6262 */ GIM_Reject,
6619 /* 6263 */ // Label 85: @6263
6620 /* 6263 */ GIM_Try, /*On fail goto*//*Label 420*/ GIMT_Encode4(6274), // Rule ID 246 //
6621 /* 6268 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
6622 /* 6271 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_SMAX'
6623 /* 6271 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
6624 /* 6274 */ // Label 420: @6274
6625 /* 6274 */ GIM_Try, /*On fail goto*//*Label 421*/ GIMT_Encode4(6285), // Rule ID 293 //
6626 /* 6279 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6627 /* 6282 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SMAX'
6628 /* 6282 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6629 /* 6285 */ // Label 421: @6285
6630 /* 6285 */ GIM_Try, /*On fail goto*//*Label 422*/ GIMT_Encode4(6296), // Rule ID 315 //
6631 /* 6290 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6632 /* 6293 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_SMAX'
6633 /* 6293 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6634 /* 6296 */ // Label 422: @6296
6635 /* 6296 */ GIM_Reject,
6636 /* 6297 */ // Label 86: @6297
6637 /* 6297 */ GIM_Try, /*On fail goto*//*Label 423*/ GIMT_Encode4(6308), // Rule ID 247 //
6638 /* 6302 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
6639 /* 6305 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_UMIN'
6640 /* 6305 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
6641 /* 6308 */ // Label 423: @6308
6642 /* 6308 */ GIM_Try, /*On fail goto*//*Label 424*/ GIMT_Encode4(6319), // Rule ID 294 //
6643 /* 6313 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6644 /* 6316 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_UMIN'
6645 /* 6316 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6646 /* 6319 */ // Label 424: @6319
6647 /* 6319 */ GIM_Try, /*On fail goto*//*Label 425*/ GIMT_Encode4(6330), // Rule ID 316 //
6648 /* 6324 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6649 /* 6327 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_UMIN'
6650 /* 6327 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6651 /* 6330 */ // Label 425: @6330
6652 /* 6330 */ GIM_Reject,
6653 /* 6331 */ // Label 87: @6331
6654 /* 6331 */ GIM_Try, /*On fail goto*//*Label 426*/ GIMT_Encode4(6342), // Rule ID 248 //
6655 /* 6336 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
6656 /* 6339 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_UMAX'
6657 /* 6339 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
6658 /* 6342 */ // Label 426: @6342
6659 /* 6342 */ GIM_Try, /*On fail goto*//*Label 427*/ GIMT_Encode4(6353), // Rule ID 295 //
6660 /* 6347 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6661 /* 6350 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_UMAX'
6662 /* 6350 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6663 /* 6353 */ // Label 427: @6353
6664 /* 6353 */ GIM_Try, /*On fail goto*//*Label 428*/ GIMT_Encode4(6364), // Rule ID 317 //
6665 /* 6358 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6666 /* 6361 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_UMAX'
6667 /* 6361 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6668 /* 6364 */ // Label 428: @6364
6669 /* 6364 */ GIM_Reject,
6670 /* 6365 */ // Label 88: @6365
6671 /* 6365 */ GIM_Try, /*On fail goto*//*Label 429*/ GIMT_Encode4(6376), // Rule ID 86 //
6672 /* 6370 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
6673 /* 6373 */ // Combiner Rule #76: unary_undef_to_zero; wip_match_opcode 'G_ABS'
6674 /* 6373 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
6675 /* 6376 */ // Label 429: @6376
6676 /* 6376 */ GIM_Reject,
6677 /* 6377 */ // Label 89: @6377
6678 /* 6377 */ GIM_Try, /*On fail goto*//*Label 430*/ GIMT_Encode4(6388), // Rule ID 175 //
6679 /* 6382 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule133Enabled),
6680 /* 6385 */ // Combiner Rule #133: opt_brcond_by_inverting_cond; wip_match_opcode 'G_BR'
6681 /* 6385 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
6682 /* 6388 */ // Label 430: @6388
6683 /* 6388 */ GIM_Reject,
6684 /* 6389 */ // Label 90: @6389
6685 /* 6389 */ GIM_Try, /*On fail goto*//*Label 431*/ GIMT_Encode4(6400), // Rule ID 26 //
6686 /* 6394 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
6687 /* 6397 */ // Combiner Rule #24: insert_vector_elt_oob; wip_match_opcode 'G_INSERT_VECTOR_ELT'
6688 /* 6397 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
6689 /* 6400 */ // Label 431: @6400
6690 /* 6400 */ GIM_Try, /*On fail goto*//*Label 432*/ GIMT_Encode4(6411), // Rule ID 67 //
6691 /* 6405 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
6692 /* 6408 */ // Combiner Rule #65: combine_insert_vec_elts_build_vector; wip_match_opcode 'G_INSERT_VECTOR_ELT'
6693 /* 6408 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
6694 /* 6411 */ // Label 432: @6411
6695 /* 6411 */ GIM_Try, /*On fail goto*//*Label 433*/ GIMT_Encode4(6422), // Rule ID 101 //
6696 /* 6416 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
6697 /* 6419 */ // Combiner Rule #82: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_INSERT_VECTOR_ELT'
6698 /* 6419 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
6699 /* 6422 */ // Label 433: @6422
6700 /* 6422 */ GIM_Try, /*On fail goto*//*Label 434*/ GIMT_Encode4(6461), // Rule ID 38 //
6701 /* 6427 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
6702 /* 6430 */ // MIs[0] root
6703 /* 6430 */ // No operand predicates
6704 /* 6430 */ // MIs[0] src
6705 /* 6430 */ // No operand predicates
6706 /* 6430 */ // MIs[0] elt
6707 /* 6430 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6708 /* 6434 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_EXTRACT_VECTOR_ELT),
6709 /* 6438 */ // MIs[1] src
6710 /* 6438 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
6711 /* 6443 */ // MIs[1] idx
6712 /* 6443 */ // No operand predicates
6713 /* 6443 */ // MIs[0] idx
6714 /* 6443 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
6715 /* 6448 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6716 /* 6453 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6717 /* 6455 */ // Combiner Rule #36: insert_vector_element_extract_vector_element
6718 /* 6455 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6719 /* 6460 */ GIR_EraseRootFromParent_Done,
6720 /* 6461 */ // Label 434: @6461
6721 /* 6461 */ GIM_Try, /*On fail goto*//*Label 435*/ GIMT_Encode4(6494), // Rule ID 24 //
6722 /* 6466 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
6723 /* 6469 */ // MIs[0] root
6724 /* 6469 */ // No operand predicates
6725 /* 6469 */ // MIs[0] src
6726 /* 6469 */ // No operand predicates
6727 /* 6469 */ // MIs[0] elt
6728 /* 6469 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6729 /* 6473 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6730 /* 6477 */ // MIs[0] idx
6731 /* 6477 */ // No operand predicates
6732 /* 6477 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
6733 /* 6481 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6734 /* 6486 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6735 /* 6488 */ // Combiner Rule #22: insert_vector_element_elt_undef
6736 /* 6488 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6737 /* 6493 */ GIR_EraseRootFromParent_Done,
6738 /* 6494 */ // Label 435: @6494
6739 /* 6494 */ GIM_Try, /*On fail goto*//*Label 436*/ GIMT_Encode4(6518), // Rule ID 23 //
6740 /* 6499 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
6741 /* 6502 */ // MIs[0] root
6742 /* 6502 */ // No operand predicates
6743 /* 6502 */ // MIs[0] src
6744 /* 6502 */ // No operand predicates
6745 /* 6502 */ // MIs[0] elt
6746 /* 6502 */ // No operand predicates
6747 /* 6502 */ // MIs[0] idx
6748 /* 6502 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
6749 /* 6506 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6750 /* 6510 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6751 /* 6512 */ // Combiner Rule #21: insert_vector_element_idx_undef
6752 /* 6512 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6753 /* 6515 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6754 /* 6517 */ GIR_EraseRootFromParent_Done,
6755 /* 6518 */ // Label 436: @6518
6756 /* 6518 */ GIM_Reject,
6757 /* 6519 */ // Label 91: @6519
6758 /* 6519 */ GIM_Try, /*On fail goto*//*Label 437*/ GIMT_Encode4(6530), // Rule ID 25 //
6759 /* 6524 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
6760 /* 6527 */ // Combiner Rule #23: match_extract_of_element; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
6761 /* 6527 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
6762 /* 6530 */ // Label 437: @6530
6763 /* 6530 */ GIM_Try, /*On fail goto*//*Label 438*/ GIMT_Encode4(6541), // Rule ID 68 //
6764 /* 6535 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule66Enabled),
6765 /* 6538 */ // Combiner Rule #66: extract_vec_elt_build_vec; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
6766 /* 6538 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner28),
6767 /* 6541 */ // Label 438: @6541
6768 /* 6541 */ GIM_Try, /*On fail goto*//*Label 439*/ GIMT_Encode4(6552), // Rule ID 74 //
6769 /* 6546 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
6770 /* 6549 */ // Combiner Rule #70: combine_extracted_vector_load; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
6771 /* 6549 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
6772 /* 6552 */ // Label 439: @6552
6773 /* 6552 */ GIM_Try, /*On fail goto*//*Label 440*/ GIMT_Encode4(6563), // Rule ID 102 //
6774 /* 6557 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
6775 /* 6560 */ // Combiner Rule #82: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
6776 /* 6560 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
6777 /* 6563 */ // Label 440: @6563
6778 /* 6563 */ GIM_Try, /*On fail goto*//*Label 441*/ GIMT_Encode4(6587), // Rule ID 36 //
6779 /* 6568 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
6780 /* 6571 */ // MIs[0] root
6781 /* 6571 */ // No operand predicates
6782 /* 6571 */ // MIs[0] src
6783 /* 6571 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6784 /* 6575 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
6785 /* 6579 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/9,
6786 /* 6582 */ // MIs[1] x
6787 /* 6582 */ // No operand predicates
6788 /* 6582 */ // MIs[1] y
6789 /* 6582 */ // No operand predicates
6790 /* 6582 */ // MIs[1] z
6791 /* 6582 */ // No operand predicates
6792 /* 6582 */ // MIs[1] a
6793 /* 6582 */ // No operand predicates
6794 /* 6582 */ // MIs[1] b
6795 /* 6582 */ // No operand predicates
6796 /* 6582 */ // MIs[1] c
6797 /* 6582 */ // No operand predicates
6798 /* 6582 */ // MIs[1] d
6799 /* 6582 */ // No operand predicates
6800 /* 6582 */ // MIs[1] e
6801 /* 6582 */ // No operand predicates
6802 /* 6582 */ // MIs[0] idx
6803 /* 6582 */ // No operand predicates
6804 /* 6582 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6805 /* 6584 */ // Combiner Rule #34: extract_vector_element_build_vector_trunc8
6806 /* 6584 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
6807 /* 6587 */ // Label 441: @6587
6808 /* 6587 */ GIM_Try, /*On fail goto*//*Label 442*/ GIMT_Encode4(6611), // Rule ID 35 //
6809 /* 6592 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
6810 /* 6595 */ // MIs[0] root
6811 /* 6595 */ // No operand predicates
6812 /* 6595 */ // MIs[0] src
6813 /* 6595 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6814 /* 6599 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
6815 /* 6603 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/8,
6816 /* 6606 */ // MIs[1] x
6817 /* 6606 */ // No operand predicates
6818 /* 6606 */ // MIs[1] y
6819 /* 6606 */ // No operand predicates
6820 /* 6606 */ // MIs[1] z
6821 /* 6606 */ // No operand predicates
6822 /* 6606 */ // MIs[1] a
6823 /* 6606 */ // No operand predicates
6824 /* 6606 */ // MIs[1] b
6825 /* 6606 */ // No operand predicates
6826 /* 6606 */ // MIs[1] c
6827 /* 6606 */ // No operand predicates
6828 /* 6606 */ // MIs[1] d
6829 /* 6606 */ // No operand predicates
6830 /* 6606 */ // MIs[0] idx
6831 /* 6606 */ // No operand predicates
6832 /* 6606 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6833 /* 6608 */ // Combiner Rule #33: extract_vector_element_build_vector_trunc7
6834 /* 6608 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
6835 /* 6611 */ // Label 442: @6611
6836 /* 6611 */ GIM_Try, /*On fail goto*//*Label 443*/ GIMT_Encode4(6635), // Rule ID 34 //
6837 /* 6616 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
6838 /* 6619 */ // MIs[0] root
6839 /* 6619 */ // No operand predicates
6840 /* 6619 */ // MIs[0] src
6841 /* 6619 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6842 /* 6623 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
6843 /* 6627 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/7,
6844 /* 6630 */ // MIs[1] x
6845 /* 6630 */ // No operand predicates
6846 /* 6630 */ // MIs[1] y
6847 /* 6630 */ // No operand predicates
6848 /* 6630 */ // MIs[1] z
6849 /* 6630 */ // No operand predicates
6850 /* 6630 */ // MIs[1] a
6851 /* 6630 */ // No operand predicates
6852 /* 6630 */ // MIs[1] b
6853 /* 6630 */ // No operand predicates
6854 /* 6630 */ // MIs[1] c
6855 /* 6630 */ // No operand predicates
6856 /* 6630 */ // MIs[0] idx
6857 /* 6630 */ // No operand predicates
6858 /* 6630 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6859 /* 6632 */ // Combiner Rule #32: extract_vector_element_build_vector_trunc6
6860 /* 6632 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
6861 /* 6635 */ // Label 443: @6635
6862 /* 6635 */ GIM_Try, /*On fail goto*//*Label 444*/ GIMT_Encode4(6659), // Rule ID 33 //
6863 /* 6640 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
6864 /* 6643 */ // MIs[0] root
6865 /* 6643 */ // No operand predicates
6866 /* 6643 */ // MIs[0] src
6867 /* 6643 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6868 /* 6647 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
6869 /* 6651 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/6,
6870 /* 6654 */ // MIs[1] x
6871 /* 6654 */ // No operand predicates
6872 /* 6654 */ // MIs[1] y
6873 /* 6654 */ // No operand predicates
6874 /* 6654 */ // MIs[1] z
6875 /* 6654 */ // No operand predicates
6876 /* 6654 */ // MIs[1] a
6877 /* 6654 */ // No operand predicates
6878 /* 6654 */ // MIs[1] b
6879 /* 6654 */ // No operand predicates
6880 /* 6654 */ // MIs[0] idx
6881 /* 6654 */ // No operand predicates
6882 /* 6654 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6883 /* 6656 */ // Combiner Rule #31: extract_vector_element_build_vector_trunc5
6884 /* 6656 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
6885 /* 6659 */ // Label 444: @6659
6886 /* 6659 */ GIM_Try, /*On fail goto*//*Label 445*/ GIMT_Encode4(6683), // Rule ID 32 //
6887 /* 6664 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
6888 /* 6667 */ // MIs[0] root
6889 /* 6667 */ // No operand predicates
6890 /* 6667 */ // MIs[0] src
6891 /* 6667 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6892 /* 6671 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
6893 /* 6675 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/5,
6894 /* 6678 */ // MIs[1] x
6895 /* 6678 */ // No operand predicates
6896 /* 6678 */ // MIs[1] y
6897 /* 6678 */ // No operand predicates
6898 /* 6678 */ // MIs[1] z
6899 /* 6678 */ // No operand predicates
6900 /* 6678 */ // MIs[1] a
6901 /* 6678 */ // No operand predicates
6902 /* 6678 */ // MIs[0] idx
6903 /* 6678 */ // No operand predicates
6904 /* 6678 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6905 /* 6680 */ // Combiner Rule #30: extract_vector_element_build_vector_trunc4
6906 /* 6680 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
6907 /* 6683 */ // Label 445: @6683
6908 /* 6683 */ GIM_Try, /*On fail goto*//*Label 446*/ GIMT_Encode4(6707), // Rule ID 31 //
6909 /* 6688 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
6910 /* 6691 */ // MIs[0] root
6911 /* 6691 */ // No operand predicates
6912 /* 6691 */ // MIs[0] src
6913 /* 6691 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6914 /* 6695 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
6915 /* 6699 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
6916 /* 6702 */ // MIs[1] x
6917 /* 6702 */ // No operand predicates
6918 /* 6702 */ // MIs[1] y
6919 /* 6702 */ // No operand predicates
6920 /* 6702 */ // MIs[1] z
6921 /* 6702 */ // No operand predicates
6922 /* 6702 */ // MIs[0] idx
6923 /* 6702 */ // No operand predicates
6924 /* 6702 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6925 /* 6704 */ // Combiner Rule #29: extract_vector_element_build_vector_trunc3
6926 /* 6704 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
6927 /* 6707 */ // Label 446: @6707
6928 /* 6707 */ GIM_Try, /*On fail goto*//*Label 447*/ GIMT_Encode4(6741), // Rule ID 27 //
6929 /* 6712 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
6930 /* 6715 */ // MIs[0] root
6931 /* 6715 */ // No operand predicates
6932 /* 6715 */ // MIs[0] src
6933 /* 6715 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6934 /* 6719 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
6935 /* 6723 */ // MIs[1] x
6936 /* 6723 */ // No operand predicates
6937 /* 6723 */ // MIs[1] value
6938 /* 6723 */ // No operand predicates
6939 /* 6723 */ // MIs[1] idx
6940 /* 6723 */ // No operand predicates
6941 /* 6723 */ // MIs[0] idx
6942 /* 6723 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
6943 /* 6728 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6944 /* 6733 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6945 /* 6735 */ // Combiner Rule #25: extract_vector_element_not_const
6946 /* 6735 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6947 /* 6740 */ GIR_EraseRootFromParent_Done,
6948 /* 6741 */ // Label 447: @6741
6949 /* 6741 */ GIM_Try, /*On fail goto*//*Label 448*/ GIMT_Encode4(6762), // Rule ID 28 //
6950 /* 6746 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
6951 /* 6749 */ // MIs[0] root
6952 /* 6749 */ // No operand predicates
6953 /* 6749 */ // MIs[0] src
6954 /* 6749 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6955 /* 6753 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
6956 /* 6757 */ // MIs[1] x
6957 /* 6757 */ // No operand predicates
6958 /* 6757 */ // MIs[1] value
6959 /* 6757 */ // No operand predicates
6960 /* 6757 */ // MIs[1] idx2
6961 /* 6757 */ // No operand predicates
6962 /* 6757 */ // MIs[0] idx1
6963 /* 6757 */ // No operand predicates
6964 /* 6757 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6965 /* 6759 */ // Combiner Rule #26: extract_vector_element_different_indices
6966 /* 6759 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
6967 /* 6762 */ // Label 448: @6762
6968 /* 6762 */ GIM_Try, /*On fail goto*//*Label 449*/ GIMT_Encode4(6791), // Rule ID 37 //
6969 /* 6767 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
6970 /* 6770 */ // MIs[0] root
6971 /* 6770 */ // No operand predicates
6972 /* 6770 */ // MIs[0] src
6973 /* 6770 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6974 /* 6774 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHUFFLE_VECTOR),
6975 /* 6778 */ // MIs[1] src1
6976 /* 6778 */ // No operand predicates
6977 /* 6778 */ // MIs[1] src2
6978 /* 6778 */ // No operand predicates
6979 /* 6778 */ // MIs[1] mask
6980 /* 6778 */ // No operand predicates
6981 /* 6778 */ // MIs[0] idx
6982 /* 6778 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6983 /* 6782 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6984 /* 6786 */ // MIs[2] imm
6985 /* 6786 */ // No operand predicates
6986 /* 6786 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6987 /* 6788 */ // Combiner Rule #35: extract_vector_element_shuffle_vector
6988 /* 6788 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
6989 /* 6791 */ // Label 449: @6791
6990 /* 6791 */ GIM_Try, /*On fail goto*//*Label 450*/ GIMT_Encode4(6815), // Rule ID 30 //
6991 /* 6796 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
6992 /* 6799 */ // MIs[0] root
6993 /* 6799 */ // No operand predicates
6994 /* 6799 */ // MIs[0] src
6995 /* 6799 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6996 /* 6803 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
6997 /* 6807 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
6998 /* 6810 */ // MIs[1] x
6999 /* 6810 */ // No operand predicates
7000 /* 6810 */ // MIs[1] y
7001 /* 6810 */ // No operand predicates
7002 /* 6810 */ // MIs[0] idx
7003 /* 6810 */ // No operand predicates
7004 /* 6810 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7005 /* 6812 */ // Combiner Rule #28: extract_vector_element_build_vector_trunc2
7006 /* 6812 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
7007 /* 6815 */ // Label 450: @6815
7008 /* 6815 */ GIM_Try, /*On fail goto*//*Label 451*/ GIMT_Encode4(6847), // Rule ID 29 //
7009 /* 6820 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
7010 /* 6823 */ // MIs[0] root
7011 /* 6823 */ // No operand predicates
7012 /* 6823 */ // MIs[0] src
7013 /* 6823 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7014 /* 6827 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
7015 /* 6831 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
7016 /* 6834 */ // MIs[1] unused
7017 /* 6834 */ // No operand predicates
7018 /* 6834 */ // MIs[0] idx
7019 /* 6834 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7020 /* 6838 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7021 /* 6842 */ // MIs[2] imm
7022 /* 6842 */ // No operand predicates
7023 /* 6842 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7024 /* 6844 */ // Combiner Rule #27: extract_vector_element_build_vector
7025 /* 6844 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
7026 /* 6847 */ // Label 451: @6847
7027 /* 6847 */ GIM_Try, /*On fail goto*//*Label 452*/ GIMT_Encode4(6871), // Rule ID 21 //
7028 /* 6852 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
7029 /* 6855 */ // MIs[0] root
7030 /* 6855 */ // No operand predicates
7031 /* 6855 */ // MIs[0] vector
7032 /* 6855 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7033 /* 6859 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7034 /* 6863 */ // MIs[0] idx
7035 /* 6863 */ // No operand predicates
7036 /* 6863 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7037 /* 6865 */ // Combiner Rule #19: match_extract_of_element_undef_vector
7038 /* 6865 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7039 /* 6868 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7040 /* 6870 */ GIR_EraseRootFromParent_Done,
7041 /* 6871 */ // Label 452: @6871
7042 /* 6871 */ GIM_Try, /*On fail goto*//*Label 453*/ GIMT_Encode4(6895), // Rule ID 22 //
7043 /* 6876 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
7044 /* 6879 */ // MIs[0] root
7045 /* 6879 */ // No operand predicates
7046 /* 6879 */ // MIs[0] vector
7047 /* 6879 */ // No operand predicates
7048 /* 6879 */ // MIs[0] idx
7049 /* 6879 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7050 /* 6883 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7051 /* 6887 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7052 /* 6889 */ // Combiner Rule #20: match_extract_of_element_undef_index
7053 /* 6889 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7054 /* 6892 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7055 /* 6894 */ GIR_EraseRootFromParent_Done,
7056 /* 6895 */ // Label 453: @6895
7057 /* 6895 */ GIM_Reject,
7058 /* 6896 */ // Label 92: @6896
7059 /* 6896 */ GIM_Try, /*On fail goto*//*Label 454*/ GIMT_Encode4(6907), // Rule ID 97 //
7060 /* 6901 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
7061 /* 6904 */ // Combiner Rule #79: propagate_undef_all_ops; wip_match_opcode 'G_SHUFFLE_VECTOR'
7062 /* 6904 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
7063 /* 6907 */ // Label 454: @6907
7064 /* 6907 */ GIM_Try, /*On fail goto*//*Label 455*/ GIMT_Encode4(6918), // Rule ID 99 //
7065 /* 6912 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
7066 /* 6915 */ // Combiner Rule #80: propagate_undef_shuffle_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
7067 /* 6915 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner41),
7068 /* 6918 */ // Label 455: @6918
7069 /* 6918 */ GIM_Try, /*On fail goto*//*Label 456*/ GIMT_Encode4(6929), // Rule ID 345 //
7070 /* 6923 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7071 /* 6926 */ // Combiner Rule #200: combine_shuffle_concat; wip_match_opcode 'G_SHUFFLE_VECTOR'
7072 /* 6926 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner136),
7073 /* 6929 */ // Label 456: @6929
7074 /* 6929 */ GIM_Try, /*On fail goto*//*Label 457*/ GIMT_Encode4(6940), // Rule ID 347 //
7075 /* 6934 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule202Enabled),
7076 /* 6937 */ // Combiner Rule #202: combine_shuffle_disjoint_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
7077 /* 6937 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner138),
7078 /* 6940 */ // Label 457: @6940
7079 /* 6940 */ GIM_Try, /*On fail goto*//*Label 458*/ GIMT_Encode4(6961), // Rule ID 346 //
7080 /* 6945 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
7081 /* 6948 */ // MIs[0] root
7082 /* 6948 */ // No operand predicates
7083 /* 6948 */ // MIs[0] src1
7084 /* 6948 */ // No operand predicates
7085 /* 6948 */ // MIs[0] undef
7086 /* 6948 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7087 /* 6952 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7088 /* 6956 */ // MIs[0] mask
7089 /* 6956 */ // No operand predicates
7090 /* 6956 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7091 /* 6958 */ // Combiner Rule #201: combine_shuffle_undef_rhs
7092 /* 6958 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner137),
7093 /* 6961 */ // Label 458: @6961
7094 /* 6961 */ GIM_Try, /*On fail goto*//*Label 459*/ GIMT_Encode4(6972), // Rule ID 365 //
7095 /* 6966 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule218Enabled),
7096 /* 6969 */ // MIs[0] dst
7097 /* 6969 */ // No operand predicates
7098 /* 6969 */ // MIs[0] src1
7099 /* 6969 */ // No operand predicates
7100 /* 6969 */ // MIs[0] src2
7101 /* 6969 */ // No operand predicates
7102 /* 6969 */ // MIs[0] mask
7103 /* 6969 */ // No operand predicates
7104 /* 6969 */ // Combiner Rule #218: combine_shuffle_vector_to_build_vector
7105 /* 6969 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner154),
7106 /* 6972 */ // Label 459: @6972
7107 /* 6972 */ GIM_Reject,
7108 /* 6973 */ // Label 93: @6973
7109 /* 6973 */ GIM_Try, /*On fail goto*//*Label 460*/ GIMT_Encode4(7017), // Rule ID 223 //
7110 /* 6978 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
7111 /* 6981 */ // MIs[0] d
7112 /* 6981 */ // No operand predicates
7113 /* 6981 */ // MIs[0] src
7114 /* 6981 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7115 /* 6985 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
7116 /* 6989 */ // MIs[1] rev
7117 /* 6989 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7118 /* 6993 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
7119 /* 6997 */ // MIs[2] val
7120 /* 6997 */ // No operand predicates
7121 /* 6997 */ // MIs[1] amt
7122 /* 6997 */ // No operand predicates
7123 /* 6997 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
7124 /* 7001 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7125 /* 7003 */ // Combiner Rule #160: bitreverse_lshr
7126 /* 7003 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
7127 /* 7006 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
7128 /* 7008 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
7129 /* 7012 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
7130 /* 7016 */ GIR_EraseRootFromParent_Done,
7131 /* 7017 */ // Label 460: @7017
7132 /* 7017 */ GIM_Try, /*On fail goto*//*Label 461*/ GIMT_Encode4(7061), // Rule ID 222 //
7133 /* 7022 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
7134 /* 7025 */ // MIs[0] d
7135 /* 7025 */ // No operand predicates
7136 /* 7025 */ // MIs[0] src
7137 /* 7025 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7138 /* 7029 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
7139 /* 7033 */ // MIs[1] rev
7140 /* 7033 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7141 /* 7037 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
7142 /* 7041 */ // MIs[2] val
7143 /* 7041 */ // No operand predicates
7144 /* 7041 */ // MIs[1] amt
7145 /* 7041 */ // No operand predicates
7146 /* 7041 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner8),
7147 /* 7045 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7148 /* 7047 */ // Combiner Rule #159: bitreverse_shl
7149 /* 7047 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_LSHR),
7150 /* 7050 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
7151 /* 7052 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
7152 /* 7056 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
7153 /* 7060 */ GIR_EraseRootFromParent_Done,
7154 /* 7061 */ // Label 461: @7061
7155 /* 7061 */ GIM_Reject,
7156 /* 7062 */ // Label 94: @7062
7157 /* 7062 */ GIM_Try, /*On fail goto*//*Label 462*/ GIMT_Encode4(7083), // Rule ID 178 //
7158 /* 7067 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled),
7159 /* 7070 */ // MIs[0] dst
7160 /* 7070 */ // No operand predicates
7161 /* 7070 */ // MIs[0] src0
7162 /* 7070 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7163 /* 7074 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7164 /* 7078 */ // MIs[1] cst
7165 /* 7078 */ // No operand predicates
7166 /* 7078 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7167 /* 7080 */ // Combiner Rule #136: constant_fold_fsqrt
7168 /* 7080 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
7169 /* 7083 */ // Label 462: @7083
7170 /* 7083 */ GIM_Reject,
7171 /* 7084 */ // Label 95: @7084
7172 /* 7084 */ GIM_Reject,
7173 /* 7085 */ }; // Size: 7085 bytes
7174 return MatchTable0;
7175}
7176#undef GIMT_Encode2
7177#undef GIMT_Encode4
7178#undef GIMT_Encode8
7179
7180#endif // ifdef GET_GICOMBINER_IMPL
7181
7182#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
7183AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
7184AvailableFunctionFeatures()
7185#endif // ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
7186#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
7187, State(0),
7188ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
7189#endif // ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
7190
7191