1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* RISCVPreLegalizerCombinerImpl Combiner Match Table *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* *|
7\*===----------------------------------------------------------------------===*/
8
9#ifdef GET_GICOMBINER_DEPS
10
11#include "llvm/ADT/SparseBitVector.h"
12namespace llvm {
13
14extern cl::OptionCategory GICombinerOptionCategory;
15
16} // namespace llvm
17
18#endif // GET_GICOMBINER_DEPS
19
20#ifdef GET_GICOMBINER_TYPES
21
22struct RISCVPreLegalizerCombinerImplRuleConfig {
23 SparseBitVector<> DisabledRules;
24
25 bool isRuleEnabled(unsigned RuleID) const;
26 bool parseCommandLineOption();
27 bool setRuleEnabled(StringRef RuleIdentifier);
28 bool setRuleDisabled(StringRef RuleIdentifier);
29};
30
31static std::optional<uint64_t> getRuleIdxForIdentifier(StringRef RuleIdentifier) {
32 uint64_t I;
33 // getAtInteger(...) returns false on success
34 bool Parsed = !RuleIdentifier.getAsInteger(0, I);
35 if (Parsed)
36 return I;
37
38#ifndef NDEBUG
39 switch (RuleIdentifier.size()) {
40 default: break;
41 case 9: // 6 strings to match.
42 switch (RuleIdentifier[0]) {
43 default: break;
44 case 'a': // 1 string to match.
45 if (memcmp(RuleIdentifier.data()+1, "dd_shift", 8) != 0)
46 break;
47 return 243; // "add_shift"
48 case 'c': // 1 string to match.
49 if (memcmp(RuleIdentifier.data()+1, "opy_prop", 8) != 0)
50 break;
51 return 19; // "copy_prop"
52 case 'm': // 3 strings to match.
53 switch (RuleIdentifier[1]) {
54 default: break;
55 case 'a': // 1 string to match.
56 if (memcmp(RuleIdentifier.data()+2, "tch_ors", 7) != 0)
57 break;
58 return 214; // "match_ors"
59 case 'u': // 2 strings to match.
60 if (memcmp(RuleIdentifier.data()+2, "lo_by_", 6) != 0)
61 break;
62 switch (RuleIdentifier[8]) {
63 default: break;
64 case '0': // 1 string to match.
65 return 160; // "mulo_by_0"
66 case '2': // 1 string to match.
67 return 159; // "mulo_by_2"
68 }
69 break;
70 }
71 break;
72 case 'n': // 1 string to match.
73 if (memcmp(RuleIdentifier.data()+1, "neg_zext", 8) != 0)
74 break;
75 return 219; // "nneg_zext"
76 }
77 break;
78 case 10: // 7 strings to match.
79 switch (RuleIdentifier[0]) {
80 default: break;
81 case 'i': // 1 string to match.
82 if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i", 9) != 0)
83 break;
84 return 96; // "i2p_to_p2i"
85 case 'm': // 2 strings to match.
86 switch (RuleIdentifier[1]) {
87 default: break;
88 case 'a': // 1 string to match.
89 if (memcmp(RuleIdentifier.data()+2, "tch_ands", 8) != 0)
90 break;
91 return 213; // "match_ands"
92 case 'u': // 1 string to match.
93 if (memcmp(RuleIdentifier.data()+2, "l_to_shl", 8) != 0)
94 break;
95 return 20; // "mul_to_shl"
96 }
97 break;
98 case 'p': // 1 string to match.
99 if (memcmp(RuleIdentifier.data()+1, "2i_to_i2p", 9) != 0)
100 break;
101 return 95; // "p2i_to_i2p"
102 case 's': // 2 strings to match.
103 switch (RuleIdentifier[1]) {
104 default: break;
105 case 'e': // 1 string to match.
106 if (memcmp(RuleIdentifier.data()+2, "xt_trunc", 8) != 0)
107 break;
108 return 217; // "sext_trunc"
109 case 'u': // 1 string to match.
110 if (memcmp(RuleIdentifier.data()+2, "b_to_add", 8) != 0)
111 break;
112 return 21; // "sub_to_add"
113 }
114 break;
115 case 'z': // 1 string to match.
116 if (memcmp(RuleIdentifier.data()+1, "ext_trunc", 9) != 0)
117 break;
118 return 218; // "zext_trunc"
119 }
120 break;
121 case 11: // 8 strings to match.
122 switch (RuleIdentifier[0]) {
123 default: break;
124 case 'a': // 1 string to match.
125 if (memcmp(RuleIdentifier.data()+1, "dd_sub_reg", 10) != 0)
126 break;
127 return 101; // "add_sub_reg"
128 case 'm': // 1 string to match.
129 if (memcmp(RuleIdentifier.data()+1, "atch_addos", 10) != 0)
130 break;
131 return 234; // "match_addos"
132 case 's': // 1 string to match.
133 if (memcmp(RuleIdentifier.data()+1, "ub_add_reg", 10) != 0)
134 break;
135 return 208; // "sub_add_reg"
136 case 't': // 4 strings to match.
137 if (memcmp(RuleIdentifier.data()+1, "runc_", 5) != 0)
138 break;
139 switch (RuleIdentifier[6]) {
140 default: break;
141 case 's': // 3 strings to match.
142 switch (RuleIdentifier[7]) {
143 default: break;
144 case 'h': // 1 string to match.
145 if (memcmp(RuleIdentifier.data()+8, "ift", 3) != 0)
146 break;
147 return 139; // "trunc_shift"
148 case 's': // 2 strings to match.
149 if (memcmp(RuleIdentifier.data()+8, "at", 2) != 0)
150 break;
151 switch (RuleIdentifier[10]) {
152 default: break;
153 case 's': // 1 string to match.
154 return 236; // "trunc_ssats"
155 case 'u': // 1 string to match.
156 return 237; // "trunc_ssatu"
157 }
158 break;
159 }
160 break;
161 case 'u': // 1 string to match.
162 if (memcmp(RuleIdentifier.data()+7, "satu", 4) != 0)
163 break;
164 return 238; // "trunc_usatu"
165 }
166 break;
167 case 'u': // 1 string to match.
168 if (memcmp(RuleIdentifier.data()+1, "nmerge_cst", 10) != 0)
169 break;
170 return 227; // "unmerge_cst"
171 }
172 break;
173 case 12: // 12 strings to match.
174 switch (RuleIdentifier[0]) {
175 default: break;
176 case 'A': // 1 string to match.
177 if (memcmp(RuleIdentifier.data()+1, "PlusBMinusB", 11) != 0)
178 break;
179 return 4; // "APlusBMinusB"
180 case 'B': // 1 string to match.
181 if (memcmp(RuleIdentifier.data()+1, "MinusAPlusA", 11) != 0)
182 break;
183 return 5; // "BMinusAPlusA"
184 case 'a': // 1 string to match.
185 if (memcmp(RuleIdentifier.data()+1, "dde_to_addo", 11) != 0)
186 break;
187 return 161; // "adde_to_addo"
188 case 'c': // 1 string to match.
189 if (memcmp(RuleIdentifier.data()+1, "tlz_to_ctls", 11) != 0)
190 break;
191 return 241; // "ctlz_to_ctls"
192 case 'f': // 1 string to match.
193 if (memcmp(RuleIdentifier.data()+1, "sub_to_fneg", 11) != 0)
194 break;
195 return 210; // "fsub_to_fneg"
196 case 'm': // 1 string to match.
197 if (memcmp(RuleIdentifier.data()+1, "ulh_to_lshr", 11) != 0)
198 break;
199 return 189; // "mulh_to_lshr"
200 case 'n': // 1 string to match.
201 if (memcmp(RuleIdentifier.data()+1, "ot_cmp_fold", 11) != 0)
202 break;
203 return 140; // "not_cmp_fold"
204 case 'r': // 1 string to match.
205 if (memcmp(RuleIdentifier.data()+1, "edundant_or", 11) != 0)
206 break;
207 return 135; // "redundant_or"
208 case 's': // 2 strings to match.
209 switch (RuleIdentifier[1]) {
210 default: break;
211 case 'd': // 1 string to match.
212 if (memcmp(RuleIdentifier.data()+2, "iv_by_pow2", 10) != 0)
213 break;
214 return 204; // "sdiv_by_pow2"
215 case 'e': // 1 string to match.
216 if (memcmp(RuleIdentifier.data()+2, "xt_of_sext", 10) != 0)
217 break;
218 return 54; // "sext_of_sext"
219 }
220 break;
221 case 'u': // 1 string to match.
222 if (memcmp(RuleIdentifier.data()+1, "div_by_pow2", 11) != 0)
223 break;
224 return 203; // "udiv_by_pow2"
225 case 'z': // 1 string to match.
226 if (memcmp(RuleIdentifier.data()+1, "ext_of_zext", 11) != 0)
227 break;
228 return 52; // "zext_of_zext"
229 }
230 break;
231 case 13: // 19 strings to match.
232 switch (RuleIdentifier[0]) {
233 default: break;
234 case 'A': // 2 strings to match.
235 if (memcmp(RuleIdentifier.data()+1, "MinusBMinus", 11) != 0)
236 break;
237 switch (RuleIdentifier[12]) {
238 default: break;
239 case 'A': // 1 string to match.
240 return 12; // "AMinusBMinusA"
241 case 'C': // 1 string to match.
242 return 9; // "AMinusBMinusC"
243 }
244 break;
245 case 'a': // 1 string to match.
246 if (memcmp(RuleIdentifier.data()+1, "dd_of_vscale", 12) != 0)
247 break;
248 return 43; // "add_of_vscale"
249 case 'c': // 1 string to match.
250 if (memcmp(RuleIdentifier.data()+1, "ommute_shift", 12) != 0)
251 break;
252 return 179; // "commute_shift"
253 case 'l': // 1 string to match.
254 if (memcmp(RuleIdentifier.data()+1, "oad_and_mask", 12) != 0)
255 break;
256 return 75; // "load_and_mask"
257 case 'm': // 3 strings to match.
258 switch (RuleIdentifier[1]) {
259 default: break;
260 case 'a': // 1 string to match.
261 if (memcmp(RuleIdentifier.data()+2, "tch_selects", 11) != 0)
262 break;
263 return 132; // "match_selects"
264 case 'e': // 1 string to match.
265 if (memcmp(RuleIdentifier.data()+2, "rge_unmerge", 11) != 0)
266 break;
267 return 226; // "merge_unmerge"
268 case 'u': // 1 string to match.
269 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
270 break;
271 return 44; // "mul_of_vscale"
272 }
273 break;
274 case 'r': // 1 string to match.
275 if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
276 break;
277 return 133; // "redundant_and"
278 case 's': // 6 strings to match.
279 switch (RuleIdentifier[1]) {
280 default: break;
281 case 'a': // 1 string to match.
282 if (memcmp(RuleIdentifier.data()+2, "me_val_zero", 11) != 0)
283 break;
284 return 92; // "same_val_zero"
285 case 'd': // 1 string to match.
286 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
287 break;
288 return 206; // "sdiv_by_const"
289 case 'h': // 1 string to match.
290 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
291 break;
292 return 45; // "shl_of_vscale"
293 case 'r': // 1 string to match.
294 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
295 break;
296 return 202; // "srem_by_const"
297 case 'u': // 2 strings to match.
298 if (memcmp(RuleIdentifier.data()+2, "b_", 2) != 0)
299 break;
300 switch (RuleIdentifier[4]) {
301 default: break;
302 case 'm': // 1 string to match.
303 if (memcmp(RuleIdentifier.data()+5, "inus_one", 8) != 0)
304 break;
305 return 246; // "sub_minus_one"
306 case 'o': // 1 string to match.
307 if (memcmp(RuleIdentifier.data()+5, "f_vscale", 8) != 0)
308 break;
309 return 46; // "sub_of_vscale"
310 }
311 break;
312 }
313 break;
314 case 'u': // 4 strings to match.
315 switch (RuleIdentifier[1]) {
316 default: break;
317 case 'd': // 1 string to match.
318 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
319 break;
320 return 205; // "udiv_by_const"
321 case 'n': // 2 strings to match.
322 if (memcmp(RuleIdentifier.data()+2, "merge_", 6) != 0)
323 break;
324 switch (RuleIdentifier[8]) {
325 default: break;
326 case 'm': // 1 string to match.
327 if (memcmp(RuleIdentifier.data()+9, "erge", 4) != 0)
328 break;
329 return 225; // "unmerge_merge"
330 case 'u': // 1 string to match.
331 if (memcmp(RuleIdentifier.data()+9, "ndef", 4) != 0)
332 break;
333 return 228; // "unmerge_undef"
334 }
335 break;
336 case 'r': // 1 string to match.
337 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
338 break;
339 return 201; // "urem_by_const"
340 }
341 break;
342 }
343 break;
344 case 14: // 17 strings to match.
345 switch (RuleIdentifier[0]) {
346 default: break;
347 case 'A': // 2 strings to match.
348 switch (RuleIdentifier[1]) {
349 default: break;
350 case 'M': // 1 string to match.
351 if (memcmp(RuleIdentifier.data()+2, "inusC1PlusC2", 12) != 0)
352 break;
353 return 18; // "AMinusC1PlusC2"
354 case 'P': // 1 string to match.
355 if (memcmp(RuleIdentifier.data()+2, "lusC1MinusC2", 12) != 0)
356 break;
357 return 14; // "APlusC1MinusC2"
358 }
359 break;
360 case 'C': // 1 string to match.
361 if (memcmp(RuleIdentifier.data()+1, "2MinusAPlusC1", 13) != 0)
362 break;
363 return 15; // "C2MinusAPlusC1"
364 case 'N': // 1 string to match.
365 if (memcmp(RuleIdentifier.data()+1, "otAPlusNegOne", 13) != 0)
366 break;
367 return 13; // "NotAPlusNegOne"
368 case 'a': // 2 strings to match.
369 if (memcmp(RuleIdentifier.data()+1, "nyext_of_", 9) != 0)
370 break;
371 switch (RuleIdentifier[10]) {
372 default: break;
373 case 's': // 1 string to match.
374 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
375 break;
376 return 58; // "anyext_of_sext"
377 case 'z': // 1 string to match.
378 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
379 break;
380 return 57; // "anyext_of_zext"
381 }
382 break;
383 case 'b': // 3 strings to match.
384 if (RuleIdentifier[1] != 'i')
385 break;
386 switch (RuleIdentifier[2]) {
387 default: break;
388 case 'n': // 2 strings to match.
389 if (memcmp(RuleIdentifier.data()+3, "op_", 3) != 0)
390 break;
391 switch (RuleIdentifier[6]) {
392 default: break;
393 case 's': // 1 string to match.
394 if (memcmp(RuleIdentifier.data()+7, "ame_val", 7) != 0)
395 break;
396 return 91; // "binop_same_val"
397 case 'w': // 1 string to match.
398 if (memcmp(RuleIdentifier.data()+7, "ith_neg", 7) != 0)
399 break;
400 return 245; // "binop_with_neg"
401 }
402 break;
403 case 't': // 1 string to match.
404 if (memcmp(RuleIdentifier.data()+3, "reverse_shl", 11) != 0)
405 break;
406 return 177; // "bitreverse_shl"
407 }
408 break;
409 case 'f': // 2 strings to match.
410 switch (RuleIdentifier[1]) {
411 default: break;
412 case 'a': // 1 string to match.
413 if (memcmp(RuleIdentifier.data()+2, "bs_fneg_fold", 12) != 0)
414 break;
415 return 188; // "fabs_fneg_fold"
416 case 'n': // 1 string to match.
417 if (memcmp(RuleIdentifier.data()+2, "eg_fneg_fold", 12) != 0)
418 break;
419 return 98; // "fneg_fneg_fold"
420 }
421 break;
422 case 'm': // 1 string to match.
423 if (memcmp(RuleIdentifier.data()+1, "ul_by_neg_one", 13) != 0)
424 break;
425 return 23; // "mul_by_neg_one"
426 case 'r': // 1 string to match.
427 if (memcmp(RuleIdentifier.data()+1, "eassoc_ptradd", 13) != 0)
428 break;
429 return 114; // "reassoc_ptradd"
430 case 's': // 3 strings to match.
431 switch (RuleIdentifier[1]) {
432 default: break;
433 case 'e': // 2 strings to match.
434 switch (RuleIdentifier[2]) {
435 default: break;
436 case 'l': // 1 string to match.
437 if (memcmp(RuleIdentifier.data()+3, "ect_of_zext", 11) != 0)
438 break;
439 return 60; // "select_of_zext"
440 case 'x': // 1 string to match.
441 if (memcmp(RuleIdentifier.data()+3, "t_of_anyext", 11) != 0)
442 break;
443 return 55; // "sext_of_anyext"
444 }
445 break;
446 case 'h': // 1 string to match.
447 if (memcmp(RuleIdentifier.data()+2, "ifts_too_big", 12) != 0)
448 break;
449 return 113; // "shifts_too_big"
450 }
451 break;
452 case 'z': // 1 string to match.
453 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
454 break;
455 return 53; // "zext_of_anyext"
456 }
457 break;
458 case 15: // 12 strings to match.
459 switch (RuleIdentifier[0]) {
460 default: break;
461 case 'A': // 2 strings to match.
462 switch (RuleIdentifier[1]) {
463 default: break;
464 case 'M': // 1 string to match.
465 if (memcmp(RuleIdentifier.data()+2, "inusC1MinusC2", 13) != 0)
466 break;
467 return 16; // "AMinusC1MinusC2"
468 case 'P': // 1 string to match.
469 if (memcmp(RuleIdentifier.data()+2, "lusZeroMinusB", 13) != 0)
470 break;
471 return 3; // "APlusZeroMinusB"
472 }
473 break;
474 case 'C': // 1 string to match.
475 if (memcmp(RuleIdentifier.data()+1, "1Minus2MinusC2", 14) != 0)
476 break;
477 return 17; // "C1Minus2MinusC2"
478 case 'Z': // 1 string to match.
479 if (memcmp(RuleIdentifier.data()+1, "eroMinusAPlusB", 14) != 0)
480 break;
481 return 2; // "ZeroMinusAPlusB"
482 case 'b': // 1 string to match.
483 if (memcmp(RuleIdentifier.data()+1, "itreverse_lshr", 14) != 0)
484 break;
485 return 178; // "bitreverse_lshr"
486 case 'e': // 1 string to match.
487 if (memcmp(RuleIdentifier.data()+1, "xtending_loads", 14) != 0)
488 break;
489 return 74; // "extending_loads"
490 case 'i': // 1 string to match.
491 if (memcmp(RuleIdentifier.data()+1, "dempotent_prop", 14) != 0)
492 break;
493 return 24; // "idempotent_prop"
494 case 'l': // 1 string to match.
495 if (memcmp(RuleIdentifier.data()+1, "oad_or_combine", 14) != 0)
496 break;
497 return 168; // "load_or_combine"
498 case 'n': // 1 string to match.
499 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_or", 14) != 0)
500 break;
501 return 68; // "narrow_binop_or"
502 case 'o': // 1 string to match.
503 if (memcmp(RuleIdentifier.data()+1, "verlapping_and", 14) != 0)
504 break;
505 return 158; // "overlapping_and"
506 case 's': // 1 string to match.
507 if (memcmp(RuleIdentifier.data()+1, "elect_same_val", 14) != 0)
508 break;
509 return 89; // "select_same_val"
510 case 'z': // 1 string to match.
511 if (memcmp(RuleIdentifier.data()+1, "ext_trunc_fold", 14) != 0)
512 break;
513 return 137; // "zext_trunc_fold"
514 }
515 break;
516 case 16: // 14 strings to match.
517 switch (RuleIdentifier[0]) {
518 default: break;
519 case 'A': // 1 string to match.
520 if (memcmp(RuleIdentifier.data()+1, "MinusZeroMinusB", 15) != 0)
521 break;
522 return 11; // "AMinusZeroMinusB"
523 case 'a': // 1 string to match.
524 if (memcmp(RuleIdentifier.data()+1, "nyext_of_anyext", 15) != 0)
525 break;
526 return 56; // "anyext_of_anyext"
527 case 'n': // 5 strings to match.
528 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_", 12) != 0)
529 break;
530 switch (RuleIdentifier[13]) {
531 default: break;
532 case 'a': // 2 strings to match.
533 switch (RuleIdentifier[14]) {
534 default: break;
535 case 'd': // 1 string to match.
536 if (RuleIdentifier[15] != 'd')
537 break;
538 return 64; // "narrow_binop_add"
539 case 'n': // 1 string to match.
540 if (RuleIdentifier[15] != 'd')
541 break;
542 return 67; // "narrow_binop_and"
543 }
544 break;
545 case 'm': // 1 string to match.
546 if (memcmp(RuleIdentifier.data()+14, "ul", 2) != 0)
547 break;
548 return 66; // "narrow_binop_mul"
549 case 's': // 1 string to match.
550 if (memcmp(RuleIdentifier.data()+14, "ub", 2) != 0)
551 break;
552 return 65; // "narrow_binop_sub"
553 case 'x': // 1 string to match.
554 if (memcmp(RuleIdentifier.data()+14, "or", 2) != 0)
555 break;
556 return 69; // "narrow_binop_xor"
557 }
558 break;
559 case 's': // 4 strings to match.
560 switch (RuleIdentifier[1]) {
561 default: break;
562 case 'e': // 3 strings to match.
563 if (memcmp(RuleIdentifier.data()+2, "lect_", 5) != 0)
564 break;
565 switch (RuleIdentifier[7]) {
566 default: break;
567 case 'o': // 1 string to match.
568 if (memcmp(RuleIdentifier.data()+8, "f_anyext", 8) != 0)
569 break;
570 return 61; // "select_of_anyext"
571 case 't': // 1 string to match.
572 if (memcmp(RuleIdentifier.data()+8, "o_minmax", 8) != 0)
573 break;
574 return 209; // "select_to_minmax"
575 case 'u': // 1 string to match.
576 if (memcmp(RuleIdentifier.data()+8, "ndef_cmp", 8) != 0)
577 break;
578 return 129; // "select_undef_cmp"
579 }
580 break;
581 case 'u': // 1 string to match.
582 if (memcmp(RuleIdentifier.data()+2, "b_one_from_sub", 14) != 0)
583 break;
584 return 244; // "sub_one_from_sub"
585 }
586 break;
587 case 't': // 2 strings to match.
588 if (memcmp(RuleIdentifier.data()+1, "runcate_of_", 11) != 0)
589 break;
590 switch (RuleIdentifier[12]) {
591 default: break;
592 case 's': // 1 string to match.
593 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
594 break;
595 return 50; // "truncate_of_sext"
596 case 'z': // 1 string to match.
597 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
598 break;
599 return 49; // "truncate_of_zext"
600 }
601 break;
602 case 'u': // 1 string to match.
603 if (memcmp(RuleIdentifier.data()+1, "ndef_to_fp_zero", 15) != 0)
604 break;
605 return 77; // "undef_to_fp_zero"
606 }
607 break;
608 case 17: // 14 strings to match.
609 switch (RuleIdentifier[0]) {
610 default: break;
611 case 'A': // 2 strings to match.
612 if (memcmp(RuleIdentifier.data()+1, "PlusBMinus", 10) != 0)
613 break;
614 switch (RuleIdentifier[11]) {
615 default: break;
616 case 'A': // 1 string to match.
617 if (memcmp(RuleIdentifier.data()+12, "plusC", 5) != 0)
618 break;
619 return 8; // "APlusBMinusAplusC"
620 case 'C': // 1 string to match.
621 if (memcmp(RuleIdentifier.data()+12, "PlusA", 5) != 0)
622 break;
623 return 10; // "APlusBMinusCPlusA"
624 }
625 break;
626 case 'a': // 2 strings to match.
627 switch (RuleIdentifier[1]) {
628 default: break;
629 case 'd': // 1 string to match.
630 if (memcmp(RuleIdentifier.data()+2, "d_p2i_to_ptradd", 15) != 0)
631 break;
632 return 22; // "add_p2i_to_ptradd"
633 case 'n': // 1 string to match.
634 if (memcmp(RuleIdentifier.data()+2, "yext_trunc_fold", 15) != 0)
635 break;
636 return 97; // "anyext_trunc_fold"
637 }
638 break;
639 case 'c': // 3 strings to match.
640 switch (RuleIdentifier[1]) {
641 default: break;
642 case 'a': // 2 strings to match.
643 if (memcmp(RuleIdentifier.data()+2, "nonicalize_", 11) != 0)
644 break;
645 switch (RuleIdentifier[13]) {
646 default: break;
647 case 'f': // 1 string to match.
648 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
649 break;
650 return 118; // "canonicalize_fcmp"
651 case 'i': // 1 string to match.
652 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
653 break;
654 return 117; // "canonicalize_icmp"
655 }
656 break;
657 case 'o': // 1 string to match.
658 if (memcmp(RuleIdentifier.data()+2, "nstant_fold_fma", 15) != 0)
659 break;
660 return 186; // "constant_fold_fma"
661 }
662 break;
663 case 'd': // 1 string to match.
664 if (memcmp(RuleIdentifier.data()+1, "iv_rem_to_divrem", 16) != 0)
665 break;
666 return 169; // "div_rem_to_divrem"
667 case 'e': // 1 string to match.
668 if (memcmp(RuleIdentifier.data()+1, "rase_undef_store", 16) != 0)
669 break;
670 return 87; // "erase_undef_store"
671 case 'p': // 1 string to match.
672 if (memcmp(RuleIdentifier.data()+1, "tr_add_with_zero", 16) != 0)
673 break;
674 return 165; // "ptr_add_with_zero"
675 case 's': // 2 strings to match.
676 switch (RuleIdentifier[1]) {
677 default: break;
678 case 'e': // 1 string to match.
679 if (memcmp(RuleIdentifier.data()+2, "lect_to_iminmax", 15) != 0)
680 break;
681 return 131; // "select_to_iminmax"
682 case 'h': // 1 string to match.
683 if (memcmp(RuleIdentifier.data()+2, "ift_immed_chain", 15) != 0)
684 break;
685 return 166; // "shift_immed_chain"
686 }
687 break;
688 case 'u': // 2 strings to match.
689 switch (RuleIdentifier[1]) {
690 default: break;
691 case 'n': // 1 string to match.
692 if (memcmp(RuleIdentifier.data()+2, "def_to_int_zero", 15) != 0)
693 break;
694 return 78; // "undef_to_int_zero"
695 case 'r': // 1 string to match.
696 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
697 break;
698 return 136; // "urem_pow2_to_mask"
699 }
700 break;
701 }
702 break;
703 case 18: // 12 strings to match.
704 switch (RuleIdentifier[0]) {
705 default: break;
706 case 'A': // 3 strings to match.
707 switch (RuleIdentifier[1]) {
708 default: break;
709 case 'M': // 2 strings to match.
710 if (memcmp(RuleIdentifier.data()+2, "inusBPlus", 9) != 0)
711 break;
712 switch (RuleIdentifier[11]) {
713 default: break;
714 case 'B': // 1 string to match.
715 if (memcmp(RuleIdentifier.data()+12, "MinusC", 6) != 0)
716 break;
717 return 7; // "AMinusBPlusBMinusC"
718 case 'C': // 1 string to match.
719 if (memcmp(RuleIdentifier.data()+12, "MinusA", 6) != 0)
720 break;
721 return 6; // "AMinusBPlusCMinusA"
722 }
723 break;
724 case 'P': // 1 string to match.
725 if (memcmp(RuleIdentifier.data()+2, "lusBMinusCMinusB", 16) != 0)
726 break;
727 return 0; // "APlusBMinusCMinusB"
728 }
729 break;
730 case 'b': // 1 string to match.
731 if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
732 break;
733 return 93; // "binop_left_to_zero"
734 case 'c': // 3 strings to match.
735 if (RuleIdentifier[1] != 'o')
736 break;
737 switch (RuleIdentifier[2]) {
738 default: break;
739 case 'm': // 1 string to match.
740 if (memcmp(RuleIdentifier.data()+3, "bine_minmax_nan", 15) != 0)
741 break;
742 return 162; // "combine_minmax_nan"
743 case 'n': // 2 strings to match.
744 if (memcmp(RuleIdentifier.data()+3, "stant_fold_f", 12) != 0)
745 break;
746 switch (RuleIdentifier[15]) {
747 default: break;
748 case 'a': // 1 string to match.
749 if (memcmp(RuleIdentifier.data()+16, "bs", 2) != 0)
750 break;
751 return 143; // "constant_fold_fabs"
752 case 'n': // 1 string to match.
753 if (memcmp(RuleIdentifier.data()+16, "eg", 2) != 0)
754 break;
755 return 142; // "constant_fold_fneg"
756 }
757 break;
758 }
759 break;
760 case 'e': // 1 string to match.
761 if (memcmp(RuleIdentifier.data()+1, "xpand_const_fpowi", 17) != 0)
762 break;
763 return 163; // "expand_const_fpowi"
764 case 'f': // 1 string to match.
765 if (memcmp(RuleIdentifier.data()+1, "ptrunc_fpext_fold", 17) != 0)
766 break;
767 return 106; // "fptrunc_fpext_fold"
768 case 's': // 2 strings to match.
769 if (RuleIdentifier[1] != 'e')
770 break;
771 switch (RuleIdentifier[2]) {
772 default: break;
773 case 'l': // 1 string to match.
774 if (memcmp(RuleIdentifier.data()+3, "ect_of_truncate", 15) != 0)
775 break;
776 return 62; // "select_of_truncate"
777 case 'x': // 1 string to match.
778 if (memcmp(RuleIdentifier.data()+3, "t_inreg_of_load", 15) != 0)
779 break;
780 return 126; // "sext_inreg_of_load"
781 }
782 break;
783 case 't': // 1 string to match.
784 if (memcmp(RuleIdentifier.data()+1, "runcate_of_anyext", 17) != 0)
785 break;
786 return 51; // "truncate_of_anyext"
787 }
788 break;
789 case 19: // 19 strings to match.
790 switch (RuleIdentifier[0]) {
791 default: break;
792 case 'A': // 1 string to match.
793 if (memcmp(RuleIdentifier.data()+1, "MinusBMinusCMinusC", 18) != 0)
794 break;
795 return 1; // "AMinusBMinusCMinusC"
796 case 'b': // 1 string to match.
797 if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
798 break;
799 return 94; // "binop_right_to_zero"
800 case 'c': // 7 strings to match.
801 if (memcmp(RuleIdentifier.data()+1, "onst", 4) != 0)
802 break;
803 switch (RuleIdentifier[5]) {
804 default: break;
805 case '_': // 1 string to match.
806 if (memcmp(RuleIdentifier.data()+6, "ptradd_to_i2p", 13) != 0)
807 break;
808 return 157; // "const_ptradd_to_i2p"
809 case 'a': // 6 strings to match.
810 if (memcmp(RuleIdentifier.data()+6, "nt_fold_", 8) != 0)
811 break;
812 switch (RuleIdentifier[14]) {
813 default: break;
814 case 'b': // 1 string to match.
815 if (memcmp(RuleIdentifier.data()+15, "inop", 4) != 0)
816 break;
817 return 184; // "constant_fold_binop"
818 case 'f': // 5 strings to match.
819 switch (RuleIdentifier[15]) {
820 default: break;
821 case 'c': // 1 string to match.
822 if (memcmp(RuleIdentifier.data()+16, "eil", 3) != 0)
823 break;
824 return 148; // "constant_fold_fceil"
825 case 'l': // 1 string to match.
826 if (memcmp(RuleIdentifier.data()+16, "og2", 3) != 0)
827 break;
828 return 145; // "constant_fold_flog2"
829 case 'p': // 1 string to match.
830 if (memcmp(RuleIdentifier.data()+16, "ext", 3) != 0)
831 break;
832 return 147; // "constant_fold_fpext"
833 case 'r': // 1 string to match.
834 if (memcmp(RuleIdentifier.data()+16, "int", 3) != 0)
835 break;
836 return 153; // "constant_fold_frint"
837 case 's': // 1 string to match.
838 if (memcmp(RuleIdentifier.data()+16, "qrt", 3) != 0)
839 break;
840 return 144; // "constant_fold_fsqrt"
841 }
842 break;
843 }
844 break;
845 }
846 break;
847 case 'e': // 1 string to match.
848 if (memcmp(RuleIdentifier.data()+1, "xtend_through_phis", 18) != 0)
849 break;
850 return 110; // "extend_through_phis"
851 case 'i': // 1 string to match.
852 if (memcmp(RuleIdentifier.data()+1, "nteger_of_truncate", 18) != 0)
853 break;
854 return 70; // "integer_of_truncate"
855 case 'm': // 1 string to match.
856 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_zero", 18) != 0)
857 break;
858 return 232; // "merge_of_x_and_zero"
859 case 'p': // 1 string to match.
860 if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
861 break;
862 return 116; // "ptr_add_immed_chain"
863 case 'r': // 2 strings to match.
864 switch (RuleIdentifier[1]) {
865 default: break;
866 case 'e': // 1 string to match.
867 if (memcmp(RuleIdentifier.data()+2, "assoc_comm_binops", 17) != 0)
868 break;
869 return 115; // "reassoc_comm_binops"
870 case 'i': // 1 string to match.
871 if (memcmp(RuleIdentifier.data()+2, "ght_identity_zero", 17) != 0)
872 break;
873 return 90; // "right_identity_zero"
874 }
875 break;
876 case 's': // 3 strings to match.
877 switch (RuleIdentifier[1]) {
878 default: break;
879 case 'e': // 1 string to match.
880 if (memcmp(RuleIdentifier.data()+2, "lect_constant_cmp", 17) != 0)
881 break;
882 return 130; // "select_constant_cmp"
883 case 'i': // 2 strings to match.
884 if (memcmp(RuleIdentifier.data()+2, "mplify_", 7) != 0)
885 break;
886 switch (RuleIdentifier[9]) {
887 default: break;
888 case 'a': // 1 string to match.
889 if (memcmp(RuleIdentifier.data()+10, "dd_to_sub", 9) != 0)
890 break;
891 return 111; // "simplify_add_to_sub"
892 case 'n': // 1 string to match.
893 if (memcmp(RuleIdentifier.data()+10, "eg_minmax", 9) != 0)
894 break;
895 return 215; // "simplify_neg_minmax"
896 }
897 break;
898 }
899 break;
900 case 'u': // 1 string to match.
901 if (memcmp(RuleIdentifier.data()+1, "nary_undef_to_zero", 18) != 0)
902 break;
903 return 82; // "unary_undef_to_zero"
904 }
905 break;
906 case 20: // 8 strings to match.
907 switch (RuleIdentifier[0]) {
908 default: break;
909 case 'a': // 1 string to match.
910 if (memcmp(RuleIdentifier.data()+1, "nd_or_disjoint_mask", 19) != 0)
911 break;
912 return 191; // "and_or_disjoint_mask"
913 case 'b': // 1 string to match.
914 if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold", 19) != 0)
915 break;
916 return 105; // "bitcast_bitcast_fold"
917 case 'c': // 1 string to match.
918 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_ffloor", 19) != 0)
919 break;
920 return 149; // "constant_fold_ffloor"
921 case 'm': // 1 string to match.
922 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_undef", 19) != 0)
923 break;
924 return 231; // "merge_of_x_and_undef"
925 case 'r': // 2 strings to match.
926 if (memcmp(RuleIdentifier.data()+1, "edu", 3) != 0)
927 break;
928 switch (RuleIdentifier[4]) {
929 default: break;
930 case 'c': // 1 string to match.
931 if (memcmp(RuleIdentifier.data()+5, "e_shl_of_extend", 15) != 0)
932 break;
933 return 127; // "reduce_shl_of_extend"
934 case 'n': // 1 string to match.
935 if (memcmp(RuleIdentifier.data()+5, "dant_sext_inreg", 15) != 0)
936 break;
937 return 134; // "redundant_sext_inreg"
938 }
939 break;
940 case 'u': // 2 strings to match.
941 if (RuleIdentifier[1] != 'n')
942 break;
943 switch (RuleIdentifier[2]) {
944 default: break;
945 case 'a': // 1 string to match.
946 if (memcmp(RuleIdentifier.data()+3, "ry_undef_to_undef", 17) != 0)
947 break;
948 return 83; // "unary_undef_to_undef"
949 case 'm': // 1 string to match.
950 if (memcmp(RuleIdentifier.data()+3, "erge_zext_to_zext", 17) != 0)
951 break;
952 return 230; // "unmerge_zext_to_zext"
953 }
954 break;
955 }
956 break;
957 case 21: // 10 strings to match.
958 switch (RuleIdentifier[0]) {
959 default: break;
960 case 'c': // 4 strings to match.
961 if (RuleIdentifier[1] != 'o')
962 break;
963 switch (RuleIdentifier[2]) {
964 default: break;
965 case 'm': // 2 strings to match.
966 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
967 break;
968 switch (RuleIdentifier[8]) {
969 default: break;
970 case 'b': // 1 string to match.
971 if (memcmp(RuleIdentifier.data()+9, "uild_unmerge", 12) != 0)
972 break;
973 return 233; // "combine_build_unmerge"
974 case 'c': // 1 string to match.
975 if (memcmp(RuleIdentifier.data()+9, "oncat_vector", 12) != 0)
976 break;
977 return 216; // "combine_concat_vector"
978 }
979 break;
980 case 'n': // 2 strings to match.
981 if (memcmp(RuleIdentifier.data()+3, "stant_fold_", 11) != 0)
982 break;
983 switch (RuleIdentifier[14]) {
984 default: break;
985 case 'c': // 1 string to match.
986 if (memcmp(RuleIdentifier.data()+15, "ast_op", 6) != 0)
987 break;
988 return 187; // "constant_fold_cast_op"
989 case 'f': // 1 string to match.
990 if (memcmp(RuleIdentifier.data()+15, "ptrunc", 6) != 0)
991 break;
992 return 146; // "constant_fold_fptrunc"
993 }
994 break;
995 }
996 break;
997 case 'f': // 1 string to match.
998 if (memcmp(RuleIdentifier.data()+1, "div_repeated_divison", 20) != 0)
999 break;
1000 return 207; // "fdiv_repeated_divison"
1001 case 'i': // 1 string to match.
1002 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_elt_oob", 20) != 0)
1003 break;
1004 return 30; // "insert_vector_elt_oob"
1005 case 'l': // 1 string to match.
1006 if (memcmp(RuleIdentifier.data()+1, "shr_of_trunc_of_lshr", 20) != 0)
1007 break;
1008 return 240; // "lshr_of_trunc_of_lshr"
1009 case 'r': // 1 string to match.
1010 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
1011 break;
1012 return 100; // "right_identity_one_fp"
1013 case 'u': // 2 strings to match.
1014 if (RuleIdentifier[1] != 'n')
1015 break;
1016 switch (RuleIdentifier[2]) {
1017 default: break;
1018 case 'd': // 1 string to match.
1019 if (memcmp(RuleIdentifier.data()+3, "ef_to_negative_one", 18) != 0)
1020 break;
1021 return 79; // "undef_to_negative_one"
1022 case 'm': // 1 string to match.
1023 if (memcmp(RuleIdentifier.data()+3, "erge_dead_to_trunc", 18) != 0)
1024 break;
1025 return 229; // "unmerge_dead_to_trunc"
1026 }
1027 break;
1028 }
1029 break;
1030 case 22: // 13 strings to match.
1031 switch (RuleIdentifier[0]) {
1032 default: break;
1033 case 'c': // 2 strings to match.
1034 if (RuleIdentifier[1] != 'o')
1035 break;
1036 switch (RuleIdentifier[2]) {
1037 default: break;
1038 case 'm': // 1 string to match.
1039 if (memcmp(RuleIdentifier.data()+3, "bine_shuffle_concat", 19) != 0)
1040 break;
1041 return 220; // "combine_shuffle_concat"
1042 case 'n': // 1 string to match.
1043 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fp_binop", 19) != 0)
1044 break;
1045 return 185; // "constant_fold_fp_binop"
1046 }
1047 break;
1048 case 'f': // 4 strings to match.
1049 switch (RuleIdentifier[1]) {
1050 default: break;
1051 case 'o': // 1 string to match.
1052 if (memcmp(RuleIdentifier.data()+2, "ld_binop_into_select", 20) != 0)
1053 break;
1054 return 200; // "fold_binop_into_select"
1055 case 'u': // 3 strings to match.
1056 if (memcmp(RuleIdentifier.data()+2, "nnel_shift_", 11) != 0)
1057 break;
1058 switch (RuleIdentifier[13]) {
1059 default: break;
1060 case 'l': // 1 string to match.
1061 if (memcmp(RuleIdentifier.data()+14, "eft_zero", 8) != 0)
1062 break;
1063 return 173; // "funnel_shift_left_zero"
1064 case 'o': // 1 string to match.
1065 if (memcmp(RuleIdentifier.data()+14, "vershift", 8) != 0)
1066 break;
1067 return 174; // "funnel_shift_overshift"
1068 case 't': // 1 string to match.
1069 if (memcmp(RuleIdentifier.data()+14, "o_rotate", 8) != 0)
1070 break;
1071 return 171; // "funnel_shift_to_rotate"
1072 }
1073 break;
1074 }
1075 break;
1076 case 'i': // 1 string to match.
1077 if (memcmp(RuleIdentifier.data()+1, "cmp_to_lhs_known_bits", 21) != 0)
1078 break;
1079 return 120; // "icmp_to_lhs_known_bits"
1080 case 'm': // 1 string to match.
1081 if (memcmp(RuleIdentifier.data()+1, "atch_subo_no_overflow", 21) != 0)
1082 break;
1083 return 235; // "match_subo_no_overflow"
1084 case 'p': // 1 string to match.
1085 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_any_op", 21) != 0)
1086 break;
1087 return 84; // "propagate_undef_any_op"
1088 case 'r': // 2 strings to match.
1089 switch (RuleIdentifier[1]) {
1090 default: break;
1091 case 'e': // 1 string to match.
1092 if (memcmp(RuleIdentifier.data()+2, "dundant_neg_operands", 20) != 0)
1093 break;
1094 return 190; // "redundant_neg_operands"
1095 case 'i': // 1 string to match.
1096 if (memcmp(RuleIdentifier.data()+2, "ght_identity_one_int", 20) != 0)
1097 break;
1098 return 99; // "right_identity_one_int"
1099 }
1100 break;
1101 case 's': // 1 string to match.
1102 if (memcmp(RuleIdentifier.data()+1, "hl_ashr_to_sext_inreg", 21) != 0)
1103 break;
1104 return 124; // "shl_ashr_to_sext_inreg"
1105 case 't': // 1 string to match.
1106 if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold", 21) != 0)
1107 break;
1108 return 103; // "trunc_buildvector_fold"
1109 }
1110 break;
1111 case 23: // 7 strings to match.
1112 switch (RuleIdentifier[0]) {
1113 default: break;
1114 case 'b': // 1 string to match.
1115 if (memcmp(RuleIdentifier.data()+1, "uildvector_of_truncate", 22) != 0)
1116 break;
1117 return 63; // "buildvector_of_truncate"
1118 case 'c': // 1 string to match.
1119 if (memcmp(RuleIdentifier.data()+1, "tlz_zero_undef_to_ctls", 22) != 0)
1120 break;
1121 return 242; // "ctlz_zero_undef_to_ctls"
1122 case 'f': // 1 string to match.
1123 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_right_zero", 22) != 0)
1124 break;
1125 return 172; // "funnel_shift_right_zero"
1126 case 'i': // 2 strings to match.
1127 if (memcmp(RuleIdentifier.data()+1, "tof_const_zero_fold_", 20) != 0)
1128 break;
1129 switch (RuleIdentifier[21]) {
1130 default: break;
1131 case 's': // 1 string to match.
1132 if (RuleIdentifier[22] != 'i')
1133 break;
1134 return 155; // "itof_const_zero_fold_si"
1135 case 'u': // 1 string to match.
1136 if (RuleIdentifier[22] != 'i')
1137 break;
1138 return 156; // "itof_const_zero_fold_ui"
1139 }
1140 break;
1141 case 'p': // 1 string to match.
1142 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_all_ops", 22) != 0)
1143 break;
1144 return 85; // "propagate_undef_all_ops"
1145 case 't': // 1 string to match.
1146 if (memcmp(RuleIdentifier.data()+1, "runcusatu_to_fptouisat", 22) != 0)
1147 break;
1148 return 239; // "truncusatu_to_fptouisat"
1149 }
1150 break;
1151 case 24: // 7 strings to match.
1152 switch (RuleIdentifier[0]) {
1153 default: break;
1154 case 'b': // 1 string to match.
1155 if (memcmp(RuleIdentifier.data()+1, "inop_left_undef_to_zero", 23) != 0)
1156 break;
1157 return 80; // "binop_left_undef_to_zero"
1158 case 'c': // 1 string to match.
1159 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_fnearbyint", 23) != 0)
1160 break;
1161 return 154; // "constant_fold_fnearbyint"
1162 case 'm': // 1 string to match.
1163 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element", 23) != 0)
1164 break;
1165 return 29; // "match_extract_of_element"
1166 case 'n': // 1 string to match.
1167 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_feeding_and", 23) != 0)
1168 break;
1169 return 128; // "narrow_binop_feeding_and"
1170 case 's': // 2 strings to match.
1171 if (memcmp(RuleIdentifier.data()+1, "ext_inreg_", 10) != 0)
1172 break;
1173 switch (RuleIdentifier[11]) {
1174 default: break;
1175 case 'o': // 1 string to match.
1176 if (memcmp(RuleIdentifier.data()+12, "f_sext_inreg", 12) != 0)
1177 break;
1178 return 59; // "sext_inreg_of_sext_inreg"
1179 case 't': // 1 string to match.
1180 if (memcmp(RuleIdentifier.data()+12, "o_zext_inreg", 12) != 0)
1181 break;
1182 return 138; // "sext_inreg_to_zext_inreg"
1183 }
1184 break;
1185 case 'x': // 1 string to match.
1186 if (memcmp(RuleIdentifier.data()+1, "or_of_and_with_same_reg", 23) != 0)
1187 break;
1188 return 164; // "xor_of_and_with_same_reg"
1189 }
1190 break;
1191 case 25: // 7 strings to match.
1192 switch (RuleIdentifier[0]) {
1193 default: break;
1194 case 'b': // 3 strings to match.
1195 switch (RuleIdentifier[1]) {
1196 default: break;
1197 case 'i': // 2 strings to match.
1198 if (memcmp(RuleIdentifier.data()+2, "tfield_extract_from_", 20) != 0)
1199 break;
1200 switch (RuleIdentifier[22]) {
1201 default: break;
1202 case 'a': // 1 string to match.
1203 if (memcmp(RuleIdentifier.data()+23, "nd", 2) != 0)
1204 break;
1205 return 181; // "bitfield_extract_from_and"
1206 case 's': // 1 string to match.
1207 if (memcmp(RuleIdentifier.data()+23, "hr", 2) != 0)
1208 break;
1209 return 182; // "bitfield_extract_from_shr"
1210 }
1211 break;
1212 case 'u': // 1 string to match.
1213 if (memcmp(RuleIdentifier.data()+2, "ildvector_identity_fold", 23) != 0)
1214 break;
1215 return 102; // "buildvector_identity_fold"
1216 }
1217 break;
1218 case 'c': // 1 string to match.
1219 if (memcmp(RuleIdentifier.data()+1, "ombine_shuffle_undef_rhs", 24) != 0)
1220 break;
1221 return 221; // "combine_shuffle_undef_rhs"
1222 case 'e': // 1 string to match.
1223 if (memcmp(RuleIdentifier.data()+1, "xtract_vec_elt_build_vec", 24) != 0)
1224 break;
1225 return 72; // "extract_vec_elt_build_vec"
1226 case 'n': // 1 string to match.
1227 if (memcmp(RuleIdentifier.data()+1, "eg_and_one_to_sext_inreg", 24) != 0)
1228 break;
1229 return 125; // "neg_and_one_to_sext_inreg"
1230 case 'r': // 1 string to match.
1231 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_one_fp", 24) != 0)
1232 break;
1233 return 109; // "right_identity_neg_one_fp"
1234 }
1235 break;
1236 case 26: // 4 strings to match.
1237 switch (RuleIdentifier[0]) {
1238 default: break;
1239 case 'b': // 1 string to match.
1240 if (memcmp(RuleIdentifier.data()+1, "inop_right_undef_to_undef", 25) != 0)
1241 break;
1242 return 81; // "binop_right_undef_to_undef"
1243 case 'c': // 1 string to match.
1244 if (memcmp(RuleIdentifier.data()+1, "ommute_fp_constant_to_rhs", 25) != 0)
1245 break;
1246 return 212; // "commute_fp_constant_to_rhs"
1247 case 'f': // 1 string to match.
1248 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_from_or_shift", 25) != 0)
1249 break;
1250 return 170; // "funnel_shift_from_or_shift"
1251 case 'r': // 1 string to match.
1252 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp", 25) != 0)
1253 break;
1254 return 107; // "right_identity_neg_zero_fp"
1255 }
1256 break;
1257 case 27: // 6 strings to match.
1258 switch (RuleIdentifier[0]) {
1259 default: break;
1260 case 'c': // 2 strings to match.
1261 if (memcmp(RuleIdentifier.data()+1, "om", 2) != 0)
1262 break;
1263 switch (RuleIdentifier[3]) {
1264 default: break;
1265 case 'b': // 1 string to match.
1266 if (memcmp(RuleIdentifier.data()+4, "ine_use_vector_truncate", 23) != 0)
1267 break;
1268 return 223; // "combine_use_vector_truncate"
1269 case 'm': // 1 string to match.
1270 if (memcmp(RuleIdentifier.data()+4, "ute_int_constant_to_rhs", 23) != 0)
1271 break;
1272 return 211; // "commute_int_constant_to_rhs"
1273 }
1274 break;
1275 case 'd': // 1 string to match.
1276 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_or_combine", 26) != 0)
1277 break;
1278 return 122; // "double_icmp_zero_or_combine"
1279 case 'r': // 1 string to match.
1280 if (memcmp(RuleIdentifier.data()+1, "edundant_binop_in_equality", 26) != 0)
1281 break;
1282 return 123; // "redundant_binop_in_equality"
1283 case 't': // 1 string to match.
1284 if (memcmp(RuleIdentifier.data()+1, "runc_lshr_buildvector_fold", 26) != 0)
1285 break;
1286 return 104; // "trunc_lshr_buildvector_fold"
1287 case 'u': // 1 string to match.
1288 if (memcmp(RuleIdentifier.data()+1, "nmerge_anyext_build_vector", 26) != 0)
1289 break;
1290 return 224; // "unmerge_anyext_build_vector"
1291 }
1292 break;
1293 case 28: // 4 strings to match.
1294 switch (RuleIdentifier[0]) {
1295 default: break;
1296 case 'd': // 1 string to match.
1297 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_and_combine", 27) != 0)
1298 break;
1299 return 121; // "double_icmp_zero_and_combine"
1300 case 'o': // 1 string to match.
1301 if (memcmp(RuleIdentifier.data()+1, "pt_brcond_by_inverting_cond", 27) != 0)
1302 break;
1303 return 141; // "opt_brcond_by_inverting_cond"
1304 case 'p': // 1 string to match.
1305 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_shuffle_mask", 27) != 0)
1306 break;
1307 return 86; // "propagate_undef_shuffle_mask"
1308 case 's': // 1 string to match.
1309 if (memcmp(RuleIdentifier.data()+1, "hift_of_shifted_logic_chain", 27) != 0)
1310 break;
1311 return 167; // "shift_of_shifted_logic_chain"
1312 }
1313 break;
1314 case 29: // 6 strings to match.
1315 switch (RuleIdentifier[0]) {
1316 default: break;
1317 case 'b': // 1 string to match.
1318 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_shr_and", 28) != 0)
1319 break;
1320 return 183; // "bitfield_extract_from_shr_and"
1321 case 'c': // 4 strings to match.
1322 if (RuleIdentifier[1] != 'o')
1323 break;
1324 switch (RuleIdentifier[2]) {
1325 default: break;
1326 case 'm': // 2 strings to match.
1327 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1328 break;
1329 switch (RuleIdentifier[8]) {
1330 default: break;
1331 case 'e': // 1 string to match.
1332 if (memcmp(RuleIdentifier.data()+9, "xtracted_vector_load", 20) != 0)
1333 break;
1334 return 76; // "combine_extracted_vector_load"
1335 case 's': // 1 string to match.
1336 if (memcmp(RuleIdentifier.data()+9, "huffle_disjoint_mask", 20) != 0)
1337 break;
1338 return 222; // "combine_shuffle_disjoint_mask"
1339 }
1340 break;
1341 case 'n': // 2 strings to match.
1342 if (memcmp(RuleIdentifier.data()+3, "stant_fold_intrinsic_", 21) != 0)
1343 break;
1344 switch (RuleIdentifier[24]) {
1345 default: break;
1346 case 'r': // 1 string to match.
1347 if (memcmp(RuleIdentifier.data()+25, "ound", 4) != 0)
1348 break;
1349 return 151; // "constant_fold_intrinsic_round"
1350 case 't': // 1 string to match.
1351 if (memcmp(RuleIdentifier.data()+25, "runc", 4) != 0)
1352 break;
1353 return 150; // "constant_fold_intrinsic_trunc"
1354 }
1355 break;
1356 }
1357 break;
1358 case 'i': // 1 string to match.
1359 if (memcmp(RuleIdentifier.data()+1, "cmp_to_true_false_known_bits", 28) != 0)
1360 break;
1361 return 119; // "icmp_to_true_false_known_bits"
1362 }
1363 break;
1364 case 30: // 2 strings to match.
1365 switch (RuleIdentifier[0]) {
1366 default: break;
1367 case 'f': // 1 string to match.
1368 if (memcmp(RuleIdentifier.data()+1, "reeze_of_non_undef_non_poison", 29) != 0)
1369 break;
1370 return 47; // "freeze_of_non_undef_non_poison"
1371 case 'r': // 1 string to match.
1372 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp_nsz", 29) != 0)
1373 break;
1374 return 108; // "right_identity_neg_zero_fp_nsz"
1375 }
1376 break;
1377 case 31: // 2 strings to match.
1378 if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_", 22) != 0)
1379 break;
1380 switch (RuleIdentifier[22]) {
1381 default: break;
1382 case 'e': // 1 string to match.
1383 if (memcmp(RuleIdentifier.data()+23, "lt_undef", 8) != 0)
1384 break;
1385 return 28; // "insert_vector_element_elt_undef"
1386 case 'i': // 1 string to match.
1387 if (memcmp(RuleIdentifier.data()+23, "dx_undef", 8) != 0)
1388 break;
1389 return 27; // "insert_vector_element_idx_undef"
1390 }
1391 break;
1392 case 32: // 4 strings to match.
1393 switch (RuleIdentifier[0]) {
1394 default: break;
1395 case 'b': // 1 string to match.
1396 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_sext_inreg", 31) != 0)
1397 break;
1398 return 180; // "bitfield_extract_from_sext_inreg"
1399 case 'c': // 2 strings to match.
1400 if (memcmp(RuleIdentifier.data()+1, "ombine_f", 8) != 0)
1401 break;
1402 switch (RuleIdentifier[9]) {
1403 default: break;
1404 case 'a': // 1 string to match.
1405 if (memcmp(RuleIdentifier.data()+10, "dd_fmul_to_fmad_or_fma", 22) != 0)
1406 break;
1407 return 192; // "combine_fadd_fmul_to_fmad_or_fma"
1408 case 's': // 1 string to match.
1409 if (memcmp(RuleIdentifier.data()+10, "ub_fmul_to_fmad_or_fma", 22) != 0)
1410 break;
1411 return 196; // "combine_fsub_fmul_to_fmad_or_fma"
1412 }
1413 break;
1414 case 'e': // 1 string to match.
1415 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_not_const", 31) != 0)
1416 break;
1417 return 31; // "extract_vector_element_not_const"
1418 }
1419 break;
1420 case 33: // 1 string to match.
1421 if (memcmp(RuleIdentifier.data()+0, "constant_fold_intrinsic_roundeven", 33) != 0)
1422 break;
1423 return 152; // "constant_fold_intrinsic_roundeven"
1424 case 34: // 1 string to match.
1425 if (memcmp(RuleIdentifier.data()+0, "extract_all_elts_from_build_vector", 34) != 0)
1426 break;
1427 return 73; // "extract_all_elts_from_build_vector"
1428 case 35: // 1 string to match.
1429 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_build_vector", 35) != 0)
1430 break;
1431 return 33; // "extract_vector_element_build_vector"
1432 case 36: // 4 strings to match.
1433 switch (RuleIdentifier[0]) {
1434 default: break;
1435 case 'c': // 2 strings to match.
1436 if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
1437 break;
1438 switch (RuleIdentifier[8]) {
1439 default: break;
1440 case 'f': // 1 string to match.
1441 if (memcmp(RuleIdentifier.data()+9, "add_fma_fmul_to_fmad_or_fma", 27) != 0)
1442 break;
1443 return 194; // "combine_fadd_fma_fmul_to_fmad_or_fma"
1444 case 'i': // 1 string to match.
1445 if (memcmp(RuleIdentifier.data()+9, "nsert_vec_elts_build_vector", 27) != 0)
1446 break;
1447 return 71; // "combine_insert_vec_elts_build_vector"
1448 }
1449 break;
1450 case 'i': // 1 string to match.
1451 if (memcmp(RuleIdentifier.data()+1, "nsert_extract_vec_elt_out_of_bounds", 35) != 0)
1452 break;
1453 return 88; // "insert_extract_vec_elt_out_of_bounds"
1454 case 'm': // 1 string to match.
1455 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_index", 35) != 0)
1456 break;
1457 return 26; // "match_extract_of_element_undef_index"
1458 }
1459 break;
1460 case 37: // 4 strings to match.
1461 switch (RuleIdentifier[0]) {
1462 default: break;
1463 case 'c': // 1 string to match.
1464 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fneg_fmul_to_fmad_or_fma", 36) != 0)
1465 break;
1466 return 197; // "combine_fsub_fneg_fmul_to_fmad_or_fma"
1467 case 'e': // 1 string to match.
1468 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_shuffle_vector", 36) != 0)
1469 break;
1470 return 41; // "extract_vector_element_shuffle_vector"
1471 case 'h': // 1 string to match.
1472 if (memcmp(RuleIdentifier.data()+1, "oist_logic_op_with_same_opcode_hands", 36) != 0)
1473 break;
1474 return 112; // "hoist_logic_op_with_same_opcode_hands"
1475 case 'm': // 1 string to match.
1476 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_vector", 36) != 0)
1477 break;
1478 return 25; // "match_extract_of_element_undef_vector"
1479 }
1480 break;
1481 case 38: // 2 strings to match.
1482 if (memcmp(RuleIdentifier.data()+0, "combine_f", 9) != 0)
1483 break;
1484 switch (RuleIdentifier[9]) {
1485 default: break;
1486 case 'a': // 1 string to match.
1487 if (memcmp(RuleIdentifier.data()+10, "dd_fpext_fmul_to_fmad_or_fma", 28) != 0)
1488 break;
1489 return 193; // "combine_fadd_fpext_fmul_to_fmad_or_fma"
1490 case 's': // 1 string to match.
1491 if (memcmp(RuleIdentifier.data()+10, "ub_fpext_fmul_to_fmad_or_fma", 28) != 0)
1492 break;
1493 return 198; // "combine_fsub_fpext_fmul_to_fmad_or_fma"
1494 }
1495 break;
1496 case 40: // 1 string to match.
1497 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_different_indices", 40) != 0)
1498 break;
1499 return 32; // "extract_vector_element_different_indices"
1500 case 42: // 9 strings to match.
1501 switch (RuleIdentifier[0]) {
1502 default: break;
1503 case 'c': // 1 string to match.
1504 if (memcmp(RuleIdentifier.data()+1, "ombine_fadd_fpext_fma_fmul_to_fmad_or_fma", 41) != 0)
1505 break;
1506 return 195; // "combine_fadd_fpext_fma_fmul_to_fmad_or_fma"
1507 case 'e': // 7 strings to match.
1508 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_build_vector_trunc", 40) != 0)
1509 break;
1510 switch (RuleIdentifier[41]) {
1511 default: break;
1512 case '2': // 1 string to match.
1513 return 34; // "extract_vector_element_build_vector_trunc2"
1514 case '3': // 1 string to match.
1515 return 35; // "extract_vector_element_build_vector_trunc3"
1516 case '4': // 1 string to match.
1517 return 36; // "extract_vector_element_build_vector_trunc4"
1518 case '5': // 1 string to match.
1519 return 37; // "extract_vector_element_build_vector_trunc5"
1520 case '6': // 1 string to match.
1521 return 38; // "extract_vector_element_build_vector_trunc6"
1522 case '7': // 1 string to match.
1523 return 39; // "extract_vector_element_build_vector_trunc7"
1524 case '8': // 1 string to match.
1525 return 40; // "extract_vector_element_build_vector_trunc8"
1526 }
1527 break;
1528 case 'f': // 1 string to match.
1529 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_left", 41) != 0)
1530 break;
1531 return 175; // "funnel_shift_or_shift_to_funnel_shift_left"
1532 }
1533 break;
1534 case 43: // 2 strings to match.
1535 switch (RuleIdentifier[0]) {
1536 default: break;
1537 case 'c': // 1 string to match.
1538 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fpext_fneg_fmul_to_fmad_or_fma", 42) != 0)
1539 break;
1540 return 199; // "combine_fsub_fpext_fneg_fmul_to_fmad_or_fma"
1541 case 'f': // 1 string to match.
1542 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_right", 42) != 0)
1543 break;
1544 return 176; // "funnel_shift_or_shift_to_funnel_shift_right"
1545 }
1546 break;
1547 case 44: // 1 string to match.
1548 if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_extract_vector_element", 44) != 0)
1549 break;
1550 return 42; // "insert_vector_element_extract_vector_element"
1551 case 46: // 1 string to match.
1552 if (memcmp(RuleIdentifier.data()+0, "push_freeze_to_prevent_poison_from_propagating", 46) != 0)
1553 break;
1554 return 48; // "push_freeze_to_prevent_poison_from_propagating"
1555 }
1556#endif // ifndef NDEBUG
1557
1558 return std::nullopt;
1559}
1560static std::optional<std::pair<uint64_t, uint64_t>> getRuleRangeForIdentifier(StringRef RuleIdentifier) {
1561 std::pair<StringRef, StringRef> RangePair = RuleIdentifier.split('-');
1562 if (!RangePair.second.empty()) {
1563 const auto First = getRuleIdxForIdentifier(RangePair.first);
1564 const auto Last = getRuleIdxForIdentifier(RangePair.second);
1565 if (!First || !Last)
1566 return std::nullopt;
1567 if (First >= Last)
1568 report_fatal_error("Beginning of range should be before end of range");
1569 return {{*First, *Last + 1}};
1570 }
1571 if (RangePair.first == "*") {
1572 return {{0, 247}};
1573 }
1574 const auto I = getRuleIdxForIdentifier(RangePair.first);
1575 if (!I)
1576 return std::nullopt;
1577 return {{*I, *I + 1}};
1578}
1579
1580bool RISCVPreLegalizerCombinerImplRuleConfig::setRuleEnabled(StringRef RuleIdentifier) {
1581 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1582 if (!MaybeRange)
1583 return false;
1584 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1585 DisabledRules.reset(I);
1586 return true;
1587}
1588
1589bool RISCVPreLegalizerCombinerImplRuleConfig::setRuleDisabled(StringRef RuleIdentifier) {
1590 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1591 if (!MaybeRange)
1592 return false;
1593 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1594 DisabledRules.set(I);
1595 return true;
1596}
1597
1598static std::vector<std::string> RISCVPreLegalizerCombinerOption;
1599static cl::list<std::string> RISCVPreLegalizerCombinerDisableOption(
1600 "riscvprelegalizercombiner-disable-rule",
1601 cl::desc("Disable one or more combiner rules temporarily in the RISCVPreLegalizerCombiner pass"),
1602 cl::CommaSeparated,
1603 cl::Hidden,
1604 cl::cat(GICombinerOptionCategory),
1605 cl::callback([](const std::string &Str) {
1606 RISCVPreLegalizerCombinerOption.push_back(Str);
1607 }));
1608static cl::list<std::string> RISCVPreLegalizerCombinerOnlyEnableOption(
1609 "riscvprelegalizercombiner-only-enable-rule",
1610 cl::desc("Disable all rules in the RISCVPreLegalizerCombiner pass then re-enable the specified ones"),
1611 cl::Hidden,
1612 cl::cat(GICombinerOptionCategory),
1613 cl::callback([](const std::string &CommaSeparatedArg) {
1614 StringRef Str = CommaSeparatedArg;
1615 RISCVPreLegalizerCombinerOption.push_back("*");
1616 do {
1617 auto X = Str.split(",");
1618 RISCVPreLegalizerCombinerOption.push_back(("!" + X.first).str());
1619 Str = X.second;
1620 } while (!Str.empty());
1621 }));
1622
1623
1624bool RISCVPreLegalizerCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
1625 return !DisabledRules.test(RuleID);
1626}
1627bool RISCVPreLegalizerCombinerImplRuleConfig::parseCommandLineOption() {
1628 for (StringRef Identifier : RISCVPreLegalizerCombinerOption) {
1629 bool Enabled = Identifier.consume_front("!");
1630 if (Enabled && !setRuleEnabled(Identifier))
1631 return false;
1632 if (!Enabled && !setRuleDisabled(Identifier))
1633 return false;
1634 }
1635 return true;
1636}
1637
1638
1639#endif // GET_GICOMBINER_TYPES
1640
1641#ifdef GET_GICOMBINER_TYPES
1642
1643const unsigned MAX_SUBTARGET_PREDICATES = 0;
1644using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
1645
1646#endif // GET_GICOMBINER_TYPES
1647
1648#ifdef GET_GICOMBINER_CLASS_MEMBERS
1649
1650PredicateBitset AvailableModuleFeatures;
1651mutable PredicateBitset AvailableFunctionFeatures;
1652PredicateBitset getAvailableFeatures() const {
1653 return AvailableModuleFeatures | AvailableFunctionFeatures;
1654}
1655PredicateBitset
1656computeAvailableModuleFeatures(const RISCVSubtarget *Subtarget) const;
1657PredicateBitset
1658computeAvailableFunctionFeatures(const RISCVSubtarget *Subtarget,
1659 const MachineFunction *MF) const;
1660void setupGeneratedPerFunctionState(MachineFunction &MF) override;
1661
1662#endif // GET_GICOMBINER_CLASS_MEMBERS
1663
1664#ifdef GET_GICOMBINER_CLASS_MEMBERS
1665
1666 mutable MatcherState State;
1667 typedef ComplexRendererFns(RISCVPreLegalizerCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
1668 typedef void(RISCVPreLegalizerCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
1669 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
1670 static RISCVPreLegalizerCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
1671 static RISCVPreLegalizerCombinerImpl::CustomRendererFn CustomRenderers[];
1672 bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
1673 bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
1674 bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
1675 const uint8_t *getMatchTable() const override;
1676 bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
1677 bool testMOPredicate_MO(unsigned PredicateID, const MachineOperand &MO, const MatcherState &State) const override;
1678 bool testSimplePredicate(unsigned PredicateID) const override;
1679 bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
1680
1681#endif // GET_GICOMBINER_CLASS_MEMBERS
1682
1683#ifdef GET_GICOMBINER_IMPL
1684
1685// LLT Objects.
1686enum {
1687 GILLT_s1,
1688};
1689const static size_t NumTypeObjects = 1;
1690const static LLT TypeObjects[] = {
1691 LLT::scalar(1),
1692};
1693
1694// Bits for subtarget features that participate in instruction matching.
1695enum SubtargetFeatureBits : uint8_t {
1696};
1697
1698PredicateBitset RISCVPreLegalizerCombinerImpl::
1699computeAvailableModuleFeatures(const RISCVSubtarget *Subtarget) const {
1700 PredicateBitset Features{};
1701 return Features;
1702}
1703
1704void RISCVPreLegalizerCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) {
1705 AvailableFunctionFeatures = computeAvailableFunctionFeatures((const RISCVSubtarget *)&MF.getSubtarget(), &MF);
1706}
1707PredicateBitset RISCVPreLegalizerCombinerImpl::
1708computeAvailableFunctionFeatures(const RISCVSubtarget *Subtarget, const MachineFunction *MF) const {
1709 PredicateBitset Features{};
1710 return Features;
1711}
1712
1713// Feature bitsets.
1714enum {
1715 GIFBS_Invalid,
1716};
1717constexpr static PredicateBitset FeatureBitsets[] {
1718 {}, // GIFBS_Invalid
1719};
1720
1721// ComplexPattern predicates.
1722enum {
1723 GICP_Invalid,
1724};
1725// See constructor for table contents
1726
1727RISCVPreLegalizerCombinerImpl::ComplexMatcherMemFn
1728RISCVPreLegalizerCombinerImpl::ComplexPredicateFns[] = {
1729 nullptr, // GICP_Invalid
1730};
1731
1732enum {
1733 GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
1734 GICXXPred_MI_Predicate_GICombiner1,
1735 GICXXPred_MI_Predicate_GICombiner2,
1736 GICXXPred_MI_Predicate_GICombiner3,
1737 GICXXPred_MI_Predicate_GICombiner4,
1738 GICXXPred_MI_Predicate_GICombiner5,
1739 GICXXPred_MI_Predicate_GICombiner6,
1740 GICXXPred_MI_Predicate_GICombiner7,
1741 GICXXPred_MI_Predicate_GICombiner8,
1742 GICXXPred_MI_Predicate_GICombiner9,
1743 GICXXPred_MI_Predicate_GICombiner10,
1744 GICXXPred_MI_Predicate_GICombiner11,
1745 GICXXPred_MI_Predicate_GICombiner12,
1746 GICXXPred_MI_Predicate_GICombiner13,
1747 GICXXPred_MI_Predicate_GICombiner14,
1748 GICXXPred_MI_Predicate_GICombiner15,
1749 GICXXPred_MI_Predicate_GICombiner16,
1750};
1751bool RISCVPreLegalizerCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
1752 switch (PredicateID) {
1753 case GICXXPred_MI_Predicate_GICombiner0: {
1754 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg());
1755 }
1756 case GICXXPred_MI_Predicate_GICombiner1: {
1757 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg());
1758 }
1759 case GICXXPred_MI_Predicate_GICombiner2: {
1760 return isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI);
1761 }
1762 case GICXXPred_MI_Predicate_GICombiner3: {
1763 return isGuaranteedNotToBeUndefOrPoison(State.MIs[0]->getOperand(1).getReg(), MRI);
1764 }
1765 case GICXXPred_MI_Predicate_GICombiner4: {
1766 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
1767 }
1768 case GICXXPred_MI_Predicate_GICombiner5: {
1769 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
1770 }
1771 case GICXXPred_MI_Predicate_GICombiner6: {
1772 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 0.0);
1773 }
1774 case GICXXPred_MI_Predicate_GICombiner7: {
1775 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0);
1776 }
1777 case GICXXPred_MI_Predicate_GICombiner8: {
1778 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_EQ &&
1779 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
1780 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
1781 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
1782 }
1783 case GICXXPred_MI_Predicate_GICombiner9: {
1784 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_NE &&
1785 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
1786 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
1787 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
1788 }
1789 case GICXXPred_MI_Predicate_GICombiner10: {
1790 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
1791 Helper.isLegalOrBeforeLegalizer(
1792 {TargetOpcode::G_SEXT_INREG, {MRI.getType(State.MIs[1]->getOperand(1).getReg())}});
1793 }
1794 case GICXXPred_MI_Predicate_GICombiner11: {
1795 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_LSHR,
1796 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
1797 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
1798 }
1799 case GICXXPred_MI_Predicate_GICombiner12: {
1800 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_SHL,
1801 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
1802 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
1803 }
1804 case GICXXPred_MI_Predicate_GICombiner13: {
1805 return Helper.matchTruncUSatU(*State.MIs[0], *State.MIs[1]);
1806 }
1807 case GICXXPred_MI_Predicate_GICombiner14: {
1808 return Helper.matchTruncUSatUToFPTOUISat(*State.MIs[0], *State.MIs[1]);
1809 }
1810 case GICXXPred_MI_Predicate_GICombiner15: {
1811 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
1812 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
1813 }
1814 case GICXXPred_MI_Predicate_GICombiner16: {
1815 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
1816 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
1817 }
1818 }
1819 llvm_unreachable("Unknown predicate");
1820 return false;
1821}
1822bool RISCVPreLegalizerCombinerImpl::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
1823 llvm_unreachable("Unknown predicate");
1824 return false;
1825}
1826bool RISCVPreLegalizerCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
1827 llvm_unreachable("Unknown predicate");
1828 return false;
1829}
1830bool RISCVPreLegalizerCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
1831 llvm_unreachable("Unknown predicate");
1832 return false;
1833}
1834bool RISCVPreLegalizerCombinerImpl::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
1835 llvm_unreachable("Unknown predicate");
1836 return false;
1837}
1838enum {
1839 GICXXPred_Simple_IsRule0Enabled = GICXXPred_Invalid + 1,
1840 GICXXPred_Simple_IsRule1Enabled,
1841 GICXXPred_Simple_IsRule2Enabled,
1842 GICXXPred_Simple_IsRule3Enabled,
1843 GICXXPred_Simple_IsRule4Enabled,
1844 GICXXPred_Simple_IsRule5Enabled,
1845 GICXXPred_Simple_IsRule6Enabled,
1846 GICXXPred_Simple_IsRule7Enabled,
1847 GICXXPred_Simple_IsRule8Enabled,
1848 GICXXPred_Simple_IsRule9Enabled,
1849 GICXXPred_Simple_IsRule10Enabled,
1850 GICXXPred_Simple_IsRule11Enabled,
1851 GICXXPred_Simple_IsRule12Enabled,
1852 GICXXPred_Simple_IsRule13Enabled,
1853 GICXXPred_Simple_IsRule14Enabled,
1854 GICXXPred_Simple_IsRule15Enabled,
1855 GICXXPred_Simple_IsRule16Enabled,
1856 GICXXPred_Simple_IsRule17Enabled,
1857 GICXXPred_Simple_IsRule18Enabled,
1858 GICXXPred_Simple_IsRule19Enabled,
1859 GICXXPred_Simple_IsRule20Enabled,
1860 GICXXPred_Simple_IsRule21Enabled,
1861 GICXXPred_Simple_IsRule22Enabled,
1862 GICXXPred_Simple_IsRule23Enabled,
1863 GICXXPred_Simple_IsRule24Enabled,
1864 GICXXPred_Simple_IsRule25Enabled,
1865 GICXXPred_Simple_IsRule26Enabled,
1866 GICXXPred_Simple_IsRule27Enabled,
1867 GICXXPred_Simple_IsRule28Enabled,
1868 GICXXPred_Simple_IsRule29Enabled,
1869 GICXXPred_Simple_IsRule30Enabled,
1870 GICXXPred_Simple_IsRule31Enabled,
1871 GICXXPred_Simple_IsRule32Enabled,
1872 GICXXPred_Simple_IsRule33Enabled,
1873 GICXXPred_Simple_IsRule34Enabled,
1874 GICXXPred_Simple_IsRule35Enabled,
1875 GICXXPred_Simple_IsRule36Enabled,
1876 GICXXPred_Simple_IsRule37Enabled,
1877 GICXXPred_Simple_IsRule38Enabled,
1878 GICXXPred_Simple_IsRule39Enabled,
1879 GICXXPred_Simple_IsRule40Enabled,
1880 GICXXPred_Simple_IsRule41Enabled,
1881 GICXXPred_Simple_IsRule42Enabled,
1882 GICXXPred_Simple_IsRule43Enabled,
1883 GICXXPred_Simple_IsRule44Enabled,
1884 GICXXPred_Simple_IsRule45Enabled,
1885 GICXXPred_Simple_IsRule46Enabled,
1886 GICXXPred_Simple_IsRule47Enabled,
1887 GICXXPred_Simple_IsRule48Enabled,
1888 GICXXPred_Simple_IsRule49Enabled,
1889 GICXXPred_Simple_IsRule50Enabled,
1890 GICXXPred_Simple_IsRule51Enabled,
1891 GICXXPred_Simple_IsRule52Enabled,
1892 GICXXPred_Simple_IsRule53Enabled,
1893 GICXXPred_Simple_IsRule54Enabled,
1894 GICXXPred_Simple_IsRule55Enabled,
1895 GICXXPred_Simple_IsRule56Enabled,
1896 GICXXPred_Simple_IsRule57Enabled,
1897 GICXXPred_Simple_IsRule58Enabled,
1898 GICXXPred_Simple_IsRule59Enabled,
1899 GICXXPred_Simple_IsRule60Enabled,
1900 GICXXPred_Simple_IsRule61Enabled,
1901 GICXXPred_Simple_IsRule62Enabled,
1902 GICXXPred_Simple_IsRule63Enabled,
1903 GICXXPred_Simple_IsRule64Enabled,
1904 GICXXPred_Simple_IsRule65Enabled,
1905 GICXXPred_Simple_IsRule66Enabled,
1906 GICXXPred_Simple_IsRule67Enabled,
1907 GICXXPred_Simple_IsRule68Enabled,
1908 GICXXPred_Simple_IsRule69Enabled,
1909 GICXXPred_Simple_IsRule70Enabled,
1910 GICXXPred_Simple_IsRule71Enabled,
1911 GICXXPred_Simple_IsRule72Enabled,
1912 GICXXPred_Simple_IsRule73Enabled,
1913 GICXXPred_Simple_IsRule74Enabled,
1914 GICXXPred_Simple_IsRule75Enabled,
1915 GICXXPred_Simple_IsRule76Enabled,
1916 GICXXPred_Simple_IsRule77Enabled,
1917 GICXXPred_Simple_IsRule78Enabled,
1918 GICXXPred_Simple_IsRule79Enabled,
1919 GICXXPred_Simple_IsRule80Enabled,
1920 GICXXPred_Simple_IsRule81Enabled,
1921 GICXXPred_Simple_IsRule82Enabled,
1922 GICXXPred_Simple_IsRule83Enabled,
1923 GICXXPred_Simple_IsRule84Enabled,
1924 GICXXPred_Simple_IsRule85Enabled,
1925 GICXXPred_Simple_IsRule86Enabled,
1926 GICXXPred_Simple_IsRule87Enabled,
1927 GICXXPred_Simple_IsRule88Enabled,
1928 GICXXPred_Simple_IsRule89Enabled,
1929 GICXXPred_Simple_IsRule90Enabled,
1930 GICXXPred_Simple_IsRule91Enabled,
1931 GICXXPred_Simple_IsRule92Enabled,
1932 GICXXPred_Simple_IsRule93Enabled,
1933 GICXXPred_Simple_IsRule94Enabled,
1934 GICXXPred_Simple_IsRule95Enabled,
1935 GICXXPred_Simple_IsRule96Enabled,
1936 GICXXPred_Simple_IsRule97Enabled,
1937 GICXXPred_Simple_IsRule98Enabled,
1938 GICXXPred_Simple_IsRule99Enabled,
1939 GICXXPred_Simple_IsRule100Enabled,
1940 GICXXPred_Simple_IsRule101Enabled,
1941 GICXXPred_Simple_IsRule102Enabled,
1942 GICXXPred_Simple_IsRule103Enabled,
1943 GICXXPred_Simple_IsRule104Enabled,
1944 GICXXPred_Simple_IsRule105Enabled,
1945 GICXXPred_Simple_IsRule106Enabled,
1946 GICXXPred_Simple_IsRule107Enabled,
1947 GICXXPred_Simple_IsRule108Enabled,
1948 GICXXPred_Simple_IsRule109Enabled,
1949 GICXXPred_Simple_IsRule110Enabled,
1950 GICXXPred_Simple_IsRule111Enabled,
1951 GICXXPred_Simple_IsRule112Enabled,
1952 GICXXPred_Simple_IsRule113Enabled,
1953 GICXXPred_Simple_IsRule114Enabled,
1954 GICXXPred_Simple_IsRule115Enabled,
1955 GICXXPred_Simple_IsRule116Enabled,
1956 GICXXPred_Simple_IsRule117Enabled,
1957 GICXXPred_Simple_IsRule118Enabled,
1958 GICXXPred_Simple_IsRule119Enabled,
1959 GICXXPred_Simple_IsRule120Enabled,
1960 GICXXPred_Simple_IsRule121Enabled,
1961 GICXXPred_Simple_IsRule122Enabled,
1962 GICXXPred_Simple_IsRule123Enabled,
1963 GICXXPred_Simple_IsRule124Enabled,
1964 GICXXPred_Simple_IsRule125Enabled,
1965 GICXXPred_Simple_IsRule126Enabled,
1966 GICXXPred_Simple_IsRule127Enabled,
1967 GICXXPred_Simple_IsRule128Enabled,
1968 GICXXPred_Simple_IsRule129Enabled,
1969 GICXXPred_Simple_IsRule130Enabled,
1970 GICXXPred_Simple_IsRule131Enabled,
1971 GICXXPred_Simple_IsRule132Enabled,
1972 GICXXPred_Simple_IsRule133Enabled,
1973 GICXXPred_Simple_IsRule134Enabled,
1974 GICXXPred_Simple_IsRule135Enabled,
1975 GICXXPred_Simple_IsRule136Enabled,
1976 GICXXPred_Simple_IsRule137Enabled,
1977 GICXXPred_Simple_IsRule138Enabled,
1978 GICXXPred_Simple_IsRule139Enabled,
1979 GICXXPred_Simple_IsRule140Enabled,
1980 GICXXPred_Simple_IsRule141Enabled,
1981 GICXXPred_Simple_IsRule142Enabled,
1982 GICXXPred_Simple_IsRule143Enabled,
1983 GICXXPred_Simple_IsRule144Enabled,
1984 GICXXPred_Simple_IsRule145Enabled,
1985 GICXXPred_Simple_IsRule146Enabled,
1986 GICXXPred_Simple_IsRule147Enabled,
1987 GICXXPred_Simple_IsRule148Enabled,
1988 GICXXPred_Simple_IsRule149Enabled,
1989 GICXXPred_Simple_IsRule150Enabled,
1990 GICXXPred_Simple_IsRule151Enabled,
1991 GICXXPred_Simple_IsRule152Enabled,
1992 GICXXPred_Simple_IsRule153Enabled,
1993 GICXXPred_Simple_IsRule154Enabled,
1994 GICXXPred_Simple_IsRule155Enabled,
1995 GICXXPred_Simple_IsRule156Enabled,
1996 GICXXPred_Simple_IsRule157Enabled,
1997 GICXXPred_Simple_IsRule158Enabled,
1998 GICXXPred_Simple_IsRule159Enabled,
1999 GICXXPred_Simple_IsRule160Enabled,
2000 GICXXPred_Simple_IsRule161Enabled,
2001 GICXXPred_Simple_IsRule162Enabled,
2002 GICXXPred_Simple_IsRule163Enabled,
2003 GICXXPred_Simple_IsRule164Enabled,
2004 GICXXPred_Simple_IsRule165Enabled,
2005 GICXXPred_Simple_IsRule166Enabled,
2006 GICXXPred_Simple_IsRule167Enabled,
2007 GICXXPred_Simple_IsRule168Enabled,
2008 GICXXPred_Simple_IsRule169Enabled,
2009 GICXXPred_Simple_IsRule170Enabled,
2010 GICXXPred_Simple_IsRule171Enabled,
2011 GICXXPred_Simple_IsRule172Enabled,
2012 GICXXPred_Simple_IsRule173Enabled,
2013 GICXXPred_Simple_IsRule174Enabled,
2014 GICXXPred_Simple_IsRule175Enabled,
2015 GICXXPred_Simple_IsRule176Enabled,
2016 GICXXPred_Simple_IsRule177Enabled,
2017 GICXXPred_Simple_IsRule178Enabled,
2018 GICXXPred_Simple_IsRule179Enabled,
2019 GICXXPred_Simple_IsRule180Enabled,
2020 GICXXPred_Simple_IsRule181Enabled,
2021 GICXXPred_Simple_IsRule182Enabled,
2022 GICXXPred_Simple_IsRule183Enabled,
2023 GICXXPred_Simple_IsRule184Enabled,
2024 GICXXPred_Simple_IsRule185Enabled,
2025 GICXXPred_Simple_IsRule186Enabled,
2026 GICXXPred_Simple_IsRule187Enabled,
2027 GICXXPred_Simple_IsRule188Enabled,
2028 GICXXPred_Simple_IsRule189Enabled,
2029 GICXXPred_Simple_IsRule190Enabled,
2030 GICXXPred_Simple_IsRule191Enabled,
2031 GICXXPred_Simple_IsRule192Enabled,
2032 GICXXPred_Simple_IsRule193Enabled,
2033 GICXXPred_Simple_IsRule194Enabled,
2034 GICXXPred_Simple_IsRule195Enabled,
2035 GICXXPred_Simple_IsRule196Enabled,
2036 GICXXPred_Simple_IsRule197Enabled,
2037 GICXXPred_Simple_IsRule198Enabled,
2038 GICXXPred_Simple_IsRule199Enabled,
2039 GICXXPred_Simple_IsRule200Enabled,
2040 GICXXPred_Simple_IsRule201Enabled,
2041 GICXXPred_Simple_IsRule202Enabled,
2042 GICXXPred_Simple_IsRule203Enabled,
2043 GICXXPred_Simple_IsRule204Enabled,
2044 GICXXPred_Simple_IsRule205Enabled,
2045 GICXXPred_Simple_IsRule206Enabled,
2046 GICXXPred_Simple_IsRule207Enabled,
2047 GICXXPred_Simple_IsRule208Enabled,
2048 GICXXPred_Simple_IsRule209Enabled,
2049 GICXXPred_Simple_IsRule210Enabled,
2050 GICXXPred_Simple_IsRule211Enabled,
2051 GICXXPred_Simple_IsRule212Enabled,
2052 GICXXPred_Simple_IsRule213Enabled,
2053 GICXXPred_Simple_IsRule214Enabled,
2054 GICXXPred_Simple_IsRule215Enabled,
2055 GICXXPred_Simple_IsRule216Enabled,
2056 GICXXPred_Simple_IsRule217Enabled,
2057 GICXXPred_Simple_IsRule218Enabled,
2058 GICXXPred_Simple_IsRule219Enabled,
2059 GICXXPred_Simple_IsRule220Enabled,
2060 GICXXPred_Simple_IsRule221Enabled,
2061 GICXXPred_Simple_IsRule222Enabled,
2062 GICXXPred_Simple_IsRule223Enabled,
2063 GICXXPred_Simple_IsRule224Enabled,
2064 GICXXPred_Simple_IsRule225Enabled,
2065 GICXXPred_Simple_IsRule226Enabled,
2066 GICXXPred_Simple_IsRule227Enabled,
2067 GICXXPred_Simple_IsRule228Enabled,
2068 GICXXPred_Simple_IsRule229Enabled,
2069 GICXXPred_Simple_IsRule230Enabled,
2070 GICXXPred_Simple_IsRule231Enabled,
2071 GICXXPred_Simple_IsRule232Enabled,
2072 GICXXPred_Simple_IsRule233Enabled,
2073 GICXXPred_Simple_IsRule234Enabled,
2074 GICXXPred_Simple_IsRule235Enabled,
2075 GICXXPred_Simple_IsRule236Enabled,
2076 GICXXPred_Simple_IsRule237Enabled,
2077 GICXXPred_Simple_IsRule238Enabled,
2078 GICXXPred_Simple_IsRule239Enabled,
2079 GICXXPred_Simple_IsRule240Enabled,
2080 GICXXPred_Simple_IsRule241Enabled,
2081 GICXXPred_Simple_IsRule242Enabled,
2082 GICXXPred_Simple_IsRule243Enabled,
2083 GICXXPred_Simple_IsRule244Enabled,
2084 GICXXPred_Simple_IsRule245Enabled,
2085 GICXXPred_Simple_IsRule246Enabled,
2086};
2087
2088bool RISCVPreLegalizerCombinerImpl::testSimplePredicate(unsigned Predicate) const {
2089 return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1);
2090}
2091// Custom renderers.
2092enum {
2093 GICR_Invalid,
2094};
2095RISCVPreLegalizerCombinerImpl::CustomRendererFn
2096RISCVPreLegalizerCombinerImpl::CustomRenderers[] = {
2097 nullptr, // GICR_Invalid
2098};
2099
2100bool RISCVPreLegalizerCombinerImpl::tryCombineAll(MachineInstr &I) const {
2101 const TargetSubtargetInfo &ST = MF.getSubtarget();
2102 const PredicateBitset AvailableFeatures = getAvailableFeatures();
2103 B.setInstrAndDebugLoc(I);
2104 State.MIs.clear();
2105 State.MIs.push_back(&I);
2106 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), *ST.getInstrInfo(), MRI, *MRI.getTargetRegisterInfo(), *ST.getRegBankInfo(), AvailableFeatures, /*CoverageInfo*/ nullptr)) {
2107 return true;
2108 }
2109
2110 return false;
2111}
2112
2113enum {
2114 GICXXCustomAction_GICombiner0 = GICXXCustomAction_Invalid + 1,
2115 GICXXCustomAction_GICombiner1,
2116 GICXXCustomAction_GICombiner2,
2117 GICXXCustomAction_GICombiner3,
2118 GICXXCustomAction_GICombiner4,
2119 GICXXCustomAction_GICombiner5,
2120 GICXXCustomAction_GICombiner6,
2121 GICXXCustomAction_GICombiner7,
2122 GICXXCustomAction_GICombiner8,
2123 GICXXCustomAction_GICombiner9,
2124 GICXXCustomAction_GICombiner10,
2125 GICXXCustomAction_GICombiner11,
2126 GICXXCustomAction_GICombiner12,
2127 GICXXCustomAction_GICombiner13,
2128 GICXXCustomAction_GICombiner14,
2129 GICXXCustomAction_GICombiner15,
2130 GICXXCustomAction_GICombiner16,
2131 GICXXCustomAction_GICombiner17,
2132 GICXXCustomAction_GICombiner18,
2133 GICXXCustomAction_GICombiner19,
2134 GICXXCustomAction_GICombiner20,
2135 GICXXCustomAction_GICombiner21,
2136 GICXXCustomAction_GICombiner22,
2137 GICXXCustomAction_GICombiner23,
2138 GICXXCustomAction_GICombiner24,
2139 GICXXCustomAction_GICombiner25,
2140 GICXXCustomAction_GICombiner26,
2141 GICXXCustomAction_GICombiner27,
2142 GICXXCustomAction_GICombiner28,
2143 GICXXCustomAction_GICombiner29,
2144 GICXXCustomAction_GICombiner30,
2145 GICXXCustomAction_GICombiner31,
2146 GICXXCustomAction_GICombiner32,
2147 GICXXCustomAction_GICombiner33,
2148 GICXXCustomAction_GICombiner34,
2149 GICXXCustomAction_GICombiner35,
2150 GICXXCustomAction_GICombiner36,
2151 GICXXCustomAction_GICombiner37,
2152 GICXXCustomAction_GICombiner38,
2153 GICXXCustomAction_GICombiner39,
2154 GICXXCustomAction_GICombiner40,
2155 GICXXCustomAction_GICombiner41,
2156 GICXXCustomAction_GICombiner42,
2157 GICXXCustomAction_GICombiner43,
2158 GICXXCustomAction_GICombiner44,
2159 GICXXCustomAction_GICombiner45,
2160 GICXXCustomAction_GICombiner46,
2161 GICXXCustomAction_GICombiner47,
2162 GICXXCustomAction_GICombiner48,
2163 GICXXCustomAction_GICombiner49,
2164 GICXXCustomAction_GICombiner50,
2165 GICXXCustomAction_GICombiner51,
2166 GICXXCustomAction_GICombiner52,
2167 GICXXCustomAction_GICombiner53,
2168 GICXXCustomAction_GICombiner54,
2169 GICXXCustomAction_GICombiner55,
2170 GICXXCustomAction_GICombiner56,
2171 GICXXCustomAction_GICombiner57,
2172 GICXXCustomAction_GICombiner58,
2173 GICXXCustomAction_GICombiner59,
2174 GICXXCustomAction_GICombiner60,
2175 GICXXCustomAction_GICombiner61,
2176 GICXXCustomAction_GICombiner62,
2177 GICXXCustomAction_GICombiner63,
2178 GICXXCustomAction_GICombiner64,
2179 GICXXCustomAction_GICombiner65,
2180 GICXXCustomAction_GICombiner66,
2181 GICXXCustomAction_GICombiner67,
2182 GICXXCustomAction_GICombiner68,
2183 GICXXCustomAction_GICombiner69,
2184 GICXXCustomAction_GICombiner70,
2185 GICXXCustomAction_GICombiner71,
2186 GICXXCustomAction_GICombiner72,
2187 GICXXCustomAction_GICombiner73,
2188 GICXXCustomAction_GICombiner74,
2189 GICXXCustomAction_GICombiner75,
2190 GICXXCustomAction_GICombiner76,
2191 GICXXCustomAction_GICombiner77,
2192 GICXXCustomAction_GICombiner78,
2193 GICXXCustomAction_GICombiner79,
2194 GICXXCustomAction_GICombiner80,
2195 GICXXCustomAction_GICombiner81,
2196 GICXXCustomAction_GICombiner82,
2197 GICXXCustomAction_GICombiner83,
2198 GICXXCustomAction_GICombiner84,
2199 GICXXCustomAction_GICombiner85,
2200 GICXXCustomAction_GICombiner86,
2201 GICXXCustomAction_GICombiner87,
2202 GICXXCustomAction_GICombiner88,
2203 GICXXCustomAction_GICombiner89,
2204 GICXXCustomAction_GICombiner90,
2205 GICXXCustomAction_GICombiner91,
2206 GICXXCustomAction_GICombiner92,
2207 GICXXCustomAction_GICombiner93,
2208 GICXXCustomAction_GICombiner94,
2209 GICXXCustomAction_GICombiner95,
2210 GICXXCustomAction_GICombiner96,
2211 GICXXCustomAction_GICombiner97,
2212 GICXXCustomAction_GICombiner98,
2213 GICXXCustomAction_GICombiner99,
2214 GICXXCustomAction_GICombiner100,
2215 GICXXCustomAction_GICombiner101,
2216 GICXXCustomAction_GICombiner102,
2217 GICXXCustomAction_GICombiner103,
2218 GICXXCustomAction_GICombiner104,
2219 GICXXCustomAction_GICombiner105,
2220 GICXXCustomAction_GICombiner106,
2221 GICXXCustomAction_GICombiner107,
2222 GICXXCustomAction_GICombiner108,
2223 GICXXCustomAction_GICombiner109,
2224 GICXXCustomAction_GICombiner110,
2225 GICXXCustomAction_GICombiner111,
2226 GICXXCustomAction_GICombiner112,
2227 GICXXCustomAction_GICombiner113,
2228 GICXXCustomAction_GICombiner114,
2229 GICXXCustomAction_GICombiner115,
2230 GICXXCustomAction_GICombiner116,
2231 GICXXCustomAction_GICombiner117,
2232 GICXXCustomAction_GICombiner118,
2233 GICXXCustomAction_GICombiner119,
2234 GICXXCustomAction_GICombiner120,
2235 GICXXCustomAction_GICombiner121,
2236 GICXXCustomAction_GICombiner122,
2237 GICXXCustomAction_GICombiner123,
2238 GICXXCustomAction_GICombiner124,
2239 GICXXCustomAction_GICombiner125,
2240 GICXXCustomAction_GICombiner126,
2241 GICXXCustomAction_GICombiner127,
2242 GICXXCustomAction_GICombiner128,
2243 GICXXCustomAction_GICombiner129,
2244 GICXXCustomAction_GICombiner130,
2245 GICXXCustomAction_GICombiner131,
2246 GICXXCustomAction_GICombiner132,
2247 GICXXCustomAction_GICombiner133,
2248 GICXXCustomAction_GICombiner134,
2249 GICXXCustomAction_GICombiner135,
2250 GICXXCustomAction_GICombiner136,
2251 GICXXCustomAction_GICombiner137,
2252 GICXXCustomAction_GICombiner138,
2253 GICXXCustomAction_GICombiner139,
2254 GICXXCustomAction_GICombiner140,
2255 GICXXCustomAction_GICombiner141,
2256 GICXXCustomAction_GICombiner142,
2257 GICXXCustomAction_GICombiner143,
2258 GICXXCustomAction_GICombiner144,
2259 GICXXCustomAction_GICombiner145,
2260 GICXXCustomAction_GICombiner146,
2261 GICXXCustomAction_GICombiner147,
2262 GICXXCustomAction_GICombiner148,
2263 GICXXCustomAction_GICombiner149,
2264 GICXXCustomAction_GICombiner150,
2265 GICXXCustomAction_GICombiner151,
2266 GICXXCustomAction_GICombiner152,
2267 GICXXCustomAction_GICombiner153,
2268 GICXXCustomAction_GICombiner154,
2269 GICXXCustomAction_GICombiner155,
2270 GICXXCustomAction_GICombiner156,
2271};
2272bool RISCVPreLegalizerCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const {
2273 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
2274 switch(ApplyID) {
2275 case GICXXCustomAction_GICombiner0:{
2276 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2277 // Match Patterns
2278 if(![&](){return Helper.matchFoldAPlusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2279 return false;
2280 }
2281 // Apply Patterns
2282 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2283 return true;
2284 }
2285 case GICXXCustomAction_GICombiner1:{
2286 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2287 // Match Patterns
2288 if(![&](){return Helper.matchFoldC2MinusAPlusC1(*State.MIs[0], GIMatchData_matchinfo);}()) {
2289 return false;
2290 }
2291 // Apply Patterns
2292 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2293 return true;
2294 }
2295 case GICXXCustomAction_GICombiner2:{
2296 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2297 // Match Patterns
2298 if(![&](){return Helper.matchFoldAMinusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2299 return false;
2300 }
2301 // Apply Patterns
2302 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2303 return true;
2304 }
2305 case GICXXCustomAction_GICombiner3:{
2306 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2307 // Match Patterns
2308 if(![&](){return Helper.matchFoldC1Minus2MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2309 return false;
2310 }
2311 // Apply Patterns
2312 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2313 return true;
2314 }
2315 case GICXXCustomAction_GICombiner4:{
2316 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2317 // Match Patterns
2318 if(![&](){return Helper.matchFoldAMinusC1PlusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2319 return false;
2320 }
2321 // Apply Patterns
2322 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2323 return true;
2324 }
2325 case GICXXCustomAction_GICombiner5:{
2326 // Match Patterns
2327 if(![&](){return Helper.matchCombineCopy(*State.MIs[0]);}()) {
2328 return false;
2329 }
2330 // Apply Patterns
2331 Helper.applyCombineCopy(*State.MIs[0]);
2332 return true;
2333 }
2334 case GICXXCustomAction_GICombiner6:{
2335 unsigned GIMatchData_matchinfo;
2336 // Match Patterns
2337 if(![&](){return Helper.matchCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);}()) {
2338 return false;
2339 }
2340 // Apply Patterns
2341 Helper.applyCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);
2342 return true;
2343 }
2344 case GICXXCustomAction_GICombiner7:{
2345 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2346 // Match Patterns
2347 if(![&](){return Helper.matchCombineSubToAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2348 return false;
2349 }
2350 // Apply Patterns
2351 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2352 return true;
2353 }
2354 case GICXXCustomAction_GICombiner8:{
2355 std::pair<Register, bool> GIMatchData_info;
2356 // Match Patterns
2357 if(![&](){return Helper.matchCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info);}()) {
2358 return false;
2359 }
2360 // Apply Patterns
2361 Helper.applyCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info);
2362 return true;
2363 }
2364 case GICXXCustomAction_GICombiner9:{
2365 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2366 // Match Patterns
2367 if(![&](){return Helper.matchExtractVectorElement(*State.MIs[0], GIMatchData_matchinfo);}()) {
2368 return false;
2369 }
2370 // Apply Patterns
2371 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2372 return true;
2373 }
2374 case GICXXCustomAction_GICombiner10:{
2375 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2376 // Match Patterns
2377 if(![&](){return Helper.matchInsertVectorElementOOB(*State.MIs[0], GIMatchData_matchinfo);}()) {
2378 return false;
2379 }
2380 // Apply Patterns
2381 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2382 return true;
2383 }
2384 case GICXXCustomAction_GICombiner11:{
2385 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2386 // Match Patterns
2387 if(![&](){return Helper.matchExtractVectorElementWithDifferentIndices(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2388 return false;
2389 }
2390 // Apply Patterns
2391 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2392 return true;
2393 }
2394 case GICXXCustomAction_GICombiner12:{
2395 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2396 // Match Patterns
2397 if(![&](){return Helper.matchExtractVectorElementWithBuildVector(*State.MIs[0], *State.MIs[1],
2398 GIMatchData_matchinfo);}()) {
2399 return false;
2400 }
2401 // Apply Patterns
2402 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2403 return true;
2404 }
2405 case GICXXCustomAction_GICombiner13:{
2406 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2407 // Match Patterns
2408 if(![&](){return Helper.matchExtractVectorElementWithBuildVectorTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2409 return false;
2410 }
2411 // Apply Patterns
2412 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2413 return true;
2414 }
2415 case GICXXCustomAction_GICombiner14:{
2416 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2417 // Match Patterns
2418 if(![&](){return Helper.matchExtractVectorElementWithShuffleVector(*State.MIs[0], *State.MIs[1],
2419 GIMatchData_matchinfo);}()) {
2420 return false;
2421 }
2422 // Apply Patterns
2423 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2424 return true;
2425 }
2426 case GICXXCustomAction_GICombiner15:{
2427 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2428 // Match Patterns
2429 if(![&](){return Helper.matchAddOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2430 return false;
2431 }
2432 // Apply Patterns
2433 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2434 return true;
2435 }
2436 case GICXXCustomAction_GICombiner16:{
2437 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2438 // Match Patterns
2439 if(![&](){return Helper.matchMulOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2440 return false;
2441 }
2442 // Apply Patterns
2443 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2444 return true;
2445 }
2446 case GICXXCustomAction_GICombiner17:{
2447 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2448 // Match Patterns
2449 if(![&](){return Helper.matchShlOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2450 return false;
2451 }
2452 // Apply Patterns
2453 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2454 return true;
2455 }
2456 case GICXXCustomAction_GICombiner18:{
2457 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2458 // Match Patterns
2459 if(![&](){return Helper.matchSubOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2460 return false;
2461 }
2462 // Apply Patterns
2463 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2464 return true;
2465 }
2466 case GICXXCustomAction_GICombiner19:{
2467 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2468 // Match Patterns
2469 if(![&](){return !isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI) && Helper.matchFreezeOfSingleMaybePoisonOperand(*State.MIs[0], GIMatchData_matchinfo);}()) {
2470 return false;
2471 }
2472 // Apply Patterns
2473 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2474 return true;
2475 }
2476 case GICXXCustomAction_GICombiner20:{
2477 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2478 // Match Patterns
2479 if(![&](){return Helper.matchTruncateOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2480 return false;
2481 }
2482 // Apply Patterns
2483 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2484 return true;
2485 }
2486 case GICXXCustomAction_GICombiner21:{
2487 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2488 // Match Patterns
2489 if(![&](){return Helper.matchExtOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2490 return false;
2491 }
2492 // Apply Patterns
2493 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2494 return true;
2495 }
2496 case GICXXCustomAction_GICombiner22:{
2497 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2498 // Match Patterns
2499 if(![&](){return Helper.matchRedundantSextInReg(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2500 return false;
2501 }
2502 // Apply Patterns
2503 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2504 return true;
2505 }
2506 case GICXXCustomAction_GICombiner23:{
2507 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2508 // Match Patterns
2509 if(![&](){return Helper.matchCastOfSelect(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2510 return false;
2511 }
2512 // Apply Patterns
2513 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2514 return true;
2515 }
2516 case GICXXCustomAction_GICombiner24:{
2517 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2518 // Match Patterns
2519 if(![&](){return Helper.matchCastOfBuildVector(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2520 return false;
2521 }
2522 // Apply Patterns
2523 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2524 return true;
2525 }
2526 case GICXXCustomAction_GICombiner25:{
2527 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2528 // Match Patterns
2529 if(![&](){return Helper.matchNarrowBinop(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2530 return false;
2531 }
2532 // Apply Patterns
2533 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2534 return true;
2535 }
2536 case GICXXCustomAction_GICombiner26:{
2537 APInt GIMatchData_matchinfo;
2538 // Match Patterns
2539 if(![&](){return Helper.matchCastOfInteger(*State.MIs[0], GIMatchData_matchinfo);}()) {
2540 return false;
2541 }
2542 // Apply Patterns
2543 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
2544 return true;
2545 }
2546 case GICXXCustomAction_GICombiner27:{
2547 SmallVector<Register> GIMatchData_info;
2548 // Match Patterns
2549 if(![&](){return Helper.matchCombineInsertVecElts(*State.MIs[0], GIMatchData_info);}()) {
2550 return false;
2551 }
2552 // Apply Patterns
2553 Helper.applyCombineInsertVecElts(*State.MIs[0], GIMatchData_info);
2554 return true;
2555 }
2556 case GICXXCustomAction_GICombiner28:{
2557 Register GIMatchData_matchinfo;
2558 // Match Patterns
2559 if(![&](){return Helper.matchExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);}()) {
2560 return false;
2561 }
2562 // Apply Patterns
2563 Helper.applyExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);
2564 return true;
2565 }
2566 case GICXXCustomAction_GICombiner29:{
2567 SmallVector<std::pair<Register, MachineInstr*>> GIMatchData_matchinfo;
2568 // Match Patterns
2569 if(![&](){return Helper.matchExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
2570 return false;
2571 }
2572 // Apply Patterns
2573 Helper.applyExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);
2574 return true;
2575 }
2576 case GICXXCustomAction_GICombiner30:{
2577 PreferredTuple GIMatchData_matchinfo;
2578 // Match Patterns
2579 if(![&](){return Helper.matchCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);}()) {
2580 return false;
2581 }
2582 // Apply Patterns
2583 Helper.applyCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);
2584 return true;
2585 }
2586 case GICXXCustomAction_GICombiner31:{
2587 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2588 // Match Patterns
2589 if(![&](){return Helper.matchCombineLoadWithAndMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
2590 return false;
2591 }
2592 // Apply Patterns
2593 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2594 return true;
2595 }
2596 case GICXXCustomAction_GICombiner32:{
2597 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2598 // Match Patterns
2599 if(![&](){return Helper.matchCombineExtractedVectorLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
2600 return false;
2601 }
2602 // Apply Patterns
2603 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2604 return true;
2605 }
2606 case GICXXCustomAction_GICombiner33:{
2607 // Match Patterns
2608 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2609 return false;
2610 }
2611 // Apply Patterns
2612 Helper.replaceInstWithFConstant(*State.MIs[0], 0.0);
2613 return true;
2614 }
2615 case GICXXCustomAction_GICombiner34:{
2616 // Match Patterns
2617 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2618 return false;
2619 }
2620 // Apply Patterns
2621 Helper.replaceInstWithConstant(*State.MIs[0], 0);
2622 return true;
2623 }
2624 case GICXXCustomAction_GICombiner35:{
2625 // Match Patterns
2626 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2627 return false;
2628 }
2629 // Apply Patterns
2630 Helper.replaceInstWithConstant(*State.MIs[0], -1);
2631 return true;
2632 }
2633 case GICXXCustomAction_GICombiner36:{
2634 // Match Patterns
2635 if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 1);}()) {
2636 return false;
2637 }
2638 // Apply Patterns
2639 Helper.replaceInstWithConstant(*State.MIs[0], 0);
2640 return true;
2641 }
2642 case GICXXCustomAction_GICombiner37:{
2643 // Match Patterns
2644 if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 2);}()) {
2645 return false;
2646 }
2647 // Apply Patterns
2648 Helper.replaceInstWithUndef(*State.MIs[0]);
2649 return true;
2650 }
2651 case GICXXCustomAction_GICombiner38:{
2652 // Apply Patterns
2653 Helper.replaceInstWithUndef(*State.MIs[0]->getOperand(0).getParent());
2654 return true;
2655 }
2656 case GICXXCustomAction_GICombiner39:{
2657 // Match Patterns
2658 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2659 return false;
2660 }
2661 // Apply Patterns
2662 Helper.replaceInstWithUndef(*State.MIs[0]);
2663 return true;
2664 }
2665 case GICXXCustomAction_GICombiner40:{
2666 // Match Patterns
2667 if(![&](){return Helper.matchAllExplicitUsesAreUndef(*State.MIs[0]);}()) {
2668 return false;
2669 }
2670 // Apply Patterns
2671 Helper.replaceInstWithUndef(*State.MIs[0]);
2672 return true;
2673 }
2674 case GICXXCustomAction_GICombiner41:{
2675 // Match Patterns
2676 if(![&](){return Helper.matchUndefShuffleVectorMask(*State.MIs[0]);}()) {
2677 return false;
2678 }
2679 // Apply Patterns
2680 Helper.replaceInstWithUndef(*State.MIs[0]);
2681 return true;
2682 }
2683 case GICXXCustomAction_GICombiner42:{
2684 // Match Patterns
2685 if(![&](){return Helper.matchUndefStore(*State.MIs[0]);}()) {
2686 return false;
2687 }
2688 // Apply Patterns
2689 Helper.eraseInst(*State.MIs[0]);
2690 return true;
2691 }
2692 case GICXXCustomAction_GICombiner43:{
2693 // Match Patterns
2694 if(![&](){return Helper.matchInsertExtractVecEltOutOfBounds(*State.MIs[0]);}()) {
2695 return false;
2696 }
2697 // Apply Patterns
2698 Helper.replaceInstWithUndef(*State.MIs[0]);
2699 return true;
2700 }
2701 case GICXXCustomAction_GICombiner44:{
2702 // Match Patterns
2703 if(![&](){return Helper.matchSelectSameVal(*State.MIs[0]);}()) {
2704 return false;
2705 }
2706 // Apply Patterns
2707 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 2);
2708 return true;
2709 }
2710 case GICXXCustomAction_GICombiner45:{
2711 Register GIMatchData_info;
2712 // Match Patterns
2713 if(![&](){return Helper.matchCombineI2PToP2I(*State.MIs[0], GIMatchData_info);}()) {
2714 return false;
2715 }
2716 // Apply Patterns
2717 Helper.applyCombineI2PToP2I(*State.MIs[0], GIMatchData_info);
2718 return true;
2719 }
2720 case GICXXCustomAction_GICombiner46:{
2721 Register GIMatchData_info;
2722 // Match Patterns
2723 if(![&](){GIMatchData_info = State.MIs[1]->getOperand(1).getReg(); return true;}()) {
2724 return false;
2725 }
2726 // Apply Patterns
2727 Helper.applyCombineP2IToI2P(*State.MIs[0], GIMatchData_info);
2728 return true;
2729 }
2730 case GICXXCustomAction_GICombiner47:{
2731 Register GIMatchData_matchinfo;
2732 // Match Patterns
2733 if(![&](){return Helper.matchCombineAnyExtTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
2734 return false;
2735 }
2736 // Apply Patterns
2737 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2738 return true;
2739 }
2740 case GICXXCustomAction_GICombiner48:{
2741 Register GIMatchData_matchinfo;
2742 // Match Patterns
2743 if(![&](){return Helper.matchBuildVectorIdentityFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
2744 return false;
2745 }
2746 // Apply Patterns
2747 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2748 return true;
2749 }
2750 case GICXXCustomAction_GICombiner49:{
2751 Register GIMatchData_matchinfo;
2752 // Match Patterns
2753 if(![&](){return Helper.matchTruncBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
2754 return false;
2755 }
2756 // Apply Patterns
2757 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2758 return true;
2759 }
2760 case GICXXCustomAction_GICombiner50:{
2761 Register GIMatchData_matchinfo;
2762 // Match Patterns
2763 if(![&](){return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
2764 return false;
2765 }
2766 // Apply Patterns
2767 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2768 return true;
2769 }
2770 case GICXXCustomAction_GICombiner51:{
2771 // Match Patterns
2772 if(![&](){return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());}()) {
2773 return false;
2774 }
2775 // Apply Patterns
2776 Helper.replaceSingleDefInstWithReg(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
2777 return true;
2778 }
2779 case GICXXCustomAction_GICombiner52:{
2780 MachineInstr* GIMatchData_matchinfo;
2781 // Match Patterns
2782 if(![&](){return Helper.matchExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);}()) {
2783 return false;
2784 }
2785 // Apply Patterns
2786 Helper.applyExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);
2787 return true;
2788 }
2789 case GICXXCustomAction_GICombiner53:{
2790 std::tuple<Register, Register> GIMatchData_info;
2791 // Match Patterns
2792 if(![&](){return Helper.matchSimplifyAddToSub(*State.MIs[0], GIMatchData_info);}()) {
2793 return false;
2794 }
2795 // Apply Patterns
2796 Helper.applySimplifyAddToSub(*State.MIs[0], GIMatchData_info);
2797 return true;
2798 }
2799 case GICXXCustomAction_GICombiner54:{
2800 InstructionStepsMatchInfo GIMatchData_info;
2801 // Match Patterns
2802 if(![&](){return Helper.matchHoistLogicOpWithSameOpcodeHands(*State.MIs[0], GIMatchData_info);}()) {
2803 return false;
2804 }
2805 // Apply Patterns
2806 Helper.applyBuildInstructionSteps(*State.MIs[0], GIMatchData_info);
2807 return true;
2808 }
2809 case GICXXCustomAction_GICombiner55:{
2810 std::optional<int64_t> GIMatchData_matchinfo;
2811 // Match Patterns
2812 if(![&](){return Helper.matchShiftsTooBig(*State.MIs[0], GIMatchData_matchinfo);}()) {
2813 return false;
2814 }
2815 // Apply Patterns
2816 if (GIMatchData_matchinfo) {
2817 Helper.replaceInstWithConstant(*State.MIs[0], *GIMatchData_matchinfo);
2818 } else {
2819 Helper.replaceInstWithUndef(*State.MIs[0]);
2820 }
2821 return true;
2822 }
2823 case GICXXCustomAction_GICombiner56:{
2824 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2825 // Match Patterns
2826 if(![&](){return Helper.matchReassocPtrAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2827 return false;
2828 }
2829 // Apply Patterns
2830 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2831 return true;
2832 }
2833 case GICXXCustomAction_GICombiner57:{
2834 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2835 // Match Patterns
2836 if(![&](){return Helper.matchReassocCommBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2837 return false;
2838 }
2839 // Apply Patterns
2840 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2841 return true;
2842 }
2843 case GICXXCustomAction_GICombiner58:{
2844 PtrAddChain GIMatchData_matchinfo;
2845 // Match Patterns
2846 if(![&](){return Helper.matchPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
2847 return false;
2848 }
2849 // Apply Patterns
2850 Helper.applyPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);
2851 return true;
2852 }
2853 case GICXXCustomAction_GICombiner59:{
2854 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2855 // Match Patterns
2856 if(![&](){return Helper.matchCanonicalizeICmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2857 return false;
2858 }
2859 // Apply Patterns
2860 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2861 return true;
2862 }
2863 case GICXXCustomAction_GICombiner60:{
2864 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2865 // Match Patterns
2866 if(![&](){return Helper.matchCanonicalizeFCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2867 return false;
2868 }
2869 // Apply Patterns
2870 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2871 return true;
2872 }
2873 case GICXXCustomAction_GICombiner61:{
2874 int64_t GIMatchData_matchinfo;
2875 // Match Patterns
2876 if(![&](){return Helper.matchICmpToTrueFalseKnownBits(*State.MIs[0], GIMatchData_matchinfo);}()) {
2877 return false;
2878 }
2879 // Apply Patterns
2880 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
2881 return true;
2882 }
2883 case GICXXCustomAction_GICombiner62:{
2884 std::function<void(MachineIRBuilder &)> GIMatchData_info;
2885 // Match Patterns
2886 if(![&](){return Helper.matchICmpToLHSKnownBits(*State.MIs[0], GIMatchData_info);}()) {
2887 return false;
2888 }
2889 // Apply Patterns
2890 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
2891 return true;
2892 }
2893 case GICXXCustomAction_GICombiner63:{
2894 std::function<void(MachineIRBuilder &)> GIMatchData_info;
2895 // Match Patterns
2896 if(![&](){return Helper.matchRedundantBinOpInEquality(*State.MIs[0], GIMatchData_info);}()) {
2897 return false;
2898 }
2899 // Apply Patterns
2900 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
2901 return true;
2902 }
2903 case GICXXCustomAction_GICombiner64:{
2904 std::tuple<Register, int64_t> GIMatchData_info;
2905 // Match Patterns
2906 if(![&](){return Helper.matchAshrShlToSextInreg(*State.MIs[0], GIMatchData_info);}()) {
2907 return false;
2908 }
2909 // Apply Patterns
2910 Helper.applyAshShlToSextInreg(*State.MIs[0], GIMatchData_info);
2911 return true;
2912 }
2913 case GICXXCustomAction_GICombiner65:{
2914 std::tuple<Register, unsigned> GIMatchData_matchinfo;
2915 // Match Patterns
2916 if(![&](){return Helper.matchSextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
2917 return false;
2918 }
2919 // Apply Patterns
2920 Helper.applySextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);
2921 return true;
2922 }
2923 case GICXXCustomAction_GICombiner66:{
2924 RegisterImmPair GIMatchData_matchinfo;
2925 // Match Patterns
2926 if(![&](){return Helper.matchCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);}()) {
2927 return false;
2928 }
2929 // Apply Patterns
2930 Helper.applyCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);
2931 return true;
2932 }
2933 case GICXXCustomAction_GICombiner67:{
2934 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2935 // Match Patterns
2936 if(![&](){return Helper.matchNarrowBinopFeedingAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2937 return false;
2938 }
2939 // Apply Patterns
2940 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2941 return true;
2942 }
2943 case GICXXCustomAction_GICombiner68:{
2944 unsigned GIMatchData_matchinfo;
2945 // Match Patterns
2946 if(![&](){return Helper.matchConstantSelectCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2947 return false;
2948 }
2949 // Apply Patterns
2950 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_matchinfo);
2951 return true;
2952 }
2953 case GICXXCustomAction_GICombiner69:{
2954 std::function<void(MachineIRBuilder &)> GIMatchData_info;
2955 // Match Patterns
2956 if(![&](){return Helper.matchSelectIMinMax(State.MIs[0]->getOperand(0), GIMatchData_info);}()) {
2957 return false;
2958 }
2959 // Apply Patterns
2960 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_info);
2961 return true;
2962 }
2963 case GICXXCustomAction_GICombiner70:{
2964 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2965 // Match Patterns
2966 if(![&](){return Helper.matchSelect(*State.MIs[0], GIMatchData_matchinfo);}()) {
2967 return false;
2968 }
2969 // Apply Patterns
2970 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2971 return true;
2972 }
2973 case GICXXCustomAction_GICombiner71:{
2974 Register GIMatchData_matchinfo;
2975 // Match Patterns
2976 if(![&](){return Helper.matchRedundantAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2977 return false;
2978 }
2979 // Apply Patterns
2980 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2981 return true;
2982 }
2983 case GICXXCustomAction_GICombiner72:{
2984 // Match Patterns
2985 if(![&](){return Helper.matchRedundantSExtInReg(*State.MIs[0]);}()) {
2986 return false;
2987 }
2988 // Apply Patterns
2989 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 1);
2990 return true;
2991 }
2992 case GICXXCustomAction_GICombiner73:{
2993 Register GIMatchData_matchinfo;
2994 // Match Patterns
2995 if(![&](){return Helper.matchRedundantOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
2996 return false;
2997 }
2998 // Apply Patterns
2999 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3000 return true;
3001 }
3002 case GICXXCustomAction_GICombiner74:{
3003 // Match Patterns
3004 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(*State.MIs[0], 2);}()) {
3005 return false;
3006 }
3007 // Apply Patterns
3008 Helper.applySimplifyURemByPow2(*State.MIs[0]);
3009 return true;
3010 }
3011 case GICXXCustomAction_GICombiner75:{
3012 Register GIMatchData_matchinfo;
3013 // Match Patterns
3014 if(![&](){return Helper.matchCombineZextTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
3015 return false;
3016 }
3017 // Apply Patterns
3018 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3019 return true;
3020 }
3021 case GICXXCustomAction_GICombiner76:{
3022 // Match Patterns
3023 if(![&](){unsigned BitWidth = MRI.getType(State.MIs[0]->getOperand(1).getReg()).getScalarSizeInBits();
3024 return Helper.getValueTracking()->maskedValueIsZero(State.MIs[0]->getOperand(1).getReg(),
3025 APInt::getOneBitSet(BitWidth, State.MIs[0]->getOperand(2).getImm() - 1));}()) {
3026 return false;
3027 }
3028 // Apply Patterns
3029 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
3030 Helper.getBuilder().buildZExtInReg(State.MIs[0]->getOperand(0), State.MIs[0]->getOperand(1), State.MIs[0]->getOperand(2).getImm());
3031 State.MIs[0]->eraseFromParent();
3032 return true;
3033 }
3034 case GICXXCustomAction_GICombiner77:{
3035 std::pair<MachineInstr*, LLT> GIMatchData_matchinfo;
3036 // Match Patterns
3037 if(![&](){return Helper.matchCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
3038 return false;
3039 }
3040 // Apply Patterns
3041 Helper.applyCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);
3042 return true;
3043 }
3044 case GICXXCustomAction_GICombiner78:{
3045 SmallVector<Register> GIMatchData_info;
3046 // Match Patterns
3047 if(![&](){return Helper.matchNotCmp(*State.MIs[0], GIMatchData_info);}()) {
3048 return false;
3049 }
3050 // Apply Patterns
3051 Helper.applyNotCmp(*State.MIs[0], GIMatchData_info);
3052 return true;
3053 }
3054 case GICXXCustomAction_GICombiner79:{
3055 MachineInstr * GIMatchData_matchinfo;
3056 // Match Patterns
3057 if(![&](){return Helper.matchOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);}()) {
3058 return false;
3059 }
3060 // Apply Patterns
3061 Helper.applyOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);
3062 return true;
3063 }
3064 case GICXXCustomAction_GICombiner80:{
3065 // Apply Patterns
3066 Helper.applyCombineConstantFoldFpUnary(*State.MIs[0], State.MIs[1]->getOperand(1).getFPImm());
3067 return true;
3068 }
3069 case GICXXCustomAction_GICombiner81:{
3070 // Apply Patterns
3071 Helper.replaceInstWithFConstant(*State.MIs[0]->getOperand(0).getParent(), 0.0);
3072 return true;
3073 }
3074 case GICXXCustomAction_GICombiner82:{
3075 APInt GIMatchData_info;
3076 // Match Patterns
3077 if(![&](){return Helper.matchCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info);}()) {
3078 return false;
3079 }
3080 // Apply Patterns
3081 Helper.applyCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info);
3082 return true;
3083 }
3084 case GICXXCustomAction_GICombiner83:{
3085 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3086 // Match Patterns
3087 if(![&](){return Helper.matchOverlappingAnd(*State.MIs[0], GIMatchData_info);}()) {
3088 return false;
3089 }
3090 // Apply Patterns
3091 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3092 return true;
3093 }
3094 case GICXXCustomAction_GICombiner84:{
3095 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3096 // Match Patterns
3097 if(![&](){return Helper.matchMulOBy2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3098 return false;
3099 }
3100 // Apply Patterns
3101 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3102 return true;
3103 }
3104 case GICXXCustomAction_GICombiner85:{
3105 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3106 // Match Patterns
3107 if(![&](){return Helper.matchMulOBy0(*State.MIs[0], GIMatchData_matchinfo);}()) {
3108 return false;
3109 }
3110 // Apply Patterns
3111 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3112 return true;
3113 }
3114 case GICXXCustomAction_GICombiner86:{
3115 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3116 // Match Patterns
3117 if(![&](){return Helper.matchAddEToAddO(*State.MIs[0], GIMatchData_matchinfo);}()) {
3118 return false;
3119 }
3120 // Apply Patterns
3121 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3122 return true;
3123 }
3124 case GICXXCustomAction_GICombiner87:{
3125 unsigned GIMatchData_info;
3126 // Match Patterns
3127 if(![&](){return Helper.matchCombineFMinMaxNaN(*State.MIs[0], GIMatchData_info);}()) {
3128 return false;
3129 }
3130 // Apply Patterns
3131 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_info);
3132 return true;
3133 }
3134 case GICXXCustomAction_GICombiner88:{
3135 // Match Patterns
3136 if(![&](){return Helper.matchFPowIExpansion(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());}()) {
3137 return false;
3138 }
3139 // Apply Patterns
3140 Helper.applyExpandFPowI(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());
3141 return true;
3142 }
3143 case GICXXCustomAction_GICombiner89:{
3144 std::pair<Register, Register> GIMatchData_matchinfo;
3145 // Match Patterns
3146 if(![&](){return Helper.matchXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3147 return false;
3148 }
3149 // Apply Patterns
3150 Helper.applyXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);
3151 return true;
3152 }
3153 case GICXXCustomAction_GICombiner90:{
3154 // Match Patterns
3155 if(![&](){return Helper.matchPtrAddZero(*State.MIs[0]);}()) {
3156 return false;
3157 }
3158 // Apply Patterns
3159 Helper.applyPtrAddZero(*State.MIs[0]);
3160 return true;
3161 }
3162 case GICXXCustomAction_GICombiner91:{
3163 RegisterImmPair GIMatchData_matchinfo;
3164 // Match Patterns
3165 if(![&](){return Helper.matchShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
3166 return false;
3167 }
3168 // Apply Patterns
3169 Helper.applyShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);
3170 return true;
3171 }
3172 case GICXXCustomAction_GICombiner92:{
3173 ShiftOfShiftedLogic GIMatchData_matchinfo;
3174 // Match Patterns
3175 if(![&](){return Helper.matchShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);}()) {
3176 return false;
3177 }
3178 // Apply Patterns
3179 Helper.applyShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);
3180 return true;
3181 }
3182 case GICXXCustomAction_GICombiner93:{
3183 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3184 // Match Patterns
3185 if(![&](){return Helper.matchLoadOrCombine(*State.MIs[0], GIMatchData_info);}()) {
3186 return false;
3187 }
3188 // Apply Patterns
3189 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3190 return true;
3191 }
3192 case GICXXCustomAction_GICombiner94:{
3193 MachineInstr * GIMatchData_matchinfo;
3194 // Match Patterns
3195 if(![&](){return Helper.matchCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);}()) {
3196 return false;
3197 }
3198 // Apply Patterns
3199 Helper.applyCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);
3200 return true;
3201 }
3202 case GICXXCustomAction_GICombiner95:{
3203 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3204 // Match Patterns
3205 if(![&](){return Helper.matchOrShiftToFunnelShift(*State.MIs[0], false, GIMatchData_info);}()) {
3206 return false;
3207 }
3208 // Apply Patterns
3209 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3210 return true;
3211 }
3212 case GICXXCustomAction_GICombiner96:{
3213 // Match Patterns
3214 if(![&](){return Helper.matchFunnelShiftToRotate(*State.MIs[0]);}()) {
3215 return false;
3216 }
3217 // Apply Patterns
3218 Helper.applyFunnelShiftToRotate(*State.MIs[0]);
3219 return true;
3220 }
3221 case GICXXCustomAction_GICombiner97:{
3222 // Match Patterns
3223 if(![&](){return Helper.matchConstantLargerBitWidth(*State.MIs[0], 3);}()) {
3224 return false;
3225 }
3226 // Apply Patterns
3227 Helper.applyFunnelShiftConstantModulo(*State.MIs[0]);
3228 return true;
3229 }
3230 case GICXXCustomAction_GICombiner98:{
3231 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3232 // Match Patterns
3233 if(![&](){return Helper.matchCommuteShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
3234 return false;
3235 }
3236 // Apply Patterns
3237 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3238 return true;
3239 }
3240 case GICXXCustomAction_GICombiner99:{
3241 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3242 // Match Patterns
3243 if(![&](){return Helper.matchBitfieldExtractFromSExtInReg(*State.MIs[0], GIMatchData_info);}()) {
3244 return false;
3245 }
3246 // Apply Patterns
3247 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3248 return true;
3249 }
3250 case GICXXCustomAction_GICombiner100:{
3251 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3252 // Match Patterns
3253 if(![&](){return Helper.matchBitfieldExtractFromAnd(*State.MIs[0], GIMatchData_info);}()) {
3254 return false;
3255 }
3256 // Apply Patterns
3257 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3258 return true;
3259 }
3260 case GICXXCustomAction_GICombiner101:{
3261 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3262 // Match Patterns
3263 if(![&](){return Helper.matchBitfieldExtractFromShr(*State.MIs[0], GIMatchData_info);}()) {
3264 return false;
3265 }
3266 // Apply Patterns
3267 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3268 return true;
3269 }
3270 case GICXXCustomAction_GICombiner102:{
3271 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3272 // Match Patterns
3273 if(![&](){return Helper.matchBitfieldExtractFromShrAnd(*State.MIs[0], GIMatchData_info);}()) {
3274 return false;
3275 }
3276 // Apply Patterns
3277 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3278 return true;
3279 }
3280 case GICXXCustomAction_GICombiner103:{
3281 APInt GIMatchData_matchinfo;
3282 // Match Patterns
3283 if(![&](){return Helper.matchConstantFoldBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3284 return false;
3285 }
3286 // Apply Patterns
3287 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3288 return true;
3289 }
3290 case GICXXCustomAction_GICombiner104:{
3291 ConstantFP* GIMatchData_matchinfo;
3292 // Match Patterns
3293 if(![&](){return Helper.matchConstantFoldFPBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3294 return false;
3295 }
3296 // Apply Patterns
3297 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3298 return true;
3299 }
3300 case GICXXCustomAction_GICombiner105:{
3301 ConstantFP* GIMatchData_matchinfo;
3302 // Match Patterns
3303 if(![&](){return Helper.matchConstantFoldFMA(*State.MIs[0], GIMatchData_matchinfo);}()) {
3304 return false;
3305 }
3306 // Apply Patterns
3307 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3308 return true;
3309 }
3310 case GICXXCustomAction_GICombiner106:{
3311 APInt GIMatchData_matchinfo;
3312 // Match Patterns
3313 if(![&](){return Helper.matchConstantFoldCastOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3314 return false;
3315 }
3316 // Apply Patterns
3317 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3318 return true;
3319 }
3320 case GICXXCustomAction_GICombiner107:{
3321 // Match Patterns
3322 if(![&](){return Helper.matchUMulHToLShr(*State.MIs[0]);}()) {
3323 return false;
3324 }
3325 // Apply Patterns
3326 Helper.applyUMulHToLShr(*State.MIs[0]);
3327 return true;
3328 }
3329 case GICXXCustomAction_GICombiner108:{
3330 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3331 // Match Patterns
3332 if(![&](){return Helper.matchRedundantNegOperands(*State.MIs[0], GIMatchData_matchinfo);}()) {
3333 return false;
3334 }
3335 // Apply Patterns
3336 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3337 return true;
3338 }
3339 case GICXXCustomAction_GICombiner109:{
3340 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3341 // Match Patterns
3342 if(![&](){return Helper.matchAndOrDisjointMask(*State.MIs[0], GIMatchData_info);}()) {
3343 return false;
3344 }
3345 // Apply Patterns
3346 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_info);
3347 return true;
3348 }
3349 case GICXXCustomAction_GICombiner110:{
3350 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3351 // Match Patterns
3352 if(![&](){return Helper.matchCombineFAddFMulToFMadOrFMA(*State.MIs[0],
3353 GIMatchData_info);}()) {
3354 return false;
3355 }
3356 // Apply Patterns
3357 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3358 return true;
3359 }
3360 case GICXXCustomAction_GICombiner111:{
3361 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3362 // Match Patterns
3363 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMA(*State.MIs[0],
3364 GIMatchData_info);}()) {
3365 return false;
3366 }
3367 // Apply Patterns
3368 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3369 return true;
3370 }
3371 case GICXXCustomAction_GICombiner112:{
3372 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3373 // Match Patterns
3374 if(![&](){return Helper.matchCombineFAddFMAFMulToFMadOrFMA(*State.MIs[0],
3375 GIMatchData_info);}()) {
3376 return false;
3377 }
3378 // Apply Patterns
3379 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3380 return true;
3381 }
3382 case GICXXCustomAction_GICombiner113:{
3383 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3384 // Match Patterns
3385 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMAAggressive(
3386 *State.MIs[0], GIMatchData_info);}()) {
3387 return false;
3388 }
3389 // Apply Patterns
3390 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3391 return true;
3392 }
3393 case GICXXCustomAction_GICombiner114:{
3394 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3395 // Match Patterns
3396 if(![&](){return Helper.matchCombineFSubFMulToFMadOrFMA(*State.MIs[0],
3397 GIMatchData_info);}()) {
3398 return false;
3399 }
3400 // Apply Patterns
3401 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3402 return true;
3403 }
3404 case GICXXCustomAction_GICombiner115:{
3405 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3406 // Match Patterns
3407 if(![&](){return Helper.matchCombineFSubFNegFMulToFMadOrFMA(*State.MIs[0],
3408 GIMatchData_info);}()) {
3409 return false;
3410 }
3411 // Apply Patterns
3412 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3413 return true;
3414 }
3415 case GICXXCustomAction_GICombiner116:{
3416 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3417 // Match Patterns
3418 if(![&](){return Helper.matchCombineFSubFpExtFMulToFMadOrFMA(*State.MIs[0],
3419 GIMatchData_info);}()) {
3420 return false;
3421 }
3422 // Apply Patterns
3423 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3424 return true;
3425 }
3426 case GICXXCustomAction_GICombiner117:{
3427 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3428 // Match Patterns
3429 if(![&](){return Helper.matchCombineFSubFpExtFNegFMulToFMadOrFMA(
3430 *State.MIs[0], GIMatchData_info);}()) {
3431 return false;
3432 }
3433 // Apply Patterns
3434 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3435 return true;
3436 }
3437 case GICXXCustomAction_GICombiner118:{
3438 unsigned GIMatchData_select_op_no;
3439 // Match Patterns
3440 if(![&](){return Helper.matchFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);}()) {
3441 return false;
3442 }
3443 // Apply Patterns
3444 Helper.applyFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);
3445 return true;
3446 }
3447 case GICXXCustomAction_GICombiner119:{
3448 // Match Patterns
3449 if(![&](){return Helper.matchUDivOrURemByConst(*State.MIs[0]);}()) {
3450 return false;
3451 }
3452 // Apply Patterns
3453 Helper.applyUDivOrURemByConst(*State.MIs[0]);
3454 return true;
3455 }
3456 case GICXXCustomAction_GICombiner120:{
3457 // Match Patterns
3458 if(![&](){return Helper.matchSDivOrSRemByConst(*State.MIs[0]);}()) {
3459 return false;
3460 }
3461 // Apply Patterns
3462 Helper.applySDivOrSRemByConst(*State.MIs[0]);
3463 return true;
3464 }
3465 case GICXXCustomAction_GICombiner121:{
3466 // Match Patterns
3467 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/false);}()) {
3468 return false;
3469 }
3470 // Apply Patterns
3471 Helper.applyUDivByPow2(*State.MIs[0]);
3472 return true;
3473 }
3474 case GICXXCustomAction_GICombiner122:{
3475 // Match Patterns
3476 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/true);}()) {
3477 return false;
3478 }
3479 // Apply Patterns
3480 Helper.applySDivByPow2(*State.MIs[0]);
3481 return true;
3482 }
3483 case GICXXCustomAction_GICombiner123:{
3484 SmallVector<MachineInstr *> GIMatchData_matchinfo;
3485 // Match Patterns
3486 if(![&](){return Helper.matchRepeatedFPDivisor(*State.MIs[0], GIMatchData_matchinfo);}()) {
3487 return false;
3488 }
3489 // Apply Patterns
3490 Helper.applyRepeatedFPDivisor(GIMatchData_matchinfo);
3491 return true;
3492 }
3493 case GICXXCustomAction_GICombiner124:{
3494 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3495 // Match Patterns
3496 if(![&](){return Helper.matchSubAddSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3497 return false;
3498 }
3499 // Apply Patterns
3500 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3501 return true;
3502 }
3503 case GICXXCustomAction_GICombiner125:{
3504 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3505 // Match Patterns
3506 if(![&](){return Helper.matchSimplifySelectToMinMax(*State.MIs[0], GIMatchData_info);}()) {
3507 return false;
3508 }
3509 // Apply Patterns
3510 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3511 return true;
3512 }
3513 case GICXXCustomAction_GICombiner126:{
3514 Register GIMatchData_matchinfo;
3515 // Match Patterns
3516 if(![&](){return Helper.matchFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3517 return false;
3518 }
3519 // Apply Patterns
3520 Helper.applyFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);
3521 return true;
3522 }
3523 case GICXXCustomAction_GICombiner127:{
3524 // Match Patterns
3525 if(![&](){return Helper.matchCommuteConstantToRHS(*State.MIs[0]);}()) {
3526 return false;
3527 }
3528 // Apply Patterns
3529 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
3530 return true;
3531 }
3532 case GICXXCustomAction_GICombiner128:{
3533 // Match Patterns
3534 if(![&](){return Helper.matchCommuteFPConstantToRHS(*State.MIs[0]);}()) {
3535 return false;
3536 }
3537 // Apply Patterns
3538 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
3539 return true;
3540 }
3541 case GICXXCustomAction_GICombiner129:{
3542 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3543 // Match Patterns
3544 if(![&](){return Helper.matchAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3545 return false;
3546 }
3547 // Apply Patterns
3548 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3549 return true;
3550 }
3551 case GICXXCustomAction_GICombiner130:{
3552 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3553 // Match Patterns
3554 if(![&](){return Helper.matchOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
3555 return false;
3556 }
3557 // Apply Patterns
3558 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3559 return true;
3560 }
3561 case GICXXCustomAction_GICombiner131:{
3562 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3563 // Match Patterns
3564 if(![&](){return Helper.matchSimplifyNegMinMax(*State.MIs[0], GIMatchData_matchinfo);}()) {
3565 return false;
3566 }
3567 // Apply Patterns
3568 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3569 return true;
3570 }
3571 case GICXXCustomAction_GICombiner132:{
3572 SmallVector<Register> GIMatchData_matchinfo;
3573 // Match Patterns
3574 if(![&](){return Helper.matchCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);}()) {
3575 return false;
3576 }
3577 // Apply Patterns
3578 Helper.applyCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);
3579 return true;
3580 }
3581 case GICXXCustomAction_GICombiner133:{
3582 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3583 // Match Patterns
3584 if(![&](){return Helper.matchSextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3585 return false;
3586 }
3587 // Apply Patterns
3588 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3589 return true;
3590 }
3591 case GICXXCustomAction_GICombiner134:{
3592 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3593 // Match Patterns
3594 if(![&](){return Helper.matchZextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3595 return false;
3596 }
3597 // Apply Patterns
3598 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3599 return true;
3600 }
3601 case GICXXCustomAction_GICombiner135:{
3602 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3603 // Match Patterns
3604 if(![&](){return Helper.matchNonNegZext(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3605 return false;
3606 }
3607 // Apply Patterns
3608 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3609 return true;
3610 }
3611 case GICXXCustomAction_GICombiner136:{
3612 SmallVector<Register> GIMatchData_matchinfo;
3613 // Match Patterns
3614 if(![&](){return Helper.matchCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);}()) {
3615 return false;
3616 }
3617 // Apply Patterns
3618 Helper.applyCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);
3619 return true;
3620 }
3621 case GICXXCustomAction_GICombiner137:{
3622 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3623 // Match Patterns
3624 if(![&](){return Helper.matchShuffleUndefRHS(*State.MIs[0], GIMatchData_matchinfo);}()) {
3625 return false;
3626 }
3627 // Apply Patterns
3628 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3629 return true;
3630 }
3631 case GICXXCustomAction_GICombiner138:{
3632 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3633 // Match Patterns
3634 if(![&](){return Helper.matchShuffleDisjointMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
3635 return false;
3636 }
3637 // Apply Patterns
3638 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3639 return true;
3640 }
3641 case GICXXCustomAction_GICombiner139:{
3642 Register GIMatchData_matchinfo;
3643 // Match Patterns
3644 if(![&](){return Helper.matchUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);}()) {
3645 return false;
3646 }
3647 // Apply Patterns
3648 Helper.applyUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);
3649 return true;
3650 }
3651 case GICXXCustomAction_GICombiner140:{
3652 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3653 // Match Patterns
3654 if(![&](){return Helper.matchUnmergeValuesAnyExtBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
3655 return false;
3656 }
3657 // Apply Patterns
3658 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3659 return true;
3660 }
3661 case GICXXCustomAction_GICombiner141:{
3662 SmallVector<Register> GIMatchData_info;
3663 // Match Patterns
3664 if(![&](){return Helper.matchCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);}()) {
3665 return false;
3666 }
3667 // Apply Patterns
3668 Helper.applyCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);
3669 return true;
3670 }
3671 case GICXXCustomAction_GICombiner142:{
3672 Register GIMatchData_src;
3673 // Match Patterns
3674 if(![&](){// Check if first source comes from G_UNMERGE_VALUES.
3675 Register FirstMergeSrc = getRemainingOperands(*State.MIs[0], 1)[0].getReg();
3676 MachineInstr *UnmergeMI = MRI.getVRegDef(FirstMergeSrc);
3677 if (!UnmergeMI || UnmergeMI->getOpcode() != TargetOpcode::G_UNMERGE_VALUES)
3678 return false;
3679
3680 // Check counts match.
3681 unsigned NumMergeSrcs = getRemainingOperands(*State.MIs[0], 1).size();
3682 unsigned NumUnmergeDefs = UnmergeMI->getNumDefs();
3683 if (NumMergeSrcs != NumUnmergeDefs)
3684 return false;
3685
3686 // Verify all merge sources match unmerge defs in order.
3687 for (unsigned I = 0; I < NumMergeSrcs; ++I) {
3688 Register MergeSrc = getRemainingOperands(*State.MIs[0], 1)[I].getReg();
3689 Register UnmergeDef = UnmergeMI->getOperand(I).getReg();
3690
3691 if (MergeSrc != UnmergeDef)
3692 return false;
3693
3694 if (!MRI.hasOneNonDBGUse(MergeSrc))
3695 return false;
3696 }
3697
3698 // Check size compatibility.
3699 GIMatchData_src = UnmergeMI->getOperand(NumUnmergeDefs).getReg();
3700 LLT SrcTy = MRI.getType(GIMatchData_src);
3701 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
3702 if (SrcTy.getSizeInBits() != DstTy.getSizeInBits())
3703 return false;
3704
3705 // Check bitcast legality.
3706 if (SrcTy != DstTy) {
3707 std::array<LLT, 2> Types = {{DstTy, SrcTy}};
3708 LegalityQuery Query(TargetOpcode::G_BITCAST, Types);
3709 if (!Helper.isLegalOrBeforeLegalizer(Query))
3710 return false;
3711 }
3712
3713 return true;}()) {
3714 return false;
3715 }
3716 // Apply Patterns
3717 LLT SrcTy = MRI.getType(GIMatchData_src);
3718 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
3719
3720 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
3721
3722 if (SrcTy == DstTy) {
3723 Helper.replaceRegWith(MRI, State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
3724 } else {
3725 Helper.getBuilder().buildBitcast(State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
3726 }
3727
3728 State.MIs[0]->eraseFromParent();
3729 return true;
3730 }
3731 case GICXXCustomAction_GICombiner143:{
3732 SmallVector<APInt, 8> GIMatchData_info;
3733 // Match Patterns
3734 if(![&](){return Helper.matchCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);}()) {
3735 return false;
3736 }
3737 // Apply Patterns
3738 Helper.applyCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);
3739 return true;
3740 }
3741 case GICXXCustomAction_GICombiner144:{
3742 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3743 // Match Patterns
3744 if(![&](){return Helper.matchCombineUnmergeUndef(*State.MIs[0], GIMatchData_info);}()) {
3745 return false;
3746 }
3747 // Apply Patterns
3748 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3749 return true;
3750 }
3751 case GICXXCustomAction_GICombiner145:{
3752 // Match Patterns
3753 if(![&](){return Helper.matchCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);}()) {
3754 return false;
3755 }
3756 // Apply Patterns
3757 Helper.applyCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);
3758 return true;
3759 }
3760 case GICXXCustomAction_GICombiner146:{
3761 // Match Patterns
3762 if(![&](){return Helper.matchCombineUnmergeZExtToZExt(*State.MIs[0]);}()) {
3763 return false;
3764 }
3765 // Apply Patterns
3766 Helper.applyCombineUnmergeZExtToZExt(*State.MIs[0]);
3767 return true;
3768 }
3769 case GICXXCustomAction_GICombiner147:{
3770 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3771 // Match Patterns
3772 if(![&](){return Helper.matchMergeXAndUndef(*State.MIs[0], GIMatchData_matchinfo);}()) {
3773 return false;
3774 }
3775 // Apply Patterns
3776 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3777 return true;
3778 }
3779 case GICXXCustomAction_GICombiner148:{
3780 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3781 // Match Patterns
3782 if(![&](){return Helper.matchMergeXAndZero(*State.MIs[0], GIMatchData_matchinfo);}()) {
3783 return false;
3784 }
3785 // Apply Patterns
3786 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3787 return true;
3788 }
3789 case GICXXCustomAction_GICombiner149:{
3790 Register GIMatchData_unmergeSrc;
3791 // Match Patterns
3792 if(![&](){return Helper.matchCombineBuildUnmerge(*State.MIs[0], MRI, GIMatchData_unmergeSrc);}()) {
3793 return false;
3794 }
3795 // Apply Patterns
3796 Helper.applyCombineBuildUnmerge(*State.MIs[0], MRI, B, GIMatchData_unmergeSrc);
3797 return true;
3798 }
3799 case GICXXCustomAction_GICombiner150:{
3800 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3801 // Match Patterns
3802 if(![&](){return Helper.matchAddOverflow(*State.MIs[0], GIMatchData_matchinfo);}()) {
3803 return false;
3804 }
3805 // Apply Patterns
3806 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3807 return true;
3808 }
3809 case GICXXCustomAction_GICombiner151:{
3810 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3811 // Match Patterns
3812 if(![&](){return Helper.matchSuboCarryOut(*State.MIs[0], GIMatchData_matchinfo);}()) {
3813 return false;
3814 }
3815 // Apply Patterns
3816 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3817 return true;
3818 }
3819 case GICXXCustomAction_GICombiner152:{
3820 Register GIMatchData_matchinfo;
3821 // Match Patterns
3822 if(![&](){return Helper.matchTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);}()) {
3823 return false;
3824 }
3825 // Apply Patterns
3826 Helper.applyTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);
3827 return true;
3828 }
3829 case GICXXCustomAction_GICombiner153:{
3830 Register GIMatchData_matchinfo;
3831 // Match Patterns
3832 if(![&](){return Helper.matchTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);}()) {
3833 return false;
3834 }
3835 // Apply Patterns
3836 Helper.applyTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);
3837 return true;
3838 }
3839 case GICXXCustomAction_GICombiner154:{
3840 LshrOfTruncOfLshr GIMatchData_matchinfo;
3841 // Match Patterns
3842 if(![&](){return Helper.matchLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo, *State.MIs[2]);}()) {
3843 return false;
3844 }
3845 // Apply Patterns
3846 Helper.applyLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo);
3847 return true;
3848 }
3849 case GICXXCustomAction_GICombiner155:{
3850 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3851 // Match Patterns
3852 if(![&](){return Helper.matchCtls(*State.MIs[0], GIMatchData_matchinfo);}()) {
3853 return false;
3854 }
3855 // Apply Patterns
3856 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3857 return true;
3858 }
3859 case GICXXCustomAction_GICombiner156:{
3860 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3861 // Match Patterns
3862 if(![&](){return Helper.matchBinopWithNeg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3863 return false;
3864 }
3865 // Apply Patterns
3866 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3867 return true;
3868 }
3869 }
3870 llvm_unreachable("Unknown Apply Action");
3871}
3872#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
3873#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((Val) >> 8)
3874#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24)
3875#define GIMT_Encode8(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24), uint8_t(uint64_t(Val) >> 32), uint8_t(uint64_t(Val) >> 40), uint8_t(uint64_t(Val) >> 48), uint8_t(uint64_t(Val) >> 56)
3876#else
3877#define GIMT_Encode2(Val) uint8_t((Val) >> 8), uint8_t(Val)
3878#define GIMT_Encode4(Val) uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
3879#define GIMT_Encode8(Val) uint8_t(uint64_t(Val) >> 56), uint8_t(uint64_t(Val) >> 48), uint8_t(uint64_t(Val) >> 40), uint8_t(uint64_t(Val) >> 32), uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
3880#endif
3881const uint8_t *RISCVPreLegalizerCombinerImpl::getMatchTable() const {
3882 constexpr static uint8_t MatchTable0[] = {
3883 /* 0 */ GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(20), GIMT_Encode2(282), /*)*//*default:*//*Label 106*/ GIMT_Encode4(8603),
3884 /* 10 */ /*TargetOpcode::COPY*//*Label 0*/ GIMT_Encode4(1058), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3885 /* 150 */ /*TargetOpcode::G_ADD*//*Label 1*/ GIMT_Encode4(1070),
3886 /* 154 */ /*TargetOpcode::G_SUB*//*Label 2*/ GIMT_Encode4(1803),
3887 /* 158 */ /*TargetOpcode::G_MUL*//*Label 3*/ GIMT_Encode4(2496),
3888 /* 162 */ /*TargetOpcode::G_SDIV*//*Label 4*/ GIMT_Encode4(2702),
3889 /* 166 */ /*TargetOpcode::G_UDIV*//*Label 5*/ GIMT_Encode4(2804),
3890 /* 170 */ /*TargetOpcode::G_SREM*//*Label 6*/ GIMT_Encode4(2917),
3891 /* 174 */ /*TargetOpcode::G_UREM*//*Label 7*/ GIMT_Encode4(3002), GIMT_Encode4(0), GIMT_Encode4(0),
3892 /* 186 */ /*TargetOpcode::G_AND*//*Label 8*/ GIMT_Encode4(3109),
3893 /* 190 */ /*TargetOpcode::G_OR*//*Label 9*/ GIMT_Encode4(3401),
3894 /* 194 */ /*TargetOpcode::G_XOR*//*Label 10*/ GIMT_Encode4(3845), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3895 /* 226 */ /*TargetOpcode::G_PHI*//*Label 11*/ GIMT_Encode4(4056), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3896 /* 250 */ /*TargetOpcode::G_UNMERGE_VALUES*//*Label 12*/ GIMT_Encode4(4068), GIMT_Encode4(0),
3897 /* 258 */ /*TargetOpcode::G_MERGE_VALUES*//*Label 13*/ GIMT_Encode4(4135),
3898 /* 262 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 14*/ GIMT_Encode4(4212),
3899 /* 266 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 15*/ GIMT_Encode4(4277),
3900 /* 270 */ /*TargetOpcode::G_CONCAT_VECTORS*//*Label 16*/ GIMT_Encode4(4289),
3901 /* 274 */ /*TargetOpcode::G_PTRTOINT*//*Label 17*/ GIMT_Encode4(4301),
3902 /* 278 */ /*TargetOpcode::G_INTTOPTR*//*Label 18*/ GIMT_Encode4(4344),
3903 /* 282 */ /*TargetOpcode::G_BITCAST*//*Label 19*/ GIMT_Encode4(4377),
3904 /* 286 */ /*TargetOpcode::G_FREEZE*//*Label 20*/ GIMT_Encode4(4420), GIMT_Encode4(0), GIMT_Encode4(0),
3905 /* 298 */ /*TargetOpcode::G_INTRINSIC_TRUNC*//*Label 21*/ GIMT_Encode4(4484),
3906 /* 302 */ /*TargetOpcode::G_INTRINSIC_ROUND*//*Label 22*/ GIMT_Encode4(4506), GIMT_Encode4(0), GIMT_Encode4(0),
3907 /* 314 */ /*TargetOpcode::G_INTRINSIC_ROUNDEVEN*//*Label 23*/ GIMT_Encode4(4528), GIMT_Encode4(0), GIMT_Encode4(0),
3908 /* 326 */ /*TargetOpcode::G_LOAD*//*Label 24*/ GIMT_Encode4(4550),
3909 /* 330 */ /*TargetOpcode::G_SEXTLOAD*//*Label 25*/ GIMT_Encode4(4562),
3910 /* 334 */ /*TargetOpcode::G_ZEXTLOAD*//*Label 26*/ GIMT_Encode4(4574), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3911 /* 350 */ /*TargetOpcode::G_STORE*//*Label 27*/ GIMT_Encode4(4586), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3912 /* 494 */ /*TargetOpcode::G_ANYEXT*//*Label 28*/ GIMT_Encode4(4598),
3913 /* 498 */ /*TargetOpcode::G_TRUNC*//*Label 29*/ GIMT_Encode4(4726), GIMT_Encode4(0), GIMT_Encode4(0),
3914 /* 510 */ /*TargetOpcode::G_TRUNC_USAT_U*//*Label 30*/ GIMT_Encode4(5138), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3915 /* 530 */ /*TargetOpcode::G_SEXT*//*Label 31*/ GIMT_Encode4(5171),
3916 /* 534 */ /*TargetOpcode::G_SEXT_INREG*//*Label 32*/ GIMT_Encode4(5246),
3917 /* 538 */ /*TargetOpcode::G_ZEXT*//*Label 33*/ GIMT_Encode4(5312),
3918 /* 542 */ /*TargetOpcode::G_SHL*//*Label 34*/ GIMT_Encode4(5442),
3919 /* 546 */ /*TargetOpcode::G_LSHR*//*Label 35*/ GIMT_Encode4(5640),
3920 /* 550 */ /*TargetOpcode::G_ASHR*//*Label 36*/ GIMT_Encode4(5821),
3921 /* 554 */ /*TargetOpcode::G_FSHL*//*Label 37*/ GIMT_Encode4(5984),
3922 /* 558 */ /*TargetOpcode::G_FSHR*//*Label 38*/ GIMT_Encode4(6027),
3923 /* 562 */ /*TargetOpcode::G_ROTR*//*Label 39*/ GIMT_Encode4(6070),
3924 /* 566 */ /*TargetOpcode::G_ROTL*//*Label 40*/ GIMT_Encode4(6094),
3925 /* 570 */ /*TargetOpcode::G_ICMP*//*Label 41*/ GIMT_Encode4(6118),
3926 /* 574 */ /*TargetOpcode::G_FCMP*//*Label 42*/ GIMT_Encode4(6163), GIMT_Encode4(0), GIMT_Encode4(0),
3927 /* 586 */ /*TargetOpcode::G_SELECT*//*Label 43*/ GIMT_Encode4(6175),
3928 /* 590 */ /*TargetOpcode::G_UADDO*//*Label 44*/ GIMT_Encode4(6270),
3929 /* 594 */ /*TargetOpcode::G_UADDE*//*Label 45*/ GIMT_Encode4(6293),
3930 /* 598 */ /*TargetOpcode::G_USUBO*//*Label 46*/ GIMT_Encode4(6305),
3931 /* 602 */ /*TargetOpcode::G_USUBE*//*Label 47*/ GIMT_Encode4(6317),
3932 /* 606 */ /*TargetOpcode::G_SADDO*//*Label 48*/ GIMT_Encode4(6329),
3933 /* 610 */ /*TargetOpcode::G_SADDE*//*Label 49*/ GIMT_Encode4(6352),
3934 /* 614 */ /*TargetOpcode::G_SSUBO*//*Label 50*/ GIMT_Encode4(6364),
3935 /* 618 */ /*TargetOpcode::G_SSUBE*//*Label 51*/ GIMT_Encode4(6376),
3936 /* 622 */ /*TargetOpcode::G_UMULO*//*Label 52*/ GIMT_Encode4(6388),
3937 /* 626 */ /*TargetOpcode::G_SMULO*//*Label 53*/ GIMT_Encode4(6422),
3938 /* 630 */ /*TargetOpcode::G_UMULH*//*Label 54*/ GIMT_Encode4(6456),
3939 /* 634 */ /*TargetOpcode::G_SMULH*//*Label 55*/ GIMT_Encode4(6479),
3940 /* 638 */ /*TargetOpcode::G_UADDSAT*//*Label 56*/ GIMT_Encode4(6491),
3941 /* 642 */ /*TargetOpcode::G_SADDSAT*//*Label 57*/ GIMT_Encode4(6503), GIMT_Encode4(0), GIMT_Encode4(0),
3942 /* 654 */ /*TargetOpcode::G_USHLSAT*//*Label 58*/ GIMT_Encode4(6515),
3943 /* 658 */ /*TargetOpcode::G_SSHLSAT*//*Label 59*/ GIMT_Encode4(6538),
3944 /* 662 */ /*TargetOpcode::G_SMULFIX*//*Label 60*/ GIMT_Encode4(6561),
3945 /* 666 */ /*TargetOpcode::G_UMULFIX*//*Label 61*/ GIMT_Encode4(6573),
3946 /* 670 */ /*TargetOpcode::G_SMULFIXSAT*//*Label 62*/ GIMT_Encode4(6585),
3947 /* 674 */ /*TargetOpcode::G_UMULFIXSAT*//*Label 63*/ GIMT_Encode4(6597), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3948 /* 694 */ /*TargetOpcode::G_FADD*//*Label 64*/ GIMT_Encode4(6609),
3949 /* 698 */ /*TargetOpcode::G_FSUB*//*Label 65*/ GIMT_Encode4(6750),
3950 /* 702 */ /*TargetOpcode::G_FMUL*//*Label 66*/ GIMT_Encode4(6839),
3951 /* 706 */ /*TargetOpcode::G_FMA*//*Label 67*/ GIMT_Encode4(6927),
3952 /* 710 */ /*TargetOpcode::G_FMAD*//*Label 68*/ GIMT_Encode4(6950),
3953 /* 714 */ /*TargetOpcode::G_FDIV*//*Label 69*/ GIMT_Encode4(6973),
3954 /* 718 */ /*TargetOpcode::G_FREM*//*Label 70*/ GIMT_Encode4(7018), GIMT_Encode4(0), GIMT_Encode4(0),
3955 /* 730 */ /*TargetOpcode::G_FPOWI*//*Label 71*/ GIMT_Encode4(7030), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3956 /* 750 */ /*TargetOpcode::G_FLOG2*//*Label 72*/ GIMT_Encode4(7052), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3957 /* 766 */ /*TargetOpcode::G_FNEG*//*Label 73*/ GIMT_Encode4(7074),
3958 /* 770 */ /*TargetOpcode::G_FPEXT*//*Label 74*/ GIMT_Encode4(7125),
3959 /* 774 */ /*TargetOpcode::G_FPTRUNC*//*Label 75*/ GIMT_Encode4(7147),
3960 /* 778 */ /*TargetOpcode::G_FPTOSI*//*Label 76*/ GIMT_Encode4(7190),
3961 /* 782 */ /*TargetOpcode::G_FPTOUI*//*Label 77*/ GIMT_Encode4(7212),
3962 /* 786 */ /*TargetOpcode::G_SITOFP*//*Label 78*/ GIMT_Encode4(7234),
3963 /* 790 */ /*TargetOpcode::G_UITOFP*//*Label 79*/ GIMT_Encode4(7261), GIMT_Encode4(0), GIMT_Encode4(0),
3964 /* 802 */ /*TargetOpcode::G_FABS*//*Label 80*/ GIMT_Encode4(7288), GIMT_Encode4(0), GIMT_Encode4(0),
3965 /* 814 */ /*TargetOpcode::G_FCANONICALIZE*//*Label 81*/ GIMT_Encode4(7367),
3966 /* 818 */ /*TargetOpcode::G_FMINNUM*//*Label 82*/ GIMT_Encode4(7397),
3967 /* 822 */ /*TargetOpcode::G_FMAXNUM*//*Label 83*/ GIMT_Encode4(7431),
3968 /* 826 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 84*/ GIMT_Encode4(7465),
3969 /* 830 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 85*/ GIMT_Encode4(7477),
3970 /* 834 */ /*TargetOpcode::G_FMINIMUM*//*Label 86*/ GIMT_Encode4(7489),
3971 /* 838 */ /*TargetOpcode::G_FMAXIMUM*//*Label 87*/ GIMT_Encode4(7523), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3972 /* 882 */ /*TargetOpcode::G_PTR_ADD*//*Label 88*/ GIMT_Encode4(7557), GIMT_Encode4(0),
3973 /* 890 */ /*TargetOpcode::G_SMIN*//*Label 89*/ GIMT_Encode4(7647),
3974 /* 894 */ /*TargetOpcode::G_SMAX*//*Label 90*/ GIMT_Encode4(7681),
3975 /* 898 */ /*TargetOpcode::G_UMIN*//*Label 91*/ GIMT_Encode4(7715),
3976 /* 902 */ /*TargetOpcode::G_UMAX*//*Label 92*/ GIMT_Encode4(7749),
3977 /* 906 */ /*TargetOpcode::G_ABS*//*Label 93*/ GIMT_Encode4(7783), GIMT_Encode4(0), GIMT_Encode4(0),
3978 /* 918 */ /*TargetOpcode::G_BR*//*Label 94*/ GIMT_Encode4(7795), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3979 /* 938 */ /*TargetOpcode::G_INSERT_VECTOR_ELT*//*Label 95*/ GIMT_Encode4(7807),
3980 /* 942 */ /*TargetOpcode::G_EXTRACT_VECTOR_ELT*//*Label 96*/ GIMT_Encode4(7937),
3981 /* 946 */ /*TargetOpcode::G_SHUFFLE_VECTOR*//*Label 97*/ GIMT_Encode4(8314), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3982 /* 970 */ /*TargetOpcode::G_CTLZ*//*Label 98*/ GIMT_Encode4(8380),
3983 /* 974 */ /*TargetOpcode::G_CTLZ_ZERO_UNDEF*//*Label 99*/ GIMT_Encode4(8392), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3984 /* 990 */ /*TargetOpcode::G_BITREVERSE*//*Label 100*/ GIMT_Encode4(8404),
3985 /* 994 */ /*TargetOpcode::G_FCEIL*//*Label 101*/ GIMT_Encode4(8493), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3986 /* 1042 */ /*TargetOpcode::G_FSQRT*//*Label 102*/ GIMT_Encode4(8515),
3987 /* 1046 */ /*TargetOpcode::G_FFLOOR*//*Label 103*/ GIMT_Encode4(8537),
3988 /* 1050 */ /*TargetOpcode::G_FRINT*//*Label 104*/ GIMT_Encode4(8559),
3989 /* 1054 */ /*TargetOpcode::G_FNEARBYINT*//*Label 105*/ GIMT_Encode4(8581),
3990 /* 1058 */ // Label 0: @1058
3991 /* 1058 */ GIM_Try, /*On fail goto*//*Label 107*/ GIMT_Encode4(1069), // Rule ID 19 //
3992 /* 1063 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
3993 /* 1066 */ // MIs[0] d
3994 /* 1066 */ // No operand predicates
3995 /* 1066 */ // MIs[0] s
3996 /* 1066 */ // No operand predicates
3997 /* 1066 */ // Combiner Rule #19: copy_prop
3998 /* 1066 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
3999 /* 1069 */ // Label 107: @1069
4000 /* 1069 */ GIM_Reject,
4001 /* 1070 */ // Label 1: @1070
4002 /* 1070 */ GIM_Try, /*On fail goto*//*Label 108*/ GIMT_Encode4(1081), // Rule ID 22 //
4003 /* 1075 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
4004 /* 1078 */ // Combiner Rule #22: add_p2i_to_ptradd; wip_match_opcode 'G_ADD'
4005 /* 1078 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
4006 /* 1081 */ // Label 108: @1081
4007 /* 1081 */ GIM_Try, /*On fail goto*//*Label 109*/ GIMT_Encode4(1092), // Rule ID 100 //
4008 /* 1086 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
4009 /* 1089 */ // Combiner Rule #84: propagate_undef_any_op; wip_match_opcode 'G_ADD'
4010 /* 1089 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
4011 /* 1092 */ // Label 109: @1092
4012 /* 1092 */ GIM_Try, /*On fail goto*//*Label 110*/ GIMT_Encode4(1103), // Rule ID 151 //
4013 /* 1097 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
4014 /* 1100 */ // Combiner Rule #111: simplify_add_to_sub; wip_match_opcode 'G_ADD'
4015 /* 1100 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner53),
4016 /* 1103 */ // Label 110: @1103
4017 /* 1103 */ GIM_Try, /*On fail goto*//*Label 111*/ GIMT_Encode4(1114), // Rule ID 253 //
4018 /* 1108 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
4019 /* 1111 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_ADD'
4020 /* 1111 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4021 /* 1114 */ // Label 111: @1114
4022 /* 1114 */ GIM_Try, /*On fail goto*//*Label 112*/ GIMT_Encode4(1125), // Rule ID 297 //
4023 /* 1119 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
4024 /* 1122 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_ADD'
4025 /* 1122 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
4026 /* 1125 */ // Label 112: @1125
4027 /* 1125 */ GIM_Try, /*On fail goto*//*Label 113*/ GIMT_Encode4(1136), // Rule ID 333 //
4028 /* 1130 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
4029 /* 1133 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_ADD'
4030 /* 1133 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
4031 /* 1136 */ // Label 113: @1136
4032 /* 1136 */ GIM_Try, /*On fail goto*//*Label 114*/ GIMT_Encode4(1224), // Rule ID 395 //
4033 /* 1141 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule243Enabled),
4034 /* 1144 */ // MIs[0] dst
4035 /* 1144 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4036 /* 1148 */ // MIs[0] __add_shift_match_0.shl_neg
4037 /* 1148 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4038 /* 1152 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
4039 /* 1156 */ // MIs[1] __add_shift_match_0.neg_y
4040 /* 1156 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4041 /* 1160 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4042 /* 1164 */ // MIs[2] __add_shift_match_0.zero
4043 /* 1164 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
4044 /* 1168 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4045 /* 1172 */ // MIs[3] Operand 1
4046 /* 1172 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
4047 /* 1183 */ // MIs[2] y
4048 /* 1183 */ // No operand predicates
4049 /* 1183 */ // MIs[1] n
4050 /* 1183 */ // No operand predicates
4051 /* 1183 */ // MIs[0] x
4052 /* 1183 */ // No operand predicates
4053 /* 1183 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner16),
4054 /* 1187 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4055 /* 1189 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4056 /* 1192 */ // Combiner Rule #243: add_shift @ [__add_shift_match_0[1]]
4057 /* 1192 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
4058 /* 1195 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4059 /* 1200 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
4060 /* 1204 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
4061 /* 1208 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4062 /* 1212 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4063 /* 1216 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // x
4064 /* 1220 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4065 /* 1223 */ GIR_EraseRootFromParent_Done,
4066 /* 1224 */ // Label 114: @1224
4067 /* 1224 */ GIM_Try, /*On fail goto*//*Label 115*/ GIMT_Encode4(1312), // Rule ID 394 //
4068 /* 1229 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule243Enabled),
4069 /* 1232 */ // MIs[0] dst
4070 /* 1232 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4071 /* 1236 */ // MIs[0] x
4072 /* 1236 */ // No operand predicates
4073 /* 1236 */ // MIs[0] __add_shift_match_0.shl_neg
4074 /* 1236 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4075 /* 1240 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
4076 /* 1244 */ // MIs[1] __add_shift_match_0.neg_y
4077 /* 1244 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4078 /* 1248 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4079 /* 1252 */ // MIs[2] __add_shift_match_0.zero
4080 /* 1252 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
4081 /* 1256 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4082 /* 1260 */ // MIs[3] Operand 1
4083 /* 1260 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
4084 /* 1271 */ // MIs[2] y
4085 /* 1271 */ // No operand predicates
4086 /* 1271 */ // MIs[1] n
4087 /* 1271 */ // No operand predicates
4088 /* 1271 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner15),
4089 /* 1275 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4090 /* 1277 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4091 /* 1280 */ // Combiner Rule #243: add_shift @ [__add_shift_match_0[0]]
4092 /* 1280 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
4093 /* 1283 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4094 /* 1288 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
4095 /* 1292 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
4096 /* 1296 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4097 /* 1300 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4098 /* 1304 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // x
4099 /* 1308 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4100 /* 1311 */ GIR_EraseRootFromParent_Done,
4101 /* 1312 */ // Label 115: @1312
4102 /* 1312 */ GIM_Try, /*On fail goto*//*Label 116*/ GIMT_Encode4(1346), // Rule ID 2 //
4103 /* 1317 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
4104 /* 1320 */ // MIs[0] root
4105 /* 1320 */ // No operand predicates
4106 /* 1320 */ // MIs[0] sub
4107 /* 1320 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4108 /* 1324 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4109 /* 1328 */ // MIs[1] Operand 1
4110 /* 1328 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
4111 /* 1332 */ // MIs[1] A
4112 /* 1332 */ // No operand predicates
4113 /* 1332 */ // MIs[0] B
4114 /* 1332 */ // No operand predicates
4115 /* 1332 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4116 /* 1334 */ // Combiner Rule #2: ZeroMinusAPlusB
4117 /* 1334 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4118 /* 1337 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4119 /* 1339 */ GIR_RootToRootCopy, /*OpIdx*/2, // B
4120 /* 1341 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // A
4121 /* 1345 */ GIR_EraseRootFromParent_Done,
4122 /* 1346 */ // Label 116: @1346
4123 /* 1346 */ GIM_Try, /*On fail goto*//*Label 117*/ GIMT_Encode4(1383), // Rule ID 18 //
4124 /* 1351 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
4125 /* 1354 */ // MIs[0] root
4126 /* 1354 */ // No operand predicates
4127 /* 1354 */ // MIs[0] sub
4128 /* 1354 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4129 /* 1358 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4130 /* 1362 */ // MIs[1] A
4131 /* 1362 */ // No operand predicates
4132 /* 1362 */ // MIs[1] c1
4133 /* 1362 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4134 /* 1366 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4135 /* 1370 */ // MIs[2] imm1
4136 /* 1370 */ // No operand predicates
4137 /* 1370 */ // MIs[0] c2
4138 /* 1370 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4139 /* 1374 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4140 /* 1378 */ // MIs[3] imm2
4141 /* 1378 */ // No operand predicates
4142 /* 1378 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4143 /* 1380 */ // Combiner Rule #18: AMinusC1PlusC2
4144 /* 1380 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
4145 /* 1383 */ // Label 117: @1383
4146 /* 1383 */ GIM_Try, /*On fail goto*//*Label 118*/ GIMT_Encode4(1417), // Rule ID 5 //
4147 /* 1388 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
4148 /* 1391 */ // MIs[0] root
4149 /* 1391 */ // No operand predicates
4150 /* 1391 */ // MIs[0] sub
4151 /* 1391 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4152 /* 1395 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4153 /* 1399 */ // MIs[1] B
4154 /* 1399 */ // No operand predicates
4155 /* 1399 */ // MIs[1] A
4156 /* 1399 */ // No operand predicates
4157 /* 1399 */ // MIs[0] A
4158 /* 1399 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
4159 /* 1404 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4160 /* 1409 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4161 /* 1411 */ // Combiner Rule #5: BMinusAPlusA
4162 /* 1411 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4163 /* 1416 */ GIR_EraseRootFromParent_Done,
4164 /* 1417 */ // Label 118: @1417
4165 /* 1417 */ GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(1451), // Rule ID 140 //
4166 /* 1422 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
4167 /* 1425 */ // MIs[0] dst
4168 /* 1425 */ // No operand predicates
4169 /* 1425 */ // MIs[0] __add_sub_reg_match_0.tmp
4170 /* 1425 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4171 /* 1429 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4172 /* 1433 */ // MIs[1] src
4173 /* 1433 */ // No operand predicates
4174 /* 1433 */ // MIs[1] __add_sub_reg_match_0.x
4175 /* 1433 */ // No operand predicates
4176 /* 1433 */ // MIs[0] __add_sub_reg_match_0.x
4177 /* 1433 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
4178 /* 1438 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4179 /* 1443 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4180 /* 1445 */ // Combiner Rule #101: add_sub_reg @ [__add_sub_reg_match_0[1]]
4181 /* 1445 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4182 /* 1450 */ GIR_EraseRootFromParent_Done,
4183 /* 1451 */ // Label 119: @1451
4184 /* 1451 */ GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(1496), // Rule ID 7 //
4185 /* 1456 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
4186 /* 1459 */ // MIs[0] root
4187 /* 1459 */ // No operand predicates
4188 /* 1459 */ // MIs[0] sub1
4189 /* 1459 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4190 /* 1463 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4191 /* 1467 */ // MIs[1] A
4192 /* 1467 */ // No operand predicates
4193 /* 1467 */ // MIs[1] B
4194 /* 1467 */ // No operand predicates
4195 /* 1467 */ // MIs[0] sub2
4196 /* 1467 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4197 /* 1471 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4198 /* 1475 */ // MIs[2] B
4199 /* 1475 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
4200 /* 1480 */ // MIs[2] C
4201 /* 1480 */ // No operand predicates
4202 /* 1480 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4203 /* 1482 */ // Combiner Rule #7: AMinusBPlusBMinusC
4204 /* 1482 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4205 /* 1485 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4206 /* 1487 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
4207 /* 1491 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
4208 /* 1495 */ GIR_EraseRootFromParent_Done,
4209 /* 1496 */ // Label 120: @1496
4210 /* 1496 */ GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(1541), // Rule ID 6 //
4211 /* 1501 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
4212 /* 1504 */ // MIs[0] root
4213 /* 1504 */ // No operand predicates
4214 /* 1504 */ // MIs[0] sub1
4215 /* 1504 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4216 /* 1508 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4217 /* 1512 */ // MIs[1] A
4218 /* 1512 */ // No operand predicates
4219 /* 1512 */ // MIs[1] B
4220 /* 1512 */ // No operand predicates
4221 /* 1512 */ // MIs[0] sub2
4222 /* 1512 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4223 /* 1516 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4224 /* 1520 */ // MIs[2] C
4225 /* 1520 */ // No operand predicates
4226 /* 1520 */ // MIs[2] A
4227 /* 1520 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
4228 /* 1525 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4229 /* 1527 */ // Combiner Rule #6: AMinusBPlusCMinusA
4230 /* 1527 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4231 /* 1530 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4232 /* 1532 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
4233 /* 1536 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
4234 /* 1540 */ GIR_EraseRootFromParent_Done,
4235 /* 1541 */ // Label 121: @1541
4236 /* 1541 */ GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(1576), // Rule ID 45 //
4237 /* 1546 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
4238 /* 1549 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
4239 /* 1555 */ // MIs[0] root
4240 /* 1555 */ // No operand predicates
4241 /* 1555 */ // MIs[0] left
4242 /* 1555 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4243 /* 1559 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
4244 /* 1563 */ // MIs[1] imm1
4245 /* 1563 */ // No operand predicates
4246 /* 1563 */ // MIs[0] right
4247 /* 1563 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4248 /* 1567 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_VSCALE),
4249 /* 1571 */ // MIs[2] imm2
4250 /* 1571 */ // No operand predicates
4251 /* 1571 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4252 /* 1573 */ // Combiner Rule #43: add_of_vscale
4253 /* 1573 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
4254 /* 1576 */ // Label 122: @1576
4255 /* 1576 */ GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(1610), // Rule ID 3 //
4256 /* 1581 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
4257 /* 1584 */ // MIs[0] root
4258 /* 1584 */ // No operand predicates
4259 /* 1584 */ // MIs[0] A
4260 /* 1584 */ // No operand predicates
4261 /* 1584 */ // MIs[0] sub
4262 /* 1584 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4263 /* 1588 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4264 /* 1592 */ // MIs[1] Operand 1
4265 /* 1592 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
4266 /* 1596 */ // MIs[1] B
4267 /* 1596 */ // No operand predicates
4268 /* 1596 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4269 /* 1598 */ // Combiner Rule #3: APlusZeroMinusB
4270 /* 1598 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4271 /* 1601 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4272 /* 1603 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
4273 /* 1605 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
4274 /* 1609 */ GIR_EraseRootFromParent_Done,
4275 /* 1610 */ // Label 123: @1610
4276 /* 1610 */ GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(1644), // Rule ID 4 //
4277 /* 1615 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
4278 /* 1618 */ // MIs[0] root
4279 /* 1618 */ // No operand predicates
4280 /* 1618 */ // MIs[0] A
4281 /* 1618 */ // No operand predicates
4282 /* 1618 */ // MIs[0] sub
4283 /* 1618 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4284 /* 1622 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4285 /* 1626 */ // MIs[1] B
4286 /* 1626 */ // No operand predicates
4287 /* 1626 */ // MIs[1] A
4288 /* 1626 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4289 /* 1631 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4290 /* 1636 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4291 /* 1638 */ // Combiner Rule #4: APlusBMinusB
4292 /* 1638 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4293 /* 1643 */ GIR_EraseRootFromParent_Done,
4294 /* 1644 */ // Label 124: @1644
4295 /* 1644 */ GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(1678), // Rule ID 139 //
4296 /* 1649 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
4297 /* 1652 */ // MIs[0] dst
4298 /* 1652 */ // No operand predicates
4299 /* 1652 */ // MIs[0] __add_sub_reg_match_0.x
4300 /* 1652 */ // No operand predicates
4301 /* 1652 */ // MIs[0] __add_sub_reg_match_0.tmp
4302 /* 1652 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4303 /* 1656 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4304 /* 1660 */ // MIs[1] src
4305 /* 1660 */ // No operand predicates
4306 /* 1660 */ // MIs[1] __add_sub_reg_match_0.x
4307 /* 1660 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4308 /* 1665 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4309 /* 1670 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4310 /* 1672 */ // Combiner Rule #101: add_sub_reg @ [__add_sub_reg_match_0[0]]
4311 /* 1672 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4312 /* 1677 */ GIR_EraseRootFromParent_Done,
4313 /* 1678 */ // Label 125: @1678
4314 /* 1678 */ GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(1723), // Rule ID 8 //
4315 /* 1683 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
4316 /* 1686 */ // MIs[0] root
4317 /* 1686 */ // No operand predicates
4318 /* 1686 */ // MIs[0] A
4319 /* 1686 */ // No operand predicates
4320 /* 1686 */ // MIs[0] sub1
4321 /* 1686 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4322 /* 1690 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4323 /* 1694 */ // MIs[1] B
4324 /* 1694 */ // No operand predicates
4325 /* 1694 */ // MIs[1] add1
4326 /* 1694 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4327 /* 1698 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4328 /* 1702 */ // MIs[2] A
4329 /* 1702 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
4330 /* 1707 */ // MIs[2] C
4331 /* 1707 */ // No operand predicates
4332 /* 1707 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4333 /* 1709 */ // Combiner Rule #8: APlusBMinusAplusC
4334 /* 1709 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4335 /* 1712 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4336 /* 1714 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
4337 /* 1718 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
4338 /* 1722 */ GIR_EraseRootFromParent_Done,
4339 /* 1723 */ // Label 126: @1723
4340 /* 1723 */ GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(1768), // Rule ID 10 //
4341 /* 1728 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
4342 /* 1731 */ // MIs[0] root
4343 /* 1731 */ // No operand predicates
4344 /* 1731 */ // MIs[0] A
4345 /* 1731 */ // No operand predicates
4346 /* 1731 */ // MIs[0] sub1
4347 /* 1731 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4348 /* 1735 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4349 /* 1739 */ // MIs[1] B
4350 /* 1739 */ // No operand predicates
4351 /* 1739 */ // MIs[1] add1
4352 /* 1739 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4353 /* 1743 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4354 /* 1747 */ // MIs[2] C
4355 /* 1747 */ // No operand predicates
4356 /* 1747 */ // MIs[2] A
4357 /* 1747 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4358 /* 1752 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4359 /* 1754 */ // Combiner Rule #10: APlusBMinusCPlusA
4360 /* 1754 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4361 /* 1757 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4362 /* 1759 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
4363 /* 1763 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
4364 /* 1767 */ GIR_EraseRootFromParent_Done,
4365 /* 1768 */ // Label 127: @1768
4366 /* 1768 */ GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(1791), // Rule ID 111 //
4367 /* 1773 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
4368 /* 1776 */ // MIs[0] dst
4369 /* 1776 */ // No operand predicates
4370 /* 1776 */ // MIs[0] lhs
4371 /* 1776 */ // No operand predicates
4372 /* 1776 */ // MIs[0] Operand 2
4373 /* 1776 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4374 /* 1780 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4375 /* 1785 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[1]]
4376 /* 1785 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4377 /* 1790 */ GIR_EraseRootFromParent_Done,
4378 /* 1791 */ // Label 128: @1791
4379 /* 1791 */ GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(1802), // Rule ID 159 //
4380 /* 1796 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule115Enabled),
4381 /* 1799 */ // MIs[0] root
4382 /* 1799 */ // No operand predicates
4383 /* 1799 */ // MIs[0] src1
4384 /* 1799 */ // No operand predicates
4385 /* 1799 */ // MIs[0] src2
4386 /* 1799 */ // No operand predicates
4387 /* 1799 */ // Combiner Rule #115: reassoc_comm_binops
4388 /* 1799 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner57),
4389 /* 1802 */ // Label 129: @1802
4390 /* 1802 */ GIM_Reject,
4391 /* 1803 */ // Label 2: @1803
4392 /* 1803 */ GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(1814), // Rule ID 101 //
4393 /* 1808 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
4394 /* 1811 */ // Combiner Rule #84: propagate_undef_any_op; wip_match_opcode 'G_SUB'
4395 /* 1811 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
4396 /* 1814 */ // Label 130: @1814
4397 /* 1814 */ GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(1825), // Rule ID 261 //
4398 /* 1819 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
4399 /* 1822 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_SUB'
4400 /* 1822 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4401 /* 1825 */ // Label 131: @1825
4402 /* 1825 */ GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(1836), // Rule ID 298 //
4403 /* 1830 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
4404 /* 1833 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_SUB'
4405 /* 1833 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
4406 /* 1836 */ // Label 132: @1836
4407 /* 1836 */ GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(1847), // Rule ID 330 //
4408 /* 1841 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
4409 /* 1844 */ // Combiner Rule #208: sub_add_reg; wip_match_opcode 'G_SUB'
4410 /* 1844 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner124),
4411 /* 1847 */ // Label 133: @1847
4412 /* 1847 */ GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(1858), // Rule ID 364 //
4413 /* 1852 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
4414 /* 1855 */ // Combiner Rule #215: simplify_neg_minmax; wip_match_opcode 'G_SUB'
4415 /* 1855 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
4416 /* 1858 */ // Label 134: @1858
4417 /* 1858 */ GIM_Try, /*On fail goto*//*Label 135*/ GIMT_Encode4(1935), // Rule ID 396 //
4418 /* 1863 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule244Enabled),
4419 /* 1866 */ // MIs[0] dst
4420 /* 1866 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4421 /* 1870 */ // MIs[0] sub1
4422 /* 1870 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4423 /* 1874 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4424 /* 1878 */ // MIs[1] a
4425 /* 1878 */ // No operand predicates
4426 /* 1878 */ // MIs[1] b
4427 /* 1878 */ // No operand predicates
4428 /* 1878 */ // MIs[0] Operand 2
4429 /* 1878 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
4430 /* 1882 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
4431 /* 1886 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4432 /* 1888 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
4433 /* 1891 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
4434 /* 1901 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4435 /* 1904 */ // Combiner Rule #244: sub_one_from_sub
4436 /* 1904 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
4437 /* 1907 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4438 /* 1912 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // b
4439 /* 1916 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
4440 /* 1919 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
4441 /* 1923 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4442 /* 1927 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4443 /* 1930 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
4444 /* 1934 */ GIR_EraseRootFromParent_Done,
4445 /* 1935 */ // Label 135: @1935
4446 /* 1935 */ GIM_Try, /*On fail goto*//*Label 136*/ GIMT_Encode4(1975), // Rule ID 400 //
4447 /* 1940 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule246Enabled),
4448 /* 1943 */ // MIs[0] root
4449 /* 1943 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4450 /* 1947 */ // MIs[0] Operand 1
4451 /* 1947 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 255,
4452 /* 1951 */ // MIs[0] op1
4453 /* 1951 */ // No operand predicates
4454 /* 1951 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4455 /* 1954 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(18446744073709551615u),
4456 /* 1964 */ // Combiner Rule #246: sub_minus_one
4457 /* 1964 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
4458 /* 1967 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4459 /* 1969 */ GIR_RootToRootCopy, /*OpIdx*/2, // op1
4460 /* 1971 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
4461 /* 1974 */ GIR_EraseRootFromParent_Done,
4462 /* 1975 */ // Label 136: @1975
4463 /* 1975 */ GIM_Try, /*On fail goto*//*Label 137*/ GIMT_Encode4(2036), // Rule ID 9 //
4464 /* 1980 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
4465 /* 1983 */ // MIs[0] root
4466 /* 1983 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4467 /* 1987 */ // MIs[0] A
4468 /* 1987 */ // No operand predicates
4469 /* 1987 */ // MIs[0] sub1
4470 /* 1987 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4471 /* 1991 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4472 /* 1995 */ // MIs[1] B
4473 /* 1995 */ // No operand predicates
4474 /* 1995 */ // MIs[1] C
4475 /* 1995 */ // No operand predicates
4476 /* 1995 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
4477 /* 1999 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4478 /* 2001 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4479 /* 2004 */ // Combiner Rule #9: AMinusBMinusC
4480 /* 2004 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4481 /* 2007 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4482 /* 2012 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // C
4483 /* 2016 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
4484 /* 2020 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
4485 /* 2024 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
4486 /* 2028 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // A
4487 /* 2032 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4488 /* 2035 */ GIR_EraseRootFromParent_Done,
4489 /* 2036 */ // Label 137: @2036
4490 /* 2036 */ GIM_Try, /*On fail goto*//*Label 138*/ GIMT_Encode4(2081), // Rule ID 0 //
4491 /* 2041 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
4492 /* 2044 */ // MIs[0] root
4493 /* 2044 */ // No operand predicates
4494 /* 2044 */ // MIs[0] add1
4495 /* 2044 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4496 /* 2048 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
4497 /* 2052 */ // MIs[1] A
4498 /* 2052 */ // No operand predicates
4499 /* 2052 */ // MIs[1] sub1
4500 /* 2052 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4501 /* 2056 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4502 /* 2060 */ // MIs[2] B
4503 /* 2060 */ // No operand predicates
4504 /* 2060 */ // MIs[2] C
4505 /* 2060 */ // No operand predicates
4506 /* 2060 */ // MIs[0] B
4507 /* 2060 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
4508 /* 2065 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4509 /* 2067 */ // Combiner Rule #0: APlusBMinusCMinusB
4510 /* 2067 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4511 /* 2070 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4512 /* 2072 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
4513 /* 2076 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
4514 /* 2080 */ GIR_EraseRootFromParent_Done,
4515 /* 2081 */ // Label 138: @2081
4516 /* 2081 */ GIM_Try, /*On fail goto*//*Label 139*/ GIMT_Encode4(2118), // Rule ID 14 //
4517 /* 2086 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
4518 /* 2089 */ // MIs[0] root
4519 /* 2089 */ // No operand predicates
4520 /* 2089 */ // MIs[0] add
4521 /* 2089 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4522 /* 2093 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
4523 /* 2097 */ // MIs[1] A
4524 /* 2097 */ // No operand predicates
4525 /* 2097 */ // MIs[1] c1
4526 /* 2097 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4527 /* 2101 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4528 /* 2105 */ // MIs[2] imm1
4529 /* 2105 */ // No operand predicates
4530 /* 2105 */ // MIs[0] c2
4531 /* 2105 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4532 /* 2109 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4533 /* 2113 */ // MIs[3] imm2
4534 /* 2113 */ // No operand predicates
4535 /* 2113 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4536 /* 2115 */ // Combiner Rule #14: APlusC1MinusC2
4537 /* 2115 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
4538 /* 2118 */ // Label 139: @2118
4539 /* 2118 */ GIM_Try, /*On fail goto*//*Label 140*/ GIMT_Encode4(2155), // Rule ID 17 //
4540 /* 2123 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
4541 /* 2126 */ // MIs[0] root
4542 /* 2126 */ // No operand predicates
4543 /* 2126 */ // MIs[0] sub1
4544 /* 2126 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4545 /* 2130 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4546 /* 2134 */ // MIs[1] c1
4547 /* 2134 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4548 /* 2138 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4549 /* 2142 */ // MIs[2] imm1
4550 /* 2142 */ // No operand predicates
4551 /* 2142 */ // MIs[1] A
4552 /* 2142 */ // No operand predicates
4553 /* 2142 */ // MIs[0] c2
4554 /* 2142 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4555 /* 2146 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4556 /* 2150 */ // MIs[3] imm2
4557 /* 2150 */ // No operand predicates
4558 /* 2150 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4559 /* 2152 */ // Combiner Rule #17: C1Minus2MinusC2
4560 /* 2152 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
4561 /* 2155 */ // Label 140: @2155
4562 /* 2155 */ GIM_Try, /*On fail goto*//*Label 141*/ GIMT_Encode4(2200), // Rule ID 1 //
4563 /* 2160 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
4564 /* 2163 */ // MIs[0] root
4565 /* 2163 */ // No operand predicates
4566 /* 2163 */ // MIs[0] sub2
4567 /* 2163 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4568 /* 2167 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4569 /* 2171 */ // MIs[1] A
4570 /* 2171 */ // No operand predicates
4571 /* 2171 */ // MIs[1] sub1
4572 /* 2171 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4573 /* 2175 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4574 /* 2179 */ // MIs[2] B
4575 /* 2179 */ // No operand predicates
4576 /* 2179 */ // MIs[2] C
4577 /* 2179 */ // No operand predicates
4578 /* 2179 */ // MIs[0] C
4579 /* 2179 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/2,
4580 /* 2184 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4581 /* 2186 */ // Combiner Rule #1: AMinusBMinusCMinusC
4582 /* 2186 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4583 /* 2189 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4584 /* 2191 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
4585 /* 2195 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // B
4586 /* 2199 */ GIR_EraseRootFromParent_Done,
4587 /* 2200 */ // Label 141: @2200
4588 /* 2200 */ GIM_Try, /*On fail goto*//*Label 142*/ GIMT_Encode4(2237), // Rule ID 16 //
4589 /* 2205 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
4590 /* 2208 */ // MIs[0] root
4591 /* 2208 */ // No operand predicates
4592 /* 2208 */ // MIs[0] sub1
4593 /* 2208 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4594 /* 2212 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4595 /* 2216 */ // MIs[1] A
4596 /* 2216 */ // No operand predicates
4597 /* 2216 */ // MIs[1] c1
4598 /* 2216 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4599 /* 2220 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4600 /* 2224 */ // MIs[2] imm1
4601 /* 2224 */ // No operand predicates
4602 /* 2224 */ // MIs[0] c2
4603 /* 2224 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4604 /* 2228 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4605 /* 2232 */ // MIs[3] imm2
4606 /* 2232 */ // No operand predicates
4607 /* 2232 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4608 /* 2234 */ // Combiner Rule #16: AMinusC1MinusC2
4609 /* 2234 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
4610 /* 2237 */ // Label 142: @2237
4611 /* 2237 */ GIM_Try, /*On fail goto*//*Label 143*/ GIMT_Encode4(2280), // Rule ID 169 //
4612 /* 2242 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule125Enabled),
4613 /* 2245 */ // MIs[0] dst
4614 /* 2245 */ // No operand predicates
4615 /* 2245 */ // MIs[0] Operand 1
4616 /* 2245 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
4617 /* 2249 */ // MIs[0] and
4618 /* 2249 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4619 /* 2253 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
4620 /* 2257 */ // MIs[1] x
4621 /* 2257 */ // No operand predicates
4622 /* 2257 */ // MIs[1] Operand 2
4623 /* 2257 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
4624 /* 2261 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
4625 /* 2265 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4626 /* 2267 */ // Combiner Rule #125: neg_and_one_to_sext_inreg
4627 /* 2267 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
4628 /* 2270 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
4629 /* 2272 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
4630 /* 2276 */ GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
4631 /* 2279 */ GIR_EraseRootFromParent_Done,
4632 /* 2280 */ // Label 143: @2280
4633 /* 2280 */ GIM_Try, /*On fail goto*//*Label 144*/ GIMT_Encode4(2317), // Rule ID 15 //
4634 /* 2285 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
4635 /* 2288 */ // MIs[0] root
4636 /* 2288 */ // No operand predicates
4637 /* 2288 */ // MIs[0] c2
4638 /* 2288 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4639 /* 2292 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4640 /* 2296 */ // MIs[1] imm2
4641 /* 2296 */ // No operand predicates
4642 /* 2296 */ // MIs[0] add
4643 /* 2296 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4644 /* 2300 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4645 /* 2304 */ // MIs[2] A
4646 /* 2304 */ // No operand predicates
4647 /* 2304 */ // MIs[2] c1
4648 /* 2304 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
4649 /* 2308 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4650 /* 2312 */ // MIs[3] imm1
4651 /* 2312 */ // No operand predicates
4652 /* 2312 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4653 /* 2314 */ // Combiner Rule #15: C2MinusAPlusC1
4654 /* 2314 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
4655 /* 2317 */ // Label 144: @2317
4656 /* 2317 */ GIM_Try, /*On fail goto*//*Label 145*/ GIMT_Encode4(2356), // Rule ID 122 //
4657 /* 2322 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
4658 /* 2325 */ // MIs[0] dst
4659 /* 2325 */ // No operand predicates
4660 /* 2325 */ // MIs[0] x
4661 /* 2325 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
4662 /* 2329 */ // MIs[0] x
4663 /* 2329 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4664 /* 2334 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4665 /* 2337 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
4666 /* 2347 */ // Combiner Rule #92: same_val_zero @ [__same_val_zero_match_0[0]]
4667 /* 2347 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
4668 /* 2350 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
4669 /* 2352 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
4670 /* 2355 */ GIR_EraseRootFromParent_Done,
4671 /* 2356 */ // Label 145: @2356
4672 /* 2356 */ GIM_Try, /*On fail goto*//*Label 146*/ GIMT_Encode4(2390), // Rule ID 12 //
4673 /* 2361 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
4674 /* 2364 */ // MIs[0] root
4675 /* 2364 */ // No operand predicates
4676 /* 2364 */ // MIs[0] A
4677 /* 2364 */ // No operand predicates
4678 /* 2364 */ // MIs[0] add
4679 /* 2364 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4680 /* 2368 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4681 /* 2372 */ // MIs[1] A
4682 /* 2372 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
4683 /* 2377 */ // MIs[1] B
4684 /* 2377 */ // No operand predicates
4685 /* 2377 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
4686 /* 2382 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4687 /* 2384 */ // Combiner Rule #12: AMinusBMinusA
4688 /* 2384 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
4689 /* 2389 */ GIR_EraseRootFromParent_Done,
4690 /* 2390 */ // Label 146: @2390
4691 /* 2390 */ GIM_Try, /*On fail goto*//*Label 147*/ GIMT_Encode4(2424), // Rule ID 11 //
4692 /* 2395 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
4693 /* 2398 */ // MIs[0] root
4694 /* 2398 */ // No operand predicates
4695 /* 2398 */ // MIs[0] A
4696 /* 2398 */ // No operand predicates
4697 /* 2398 */ // MIs[0] sub1
4698 /* 2398 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4699 /* 2402 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4700 /* 2406 */ // MIs[1] Operand 1
4701 /* 2406 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
4702 /* 2410 */ // MIs[1] B
4703 /* 2410 */ // No operand predicates
4704 /* 2410 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4705 /* 2412 */ // Combiner Rule #11: AMinusZeroMinusB
4706 /* 2412 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
4707 /* 2415 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4708 /* 2417 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
4709 /* 2419 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
4710 /* 2423 */ GIR_EraseRootFromParent_Done,
4711 /* 2424 */ // Label 147: @2424
4712 /* 2424 */ GIM_Try, /*On fail goto*//*Label 148*/ GIMT_Encode4(2451), // Rule ID 48 //
4713 /* 2429 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
4714 /* 2432 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
4715 /* 2438 */ // MIs[0] root
4716 /* 2438 */ // No operand predicates
4717 /* 2438 */ // MIs[0] x
4718 /* 2438 */ // No operand predicates
4719 /* 2438 */ // MIs[0] right
4720 /* 2438 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4721 /* 2442 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
4722 /* 2446 */ // MIs[1] imm
4723 /* 2446 */ // No operand predicates
4724 /* 2446 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4725 /* 2448 */ // Combiner Rule #46: sub_of_vscale
4726 /* 2448 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
4727 /* 2451 */ // Label 148: @2451
4728 /* 2451 */ GIM_Try, /*On fail goto*//*Label 149*/ GIMT_Encode4(2474), // Rule ID 110 //
4729 /* 2456 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
4730 /* 2459 */ // MIs[0] dst
4731 /* 2459 */ // No operand predicates
4732 /* 2459 */ // MIs[0] lhs
4733 /* 2459 */ // No operand predicates
4734 /* 2459 */ // MIs[0] Operand 2
4735 /* 2459 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4736 /* 2463 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4737 /* 2468 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[0]]
4738 /* 2468 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4739 /* 2473 */ GIR_EraseRootFromParent_Done,
4740 /* 2474 */ // Label 149: @2474
4741 /* 2474 */ GIM_Try, /*On fail goto*//*Label 150*/ GIMT_Encode4(2495), // Rule ID 21 //
4742 /* 2479 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
4743 /* 2482 */ // MIs[0] d
4744 /* 2482 */ // No operand predicates
4745 /* 2482 */ // MIs[0] op1
4746 /* 2482 */ // No operand predicates
4747 /* 2482 */ // MIs[0] c
4748 /* 2482 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4749 /* 2486 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4750 /* 2490 */ // MIs[1] imm
4751 /* 2490 */ // No operand predicates
4752 /* 2490 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4753 /* 2492 */ // Combiner Rule #21: sub_to_add
4754 /* 2492 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
4755 /* 2495 */ // Label 150: @2495
4756 /* 2495 */ GIM_Reject,
4757 /* 2496 */ // Label 3: @2496
4758 /* 2496 */ GIM_Try, /*On fail goto*//*Label 151*/ GIMT_Encode4(2507), // Rule ID 84 //
4759 /* 2501 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
4760 /* 2504 */ // Combiner Rule #78: undef_to_int_zero; wip_match_opcode 'G_MUL'
4761 /* 2504 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
4762 /* 2507 */ // Label 151: @2507
4763 /* 2507 */ GIM_Try, /*On fail goto*//*Label 152*/ GIMT_Encode4(2518), // Rule ID 258 //
4764 /* 2512 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
4765 /* 2515 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_MUL'
4766 /* 2515 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4767 /* 2518 */ // Label 152: @2518
4768 /* 2518 */ GIM_Try, /*On fail goto*//*Label 153*/ GIMT_Encode4(2529), // Rule ID 334 //
4769 /* 2523 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
4770 /* 2526 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_MUL'
4771 /* 2526 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
4772 /* 2529 */ // Label 153: @2529
4773 /* 2529 */ GIM_Try, /*On fail goto*//*Label 154*/ GIMT_Encode4(2569), // Rule ID 23 //
4774 /* 2534 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
4775 /* 2537 */ // MIs[0] dst
4776 /* 2537 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4777 /* 2541 */ // MIs[0] x
4778 /* 2541 */ // No operand predicates
4779 /* 2541 */ // MIs[0] Operand 2
4780 /* 2541 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
4781 /* 2545 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4782 /* 2548 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
4783 /* 2558 */ // Combiner Rule #23: mul_by_neg_one
4784 /* 2558 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4785 /* 2561 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
4786 /* 2563 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
4787 /* 2566 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
4788 /* 2568 */ GIR_EraseRootFromParent_Done,
4789 /* 2569 */ // Label 154: @2569
4790 /* 2569 */ GIM_Try, /*On fail goto*//*Label 155*/ GIMT_Encode4(2604), // Rule ID 46 //
4791 /* 2574 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
4792 /* 2577 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
4793 /* 2583 */ // MIs[0] root
4794 /* 2583 */ // No operand predicates
4795 /* 2583 */ // MIs[0] left
4796 /* 2583 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4797 /* 2587 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
4798 /* 2591 */ // MIs[1] scale
4799 /* 2591 */ // No operand predicates
4800 /* 2591 */ // MIs[0] x
4801 /* 2591 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4802 /* 2595 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4803 /* 2599 */ // MIs[2] imm1
4804 /* 2599 */ // No operand predicates
4805 /* 2599 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4806 /* 2601 */ // Combiner Rule #44: mul_of_vscale
4807 /* 2601 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
4808 /* 2604 */ // Label 155: @2604
4809 /* 2604 */ GIM_Try, /*On fail goto*//*Label 156*/ GIMT_Encode4(2644), // Rule ID 131 //
4810 /* 2609 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
4811 /* 2612 */ // MIs[0] dst
4812 /* 2612 */ // No operand predicates
4813 /* 2612 */ // MIs[0] zero
4814 /* 2612 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4815 /* 2616 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4816 /* 2620 */ // MIs[1] Operand 1
4817 /* 2620 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
4818 /* 2631 */ // MIs[0] rhs
4819 /* 2631 */ // No operand predicates
4820 /* 2631 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4821 /* 2636 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4822 /* 2638 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[7]]
4823 /* 2638 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4824 /* 2643 */ GIR_EraseRootFromParent_Done,
4825 /* 2644 */ // Label 156: @2644
4826 /* 2644 */ GIM_Try, /*On fail goto*//*Label 157*/ GIMT_Encode4(2667), // Rule ID 132 //
4827 /* 2649 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
4828 /* 2652 */ // MIs[0] dst
4829 /* 2652 */ // No operand predicates
4830 /* 2652 */ // MIs[0] lhs
4831 /* 2652 */ // No operand predicates
4832 /* 2652 */ // MIs[0] zero
4833 /* 2652 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4834 /* 2656 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
4835 /* 2661 */ // Combiner Rule #94: binop_right_to_zero
4836 /* 2661 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
4837 /* 2666 */ GIR_EraseRootFromParent_Done,
4838 /* 2667 */ // Label 157: @2667
4839 /* 2667 */ GIM_Try, /*On fail goto*//*Label 158*/ GIMT_Encode4(2690), // Rule ID 137 //
4840 /* 2672 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule99Enabled),
4841 /* 2675 */ // MIs[0] dst
4842 /* 2675 */ // No operand predicates
4843 /* 2675 */ // MIs[0] x
4844 /* 2675 */ // No operand predicates
4845 /* 2675 */ // MIs[0] Operand 2
4846 /* 2675 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
4847 /* 2679 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4848 /* 2684 */ // Combiner Rule #99: right_identity_one_int
4849 /* 2684 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4850 /* 2689 */ GIR_EraseRootFromParent_Done,
4851 /* 2690 */ // Label 158: @2690
4852 /* 2690 */ GIM_Try, /*On fail goto*//*Label 159*/ GIMT_Encode4(2701), // Rule ID 20 //
4853 /* 2695 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
4854 /* 2698 */ // MIs[0] d
4855 /* 2698 */ // No operand predicates
4856 /* 2698 */ // MIs[0] op1
4857 /* 2698 */ // No operand predicates
4858 /* 2698 */ // MIs[0] op2
4859 /* 2698 */ // No operand predicates
4860 /* 2698 */ // Combiner Rule #20: mul_to_shl
4861 /* 2698 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
4862 /* 2701 */ // Label 159: @2701
4863 /* 2701 */ GIM_Reject,
4864 /* 2702 */ // Label 4: @2702
4865 /* 2702 */ GIM_Try, /*On fail goto*//*Label 160*/ GIMT_Encode4(2713), // Rule ID 229 //
4866 /* 2707 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
4867 /* 2710 */ // Combiner Rule #169: div_rem_to_divrem; wip_match_opcode 'G_SDIV'
4868 /* 2710 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
4869 /* 2713 */ // Label 160: @2713
4870 /* 2713 */ GIM_Try, /*On fail goto*//*Label 161*/ GIMT_Encode4(2724), // Rule ID 264 //
4871 /* 2718 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
4872 /* 2721 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_SDIV'
4873 /* 2721 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4874 /* 2724 */ // Label 161: @2724
4875 /* 2724 */ GIM_Try, /*On fail goto*//*Label 162*/ GIMT_Encode4(2735), // Rule ID 303 //
4876 /* 2729 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
4877 /* 2732 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_SDIV'
4878 /* 2732 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
4879 /* 2735 */ // Label 162: @2735
4880 /* 2735 */ GIM_Try, /*On fail goto*//*Label 163*/ GIMT_Encode4(2775), // Rule ID 127 //
4881 /* 2740 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
4882 /* 2743 */ // MIs[0] dst
4883 /* 2743 */ // No operand predicates
4884 /* 2743 */ // MIs[0] zero
4885 /* 2743 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4886 /* 2747 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4887 /* 2751 */ // MIs[1] Operand 1
4888 /* 2751 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
4889 /* 2762 */ // MIs[0] rhs
4890 /* 2762 */ // No operand predicates
4891 /* 2762 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4892 /* 2767 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4893 /* 2769 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[3]]
4894 /* 2769 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4895 /* 2774 */ GIR_EraseRootFromParent_Done,
4896 /* 2775 */ // Label 163: @2775
4897 /* 2775 */ GIM_Try, /*On fail goto*//*Label 164*/ GIMT_Encode4(2792), // Rule ID 326 //
4898 /* 2780 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
4899 /* 2783 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
4900 /* 2789 */ // MIs[0] dst
4901 /* 2789 */ // No operand predicates
4902 /* 2789 */ // MIs[0] x
4903 /* 2789 */ // No operand predicates
4904 /* 2789 */ // MIs[0] y
4905 /* 2789 */ // No operand predicates
4906 /* 2789 */ // Combiner Rule #204: sdiv_by_pow2
4907 /* 2789 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
4908 /* 2792 */ // Label 164: @2792
4909 /* 2792 */ GIM_Try, /*On fail goto*//*Label 165*/ GIMT_Encode4(2803), // Rule ID 328 //
4910 /* 2797 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
4911 /* 2800 */ // MIs[0] dst
4912 /* 2800 */ // No operand predicates
4913 /* 2800 */ // MIs[0] x
4914 /* 2800 */ // No operand predicates
4915 /* 2800 */ // MIs[0] y
4916 /* 2800 */ // No operand predicates
4917 /* 2800 */ // Combiner Rule #206: sdiv_by_const
4918 /* 2800 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
4919 /* 2803 */ // Label 165: @2803
4920 /* 2803 */ GIM_Reject,
4921 /* 2804 */ // Label 5: @2804
4922 /* 2804 */ GIM_Try, /*On fail goto*//*Label 166*/ GIMT_Encode4(2815), // Rule ID 87 //
4923 /* 2809 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
4924 /* 2812 */ // Combiner Rule #80: binop_left_undef_to_zero; wip_match_opcode 'G_UDIV'
4925 /* 2812 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
4926 /* 2815 */ // Label 166: @2815
4927 /* 2815 */ GIM_Try, /*On fail goto*//*Label 167*/ GIMT_Encode4(2826), // Rule ID 230 //
4928 /* 2820 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
4929 /* 2823 */ // Combiner Rule #169: div_rem_to_divrem; wip_match_opcode 'G_UDIV'
4930 /* 2823 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
4931 /* 2826 */ // Label 167: @2826
4932 /* 2826 */ GIM_Try, /*On fail goto*//*Label 168*/ GIMT_Encode4(2837), // Rule ID 263 //
4933 /* 2831 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
4934 /* 2834 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_UDIV'
4935 /* 2834 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4936 /* 2837 */ // Label 168: @2837
4937 /* 2837 */ GIM_Try, /*On fail goto*//*Label 169*/ GIMT_Encode4(2848), // Rule ID 305 //
4938 /* 2842 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
4939 /* 2845 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_UDIV'
4940 /* 2845 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
4941 /* 2848 */ // Label 169: @2848
4942 /* 2848 */ GIM_Try, /*On fail goto*//*Label 170*/ GIMT_Encode4(2888), // Rule ID 128 //
4943 /* 2853 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
4944 /* 2856 */ // MIs[0] dst
4945 /* 2856 */ // No operand predicates
4946 /* 2856 */ // MIs[0] zero
4947 /* 2856 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4948 /* 2860 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4949 /* 2864 */ // MIs[1] Operand 1
4950 /* 2864 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
4951 /* 2875 */ // MIs[0] rhs
4952 /* 2875 */ // No operand predicates
4953 /* 2875 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4954 /* 2880 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4955 /* 2882 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[4]]
4956 /* 2882 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4957 /* 2887 */ GIR_EraseRootFromParent_Done,
4958 /* 2888 */ // Label 170: @2888
4959 /* 2888 */ GIM_Try, /*On fail goto*//*Label 171*/ GIMT_Encode4(2905), // Rule ID 325 //
4960 /* 2893 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule203Enabled),
4961 /* 2896 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
4962 /* 2902 */ // MIs[0] dst
4963 /* 2902 */ // No operand predicates
4964 /* 2902 */ // MIs[0] x
4965 /* 2902 */ // No operand predicates
4966 /* 2902 */ // MIs[0] y
4967 /* 2902 */ // No operand predicates
4968 /* 2902 */ // Combiner Rule #203: udiv_by_pow2
4969 /* 2902 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
4970 /* 2905 */ // Label 171: @2905
4971 /* 2905 */ GIM_Try, /*On fail goto*//*Label 172*/ GIMT_Encode4(2916), // Rule ID 327 //
4972 /* 2910 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule205Enabled),
4973 /* 2913 */ // MIs[0] dst
4974 /* 2913 */ // No operand predicates
4975 /* 2913 */ // MIs[0] x
4976 /* 2913 */ // No operand predicates
4977 /* 2913 */ // MIs[0] y
4978 /* 2913 */ // No operand predicates
4979 /* 2913 */ // Combiner Rule #205: udiv_by_const
4980 /* 2913 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
4981 /* 2916 */ // Label 172: @2916
4982 /* 2916 */ GIM_Reject,
4983 /* 2917 */ // Label 6: @2917
4984 /* 2917 */ GIM_Try, /*On fail goto*//*Label 173*/ GIMT_Encode4(2928), // Rule ID 231 //
4985 /* 2922 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
4986 /* 2925 */ // Combiner Rule #169: div_rem_to_divrem; wip_match_opcode 'G_SREM'
4987 /* 2925 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
4988 /* 2928 */ // Label 173: @2928
4989 /* 2928 */ GIM_Try, /*On fail goto*//*Label 174*/ GIMT_Encode4(2939), // Rule ID 266 //
4990 /* 2933 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
4991 /* 2936 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_SREM'
4992 /* 2936 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4993 /* 2939 */ // Label 174: @2939
4994 /* 2939 */ GIM_Try, /*On fail goto*//*Label 175*/ GIMT_Encode4(2950), // Rule ID 304 //
4995 /* 2944 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
4996 /* 2947 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_SREM'
4997 /* 2947 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
4998 /* 2950 */ // Label 175: @2950
4999 /* 2950 */ GIM_Try, /*On fail goto*//*Label 176*/ GIMT_Encode4(2990), // Rule ID 129 //
5000 /* 2955 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5001 /* 2958 */ // MIs[0] dst
5002 /* 2958 */ // No operand predicates
5003 /* 2958 */ // MIs[0] zero
5004 /* 2958 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5005 /* 2962 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5006 /* 2966 */ // MIs[1] Operand 1
5007 /* 2966 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5008 /* 2977 */ // MIs[0] rhs
5009 /* 2977 */ // No operand predicates
5010 /* 2977 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5011 /* 2982 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5012 /* 2984 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[5]]
5013 /* 2984 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5014 /* 2989 */ GIR_EraseRootFromParent_Done,
5015 /* 2990 */ // Label 176: @2990
5016 /* 2990 */ GIM_Try, /*On fail goto*//*Label 177*/ GIMT_Encode4(3001), // Rule ID 324 //
5017 /* 2995 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule202Enabled),
5018 /* 2998 */ // MIs[0] dst
5019 /* 2998 */ // No operand predicates
5020 /* 2998 */ // MIs[0] x
5021 /* 2998 */ // No operand predicates
5022 /* 2998 */ // MIs[0] y
5023 /* 2998 */ // No operand predicates
5024 /* 2998 */ // Combiner Rule #202: srem_by_const
5025 /* 2998 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
5026 /* 3001 */ // Label 177: @3001
5027 /* 3001 */ GIM_Reject,
5028 /* 3002 */ // Label 7: @3002
5029 /* 3002 */ GIM_Try, /*On fail goto*//*Label 178*/ GIMT_Encode4(3013), // Rule ID 88 //
5030 /* 3007 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
5031 /* 3010 */ // Combiner Rule #80: binop_left_undef_to_zero; wip_match_opcode 'G_UREM'
5032 /* 3010 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
5033 /* 3013 */ // Label 178: @3013
5034 /* 3013 */ GIM_Try, /*On fail goto*//*Label 179*/ GIMT_Encode4(3024), // Rule ID 180 //
5035 /* 3018 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled),
5036 /* 3021 */ // Combiner Rule #136: urem_pow2_to_mask; wip_match_opcode 'G_UREM'
5037 /* 3021 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner74),
5038 /* 3024 */ // Label 179: @3024
5039 /* 3024 */ GIM_Try, /*On fail goto*//*Label 180*/ GIMT_Encode4(3035), // Rule ID 232 //
5040 /* 3029 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
5041 /* 3032 */ // Combiner Rule #169: div_rem_to_divrem; wip_match_opcode 'G_UREM'
5042 /* 3032 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
5043 /* 3035 */ // Label 180: @3035
5044 /* 3035 */ GIM_Try, /*On fail goto*//*Label 181*/ GIMT_Encode4(3046), // Rule ID 265 //
5045 /* 3040 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
5046 /* 3043 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_UREM'
5047 /* 3043 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5048 /* 3046 */ // Label 181: @3046
5049 /* 3046 */ GIM_Try, /*On fail goto*//*Label 182*/ GIMT_Encode4(3057), // Rule ID 306 //
5050 /* 3051 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
5051 /* 3054 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_UREM'
5052 /* 3054 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5053 /* 3057 */ // Label 182: @3057
5054 /* 3057 */ GIM_Try, /*On fail goto*//*Label 183*/ GIMT_Encode4(3097), // Rule ID 130 //
5055 /* 3062 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5056 /* 3065 */ // MIs[0] dst
5057 /* 3065 */ // No operand predicates
5058 /* 3065 */ // MIs[0] zero
5059 /* 3065 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5060 /* 3069 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5061 /* 3073 */ // MIs[1] Operand 1
5062 /* 3073 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5063 /* 3084 */ // MIs[0] rhs
5064 /* 3084 */ // No operand predicates
5065 /* 3084 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5066 /* 3089 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5067 /* 3091 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[6]]
5068 /* 3091 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5069 /* 3096 */ GIR_EraseRootFromParent_Done,
5070 /* 3097 */ // Label 183: @3097
5071 /* 3097 */ GIM_Try, /*On fail goto*//*Label 184*/ GIMT_Encode4(3108), // Rule ID 323 //
5072 /* 3102 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
5073 /* 3105 */ // MIs[0] dst
5074 /* 3105 */ // No operand predicates
5075 /* 3105 */ // MIs[0] x
5076 /* 3105 */ // No operand predicates
5077 /* 3105 */ // MIs[0] y
5078 /* 3105 */ // No operand predicates
5079 /* 3105 */ // Combiner Rule #201: urem_by_const
5080 /* 3105 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
5081 /* 3108 */ // Label 184: @3108
5082 /* 3108 */ GIM_Reject,
5083 /* 3109 */ // Label 8: @3109
5084 /* 3109 */ GIM_Try, /*On fail goto*//*Label 185*/ GIMT_Encode4(3120), // Rule ID 79 //
5085 /* 3114 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
5086 /* 3117 */ // Combiner Rule #75: load_and_mask; wip_match_opcode 'G_AND'
5087 /* 3117 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
5088 /* 3120 */ // Label 185: @3120
5089 /* 3120 */ GIM_Try, /*On fail goto*//*Label 186*/ GIMT_Encode4(3131), // Rule ID 83 //
5090 /* 3125 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
5091 /* 3128 */ // Combiner Rule #78: undef_to_int_zero; wip_match_opcode 'G_AND'
5092 /* 3128 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
5093 /* 3131 */ // Label 186: @3131
5094 /* 3131 */ GIM_Try, /*On fail goto*//*Label 187*/ GIMT_Encode4(3142), // Rule ID 152 //
5095 /* 3136 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
5096 /* 3139 */ // Combiner Rule #112: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_AND'
5097 /* 3139 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
5098 /* 3142 */ // Label 187: @3142
5099 /* 3142 */ GIM_Try, /*On fail goto*//*Label 188*/ GIMT_Encode4(3153), // Rule ID 172 //
5100 /* 3147 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule128Enabled),
5101 /* 3150 */ // Combiner Rule #128: narrow_binop_feeding_and; wip_match_opcode 'G_AND'
5102 /* 3150 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner67),
5103 /* 3153 */ // Label 188: @3153
5104 /* 3153 */ GIM_Try, /*On fail goto*//*Label 189*/ GIMT_Encode4(3164), // Rule ID 177 //
5105 /* 3158 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule133Enabled),
5106 /* 3161 */ // Combiner Rule #133: redundant_and; wip_match_opcode 'G_AND'
5107 /* 3161 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner71),
5108 /* 3164 */ // Label 189: @3164
5109 /* 3164 */ GIM_Try, /*On fail goto*//*Label 190*/ GIMT_Encode4(3175), // Rule ID 202 //
5110 /* 3169 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
5111 /* 3172 */ // Combiner Rule #158: overlapping_and; wip_match_opcode 'G_AND'
5112 /* 3172 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
5113 /* 3175 */ // Label 190: @3175
5114 /* 3175 */ GIM_Try, /*On fail goto*//*Label 191*/ GIMT_Encode4(3186), // Rule ID 255 //
5115 /* 3180 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
5116 /* 3183 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_AND'
5117 /* 3183 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5118 /* 3186 */ // Label 191: @3186
5119 /* 3186 */ GIM_Try, /*On fail goto*//*Label 192*/ GIMT_Encode4(3197), // Rule ID 288 //
5120 /* 3191 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
5121 /* 3194 */ // Combiner Rule #191: and_or_disjoint_mask; wip_match_opcode 'G_AND'
5122 /* 3194 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
5123 /* 3197 */ // Label 192: @3197
5124 /* 3197 */ GIM_Try, /*On fail goto*//*Label 193*/ GIMT_Encode4(3208), // Rule ID 300 //
5125 /* 3202 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
5126 /* 3205 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_AND'
5127 /* 3205 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5128 /* 3208 */ // Label 193: @3208
5129 /* 3208 */ GIM_Try, /*On fail goto*//*Label 194*/ GIMT_Encode4(3219), // Rule ID 335 //
5130 /* 3213 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
5131 /* 3216 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_AND'
5132 /* 3216 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5133 /* 3219 */ // Label 194: @3219
5134 /* 3219 */ GIM_Try, /*On fail goto*//*Label 195*/ GIMT_Encode4(3230), // Rule ID 362 //
5135 /* 3224 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
5136 /* 3227 */ // Combiner Rule #213: match_ands; wip_match_opcode 'G_AND'
5137 /* 3227 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
5138 /* 3230 */ // Label 195: @3230
5139 /* 3230 */ GIM_Try, /*On fail goto*//*Label 196*/ GIMT_Encode4(3241), // Rule ID 397 //
5140 /* 3235 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule245Enabled),
5141 /* 3238 */ // Combiner Rule #245: binop_with_neg; wip_match_opcode 'G_AND'
5142 /* 3238 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner156),
5143 /* 3241 */ // Label 196: @3241
5144 /* 3241 */ GIM_Try, /*On fail goto*//*Label 197*/ GIMT_Encode4(3339), // Rule ID 165 //
5145 /* 3246 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
5146 /* 3249 */ // MIs[0] root
5147 /* 3249 */ // No operand predicates
5148 /* 3249 */ // MIs[0] d1
5149 /* 3249 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5150 /* 3253 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
5151 /* 3257 */ // MIs[1] p
5152 /* 3257 */ // No operand predicates
5153 /* 3257 */ // MIs[1] s1
5154 /* 3257 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
5155 /* 3261 */ // MIs[1] Operand 3
5156 /* 3261 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
5157 /* 3265 */ // MIs[0] d2
5158 /* 3265 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5159 /* 3269 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
5160 /* 3273 */ // MIs[2] p
5161 /* 3273 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
5162 /* 3278 */ // MIs[2] s2
5163 /* 3278 */ // No operand predicates
5164 /* 3278 */ // MIs[2] Operand 3
5165 /* 3278 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
5166 /* 3282 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner8),
5167 /* 3286 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5168 /* 3288 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5169 /* 3291 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5170 /* 3301 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5171 /* 3304 */ // Combiner Rule #121: double_icmp_zero_and_combine
5172 /* 3304 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5173 /* 3307 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5174 /* 3312 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
5175 /* 3316 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
5176 /* 3320 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
5177 /* 3324 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5178 /* 3328 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
5179 /* 3332 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5180 /* 3335 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
5181 /* 3338 */ GIR_EraseRootFromParent_Done,
5182 /* 3339 */ // Label 197: @3339
5183 /* 3339 */ GIM_Try, /*On fail goto*//*Label 198*/ GIMT_Encode4(3376), // Rule ID 248 //
5184 /* 3344 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
5185 /* 3347 */ // MIs[0] root
5186 /* 3347 */ // No operand predicates
5187 /* 3347 */ // MIs[0] shift
5188 /* 3347 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5189 /* 3351 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
5190 /* 3355 */ // MIs[1] x
5191 /* 3355 */ // No operand predicates
5192 /* 3355 */ // MIs[1] lsb
5193 /* 3355 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5194 /* 3359 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5195 /* 3363 */ // MIs[2] imm1
5196 /* 3363 */ // No operand predicates
5197 /* 3363 */ // MIs[0] mask
5198 /* 3363 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5199 /* 3367 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5200 /* 3371 */ // MIs[3] imm2
5201 /* 3371 */ // No operand predicates
5202 /* 3371 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5203 /* 3373 */ // Combiner Rule #181: bitfield_extract_from_and
5204 /* 3373 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner100),
5205 /* 3376 */ // Label 198: @3376
5206 /* 3376 */ GIM_Try, /*On fail goto*//*Label 199*/ GIMT_Encode4(3400), // Rule ID 120 //
5207 /* 3381 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
5208 /* 3384 */ // MIs[0] dst
5209 /* 3384 */ // No operand predicates
5210 /* 3384 */ // MIs[0] src
5211 /* 3384 */ // No operand predicates
5212 /* 3384 */ // MIs[0] src
5213 /* 3384 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5214 /* 3389 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5215 /* 3394 */ // Combiner Rule #91: binop_same_val @ [__binop_same_val_match_0[0]]
5216 /* 3394 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5217 /* 3399 */ GIR_EraseRootFromParent_Done,
5218 /* 3400 */ // Label 199: @3400
5219 /* 3400 */ GIM_Reject,
5220 /* 3401 */ // Label 9: @3401
5221 /* 3401 */ GIM_Try, /*On fail goto*//*Label 200*/ GIMT_Encode4(3412), // Rule ID 85 //
5222 /* 3406 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
5223 /* 3409 */ // Combiner Rule #79: undef_to_negative_one; wip_match_opcode 'G_OR'
5224 /* 3409 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
5225 /* 3412 */ // Label 200: @3412
5226 /* 3412 */ GIM_Try, /*On fail goto*//*Label 201*/ GIMT_Encode4(3423), // Rule ID 153 //
5227 /* 3417 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
5228 /* 3420 */ // Combiner Rule #112: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_OR'
5229 /* 3420 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
5230 /* 3423 */ // Label 201: @3423
5231 /* 3423 */ GIM_Try, /*On fail goto*//*Label 202*/ GIMT_Encode4(3434), // Rule ID 179 //
5232 /* 3428 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule135Enabled),
5233 /* 3431 */ // Combiner Rule #135: redundant_or; wip_match_opcode 'G_OR'
5234 /* 3431 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner73),
5235 /* 3434 */ // Label 202: @3434
5236 /* 3434 */ GIM_Try, /*On fail goto*//*Label 203*/ GIMT_Encode4(3445), // Rule ID 228 //
5237 /* 3439 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
5238 /* 3442 */ // Combiner Rule #168: load_or_combine; wip_match_opcode 'G_OR'
5239 /* 3442 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
5240 /* 3445 */ // Label 203: @3445
5241 /* 3445 */ GIM_Try, /*On fail goto*//*Label 204*/ GIMT_Encode4(3456), // Rule ID 233 //
5242 /* 3450 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
5243 /* 3453 */ // Combiner Rule #170: funnel_shift_from_or_shift; wip_match_opcode 'G_OR'
5244 /* 3453 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
5245 /* 3456 */ // Label 204: @3456
5246 /* 3456 */ GIM_Try, /*On fail goto*//*Label 205*/ GIMT_Encode4(3467), // Rule ID 259 //
5247 /* 3461 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
5248 /* 3464 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_OR'
5249 /* 3464 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5250 /* 3467 */ // Label 205: @3467
5251 /* 3467 */ GIM_Try, /*On fail goto*//*Label 206*/ GIMT_Encode4(3478), // Rule ID 301 //
5252 /* 3472 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
5253 /* 3475 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_OR'
5254 /* 3475 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5255 /* 3478 */ // Label 206: @3478
5256 /* 3478 */ GIM_Try, /*On fail goto*//*Label 207*/ GIMT_Encode4(3489), // Rule ID 336 //
5257 /* 3483 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
5258 /* 3486 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_OR'
5259 /* 3486 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5260 /* 3489 */ // Label 207: @3489
5261 /* 3489 */ GIM_Try, /*On fail goto*//*Label 208*/ GIMT_Encode4(3500), // Rule ID 363 //
5262 /* 3494 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
5263 /* 3497 */ // Combiner Rule #214: match_ors; wip_match_opcode 'G_OR'
5264 /* 3497 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
5265 /* 3500 */ // Label 208: @3500
5266 /* 3500 */ GIM_Try, /*On fail goto*//*Label 209*/ GIMT_Encode4(3511), // Rule ID 398 //
5267 /* 3505 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule245Enabled),
5268 /* 3508 */ // Combiner Rule #245: binop_with_neg; wip_match_opcode 'G_OR'
5269 /* 3508 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner156),
5270 /* 3511 */ // Label 209: @3511
5271 /* 3511 */ GIM_Try, /*On fail goto*//*Label 210*/ GIMT_Encode4(3558), // Rule ID 240 //
5272 /* 3516 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
5273 /* 3519 */ // MIs[0] root
5274 /* 3519 */ // No operand predicates
5275 /* 3519 */ // MIs[0] out1
5276 /* 3519 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5277 /* 3523 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHL),
5278 /* 3527 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
5279 /* 3527 */ // No operand predicates
5280 /* 3527 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
5281 /* 3527 */ // No operand predicates
5282 /* 3527 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
5283 /* 3527 */ // No operand predicates
5284 /* 3527 */ // MIs[0] out2
5285 /* 3527 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5286 /* 3531 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SHL),
5287 /* 3535 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
5288 /* 3535 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
5289 /* 3540 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
5290 /* 3540 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
5291 /* 3545 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5292 /* 3550 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5293 /* 3552 */ // Combiner Rule #175: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[0]]
5294 /* 3552 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5295 /* 3557 */ GIR_EraseRootFromParent_Done,
5296 /* 3558 */ // Label 210: @3558
5297 /* 3558 */ GIM_Try, /*On fail goto*//*Label 211*/ GIMT_Encode4(3605), // Rule ID 242 //
5298 /* 3563 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
5299 /* 3566 */ // MIs[0] root
5300 /* 3566 */ // No operand predicates
5301 /* 3566 */ // MIs[0] out1
5302 /* 3566 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5303 /* 3570 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHR),
5304 /* 3574 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
5305 /* 3574 */ // No operand predicates
5306 /* 3574 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
5307 /* 3574 */ // No operand predicates
5308 /* 3574 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
5309 /* 3574 */ // No operand predicates
5310 /* 3574 */ // MIs[0] out2
5311 /* 3574 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5312 /* 3578 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
5313 /* 3582 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
5314 /* 3582 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
5315 /* 3587 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
5316 /* 3587 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
5317 /* 3592 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5318 /* 3597 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5319 /* 3599 */ // Combiner Rule #176: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[0]]
5320 /* 3599 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5321 /* 3604 */ GIR_EraseRootFromParent_Done,
5322 /* 3605 */ // Label 211: @3605
5323 /* 3605 */ GIM_Try, /*On fail goto*//*Label 212*/ GIMT_Encode4(3703), // Rule ID 166 //
5324 /* 3610 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule122Enabled),
5325 /* 3613 */ // MIs[0] root
5326 /* 3613 */ // No operand predicates
5327 /* 3613 */ // MIs[0] d1
5328 /* 3613 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5329 /* 3617 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
5330 /* 3621 */ // MIs[1] p
5331 /* 3621 */ // No operand predicates
5332 /* 3621 */ // MIs[1] s1
5333 /* 3621 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
5334 /* 3625 */ // MIs[1] Operand 3
5335 /* 3625 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
5336 /* 3629 */ // MIs[0] d2
5337 /* 3629 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5338 /* 3633 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
5339 /* 3637 */ // MIs[2] p
5340 /* 3637 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
5341 /* 3642 */ // MIs[2] s2
5342 /* 3642 */ // No operand predicates
5343 /* 3642 */ // MIs[2] Operand 3
5344 /* 3642 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
5345 /* 3646 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
5346 /* 3650 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5347 /* 3652 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5348 /* 3655 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5349 /* 3665 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5350 /* 3668 */ // Combiner Rule #122: double_icmp_zero_or_combine
5351 /* 3668 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5352 /* 3671 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5353 /* 3676 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
5354 /* 3680 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
5355 /* 3684 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
5356 /* 3688 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5357 /* 3692 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
5358 /* 3696 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5359 /* 3699 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
5360 /* 3702 */ GIR_EraseRootFromParent_Done,
5361 /* 3703 */ // Label 212: @3703
5362 /* 3703 */ GIM_Try, /*On fail goto*//*Label 213*/ GIMT_Encode4(3750), // Rule ID 243 //
5363 /* 3708 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
5364 /* 3711 */ // MIs[0] root
5365 /* 3711 */ // No operand predicates
5366 /* 3711 */ // MIs[0] out2
5367 /* 3711 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5368 /* 3715 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
5369 /* 3719 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
5370 /* 3719 */ // No operand predicates
5371 /* 3719 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
5372 /* 3719 */ // No operand predicates
5373 /* 3719 */ // MIs[0] out1
5374 /* 3719 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5375 /* 3723 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHR),
5376 /* 3727 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
5377 /* 3727 */ // No operand predicates
5378 /* 3727 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
5379 /* 3727 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5380 /* 3732 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
5381 /* 3732 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
5382 /* 3737 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5383 /* 3742 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5384 /* 3744 */ // Combiner Rule #176: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[1]]
5385 /* 3744 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5386 /* 3749 */ GIR_EraseRootFromParent_Done,
5387 /* 3750 */ // Label 213: @3750
5388 /* 3750 */ GIM_Try, /*On fail goto*//*Label 214*/ GIMT_Encode4(3797), // Rule ID 241 //
5389 /* 3755 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
5390 /* 3758 */ // MIs[0] root
5391 /* 3758 */ // No operand predicates
5392 /* 3758 */ // MIs[0] out2
5393 /* 3758 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5394 /* 3762 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
5395 /* 3766 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
5396 /* 3766 */ // No operand predicates
5397 /* 3766 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
5398 /* 3766 */ // No operand predicates
5399 /* 3766 */ // MIs[0] out1
5400 /* 3766 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5401 /* 3770 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHL),
5402 /* 3774 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
5403 /* 3774 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
5404 /* 3779 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
5405 /* 3779 */ // No operand predicates
5406 /* 3779 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
5407 /* 3779 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
5408 /* 3784 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5409 /* 3789 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5410 /* 3791 */ // Combiner Rule #175: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[1]]
5411 /* 3791 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5412 /* 3796 */ GIR_EraseRootFromParent_Done,
5413 /* 3797 */ // Label 214: @3797
5414 /* 3797 */ GIM_Try, /*On fail goto*//*Label 215*/ GIMT_Encode4(3821), // Rule ID 121 //
5415 /* 3802 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
5416 /* 3805 */ // MIs[0] dst
5417 /* 3805 */ // No operand predicates
5418 /* 3805 */ // MIs[0] src
5419 /* 3805 */ // No operand predicates
5420 /* 3805 */ // MIs[0] src
5421 /* 3805 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5422 /* 3810 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5423 /* 3815 */ // Combiner Rule #91: binop_same_val @ [__binop_same_val_match_0[1]]
5424 /* 3815 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5425 /* 3820 */ GIR_EraseRootFromParent_Done,
5426 /* 3821 */ // Label 215: @3821
5427 /* 3821 */ GIM_Try, /*On fail goto*//*Label 216*/ GIMT_Encode4(3844), // Rule ID 112 //
5428 /* 3826 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
5429 /* 3829 */ // MIs[0] dst
5430 /* 3829 */ // No operand predicates
5431 /* 3829 */ // MIs[0] lhs
5432 /* 3829 */ // No operand predicates
5433 /* 3829 */ // MIs[0] Operand 2
5434 /* 3829 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5435 /* 3833 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5436 /* 3838 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[2]]
5437 /* 3838 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5438 /* 3843 */ GIR_EraseRootFromParent_Done,
5439 /* 3844 */ // Label 216: @3844
5440 /* 3844 */ GIM_Reject,
5441 /* 3845 */ // Label 10: @3845
5442 /* 3845 */ GIM_Try, /*On fail goto*//*Label 217*/ GIMT_Encode4(3856), // Rule ID 102 //
5443 /* 3850 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
5444 /* 3853 */ // Combiner Rule #84: propagate_undef_any_op; wip_match_opcode 'G_XOR'
5445 /* 3853 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
5446 /* 3856 */ // Label 217: @3856
5447 /* 3856 */ GIM_Try, /*On fail goto*//*Label 218*/ GIMT_Encode4(3867), // Rule ID 154 //
5448 /* 3861 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
5449 /* 3864 */ // Combiner Rule #112: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_XOR'
5450 /* 3864 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
5451 /* 3867 */ // Label 218: @3867
5452 /* 3867 */ GIM_Try, /*On fail goto*//*Label 219*/ GIMT_Encode4(3878), // Rule ID 184 //
5453 /* 3872 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule140Enabled),
5454 /* 3875 */ // Combiner Rule #140: not_cmp_fold; wip_match_opcode 'G_XOR'
5455 /* 3875 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
5456 /* 3878 */ // Label 219: @3878
5457 /* 3878 */ GIM_Try, /*On fail goto*//*Label 220*/ GIMT_Encode4(3889), // Rule ID 216 //
5458 /* 3883 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
5459 /* 3886 */ // Combiner Rule #164: xor_of_and_with_same_reg; wip_match_opcode 'G_XOR'
5460 /* 3886 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner89),
5461 /* 3889 */ // Label 220: @3889
5462 /* 3889 */ GIM_Try, /*On fail goto*//*Label 221*/ GIMT_Encode4(3900), // Rule ID 262 //
5463 /* 3894 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
5464 /* 3897 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_XOR'
5465 /* 3897 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5466 /* 3900 */ // Label 221: @3900
5467 /* 3900 */ GIM_Try, /*On fail goto*//*Label 222*/ GIMT_Encode4(3911), // Rule ID 302 //
5468 /* 3905 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
5469 /* 3908 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_XOR'
5470 /* 3908 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5471 /* 3911 */ // Label 222: @3911
5472 /* 3911 */ GIM_Try, /*On fail goto*//*Label 223*/ GIMT_Encode4(3922), // Rule ID 337 //
5473 /* 3916 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
5474 /* 3919 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_XOR'
5475 /* 3919 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5476 /* 3922 */ // Label 223: @3922
5477 /* 3922 */ GIM_Try, /*On fail goto*//*Label 224*/ GIMT_Encode4(3933), // Rule ID 399 //
5478 /* 3927 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule245Enabled),
5479 /* 3930 */ // Combiner Rule #245: binop_with_neg; wip_match_opcode 'G_XOR'
5480 /* 3930 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner156),
5481 /* 3933 */ // Label 224: @3933
5482 /* 3933 */ GIM_Try, /*On fail goto*//*Label 225*/ GIMT_Encode4(3993), // Rule ID 13 //
5483 /* 3938 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
5484 /* 3941 */ // MIs[0] root
5485 /* 3941 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5486 /* 3945 */ // MIs[0] add
5487 /* 3945 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5488 /* 3949 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5489 /* 3953 */ // MIs[1] A
5490 /* 3953 */ // No operand predicates
5491 /* 3953 */ // MIs[1] Operand 2
5492 /* 3953 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 255,
5493 /* 3957 */ // MIs[0] Operand 2
5494 /* 3957 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
5495 /* 3961 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
5496 /* 3965 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5497 /* 3967 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5498 /* 3970 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5499 /* 3980 */ // Combiner Rule #13: NotAPlusNegOne
5500 /* 3980 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5501 /* 3983 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5502 /* 3985 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5503 /* 3988 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5504 /* 3992 */ GIR_EraseRootFromParent_Done,
5505 /* 3993 */ // Label 225: @3993
5506 /* 3993 */ GIM_Try, /*On fail goto*//*Label 226*/ GIMT_Encode4(4032), // Rule ID 123 //
5507 /* 3998 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
5508 /* 4001 */ // MIs[0] dst
5509 /* 4001 */ // No operand predicates
5510 /* 4001 */ // MIs[0] x
5511 /* 4001 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
5512 /* 4005 */ // MIs[0] x
5513 /* 4005 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5514 /* 4010 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5515 /* 4013 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5516 /* 4023 */ // Combiner Rule #92: same_val_zero @ [__same_val_zero_match_0[1]]
5517 /* 4023 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5518 /* 4026 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5519 /* 4028 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5520 /* 4031 */ GIR_EraseRootFromParent_Done,
5521 /* 4032 */ // Label 226: @4032
5522 /* 4032 */ GIM_Try, /*On fail goto*//*Label 227*/ GIMT_Encode4(4055), // Rule ID 113 //
5523 /* 4037 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
5524 /* 4040 */ // MIs[0] dst
5525 /* 4040 */ // No operand predicates
5526 /* 4040 */ // MIs[0] lhs
5527 /* 4040 */ // No operand predicates
5528 /* 4040 */ // MIs[0] Operand 2
5529 /* 4040 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5530 /* 4044 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5531 /* 4049 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[3]]
5532 /* 4049 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5533 /* 4054 */ GIR_EraseRootFromParent_Done,
5534 /* 4055 */ // Label 227: @4055
5535 /* 4055 */ GIM_Reject,
5536 /* 4056 */ // Label 11: @4056
5537 /* 4056 */ GIM_Try, /*On fail goto*//*Label 228*/ GIMT_Encode4(4067), // Rule ID 150 //
5538 /* 4061 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled),
5539 /* 4064 */ // Combiner Rule #110: extend_through_phis; wip_match_opcode 'G_PHI'
5540 /* 4064 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
5541 /* 4067 */ // Label 228: @4067
5542 /* 4067 */ GIM_Reject,
5543 /* 4068 */ // Label 12: @4068
5544 /* 4068 */ GIM_Try, /*On fail goto*//*Label 229*/ GIMT_Encode4(4079), // Rule ID 373 //
5545 /* 4073 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule224Enabled),
5546 /* 4076 */ // Combiner Rule #224: unmerge_anyext_build_vector; wip_match_opcode 'G_UNMERGE_VALUES'
5547 /* 4076 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner140),
5548 /* 4079 */ // Label 229: @4079
5549 /* 4079 */ GIM_Try, /*On fail goto*//*Label 230*/ GIMT_Encode4(4090), // Rule ID 374 //
5550 /* 4084 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule225Enabled),
5551 /* 4087 */ // Combiner Rule #225: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
5552 /* 4087 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner141),
5553 /* 4090 */ // Label 230: @4090
5554 /* 4090 */ GIM_Try, /*On fail goto*//*Label 231*/ GIMT_Encode4(4101), // Rule ID 376 //
5555 /* 4095 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
5556 /* 4098 */ // Combiner Rule #227: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
5557 /* 4098 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner143),
5558 /* 4101 */ // Label 231: @4101
5559 /* 4101 */ GIM_Try, /*On fail goto*//*Label 232*/ GIMT_Encode4(4112), // Rule ID 377 //
5560 /* 4106 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
5561 /* 4109 */ // Combiner Rule #228: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
5562 /* 4109 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner144),
5563 /* 4112 */ // Label 232: @4112
5564 /* 4112 */ GIM_Try, /*On fail goto*//*Label 233*/ GIMT_Encode4(4123), // Rule ID 378 //
5565 /* 4117 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule229Enabled),
5566 /* 4120 */ // Combiner Rule #229: unmerge_dead_to_trunc; wip_match_opcode 'G_UNMERGE_VALUES'
5567 /* 4120 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner145),
5568 /* 4123 */ // Label 233: @4123
5569 /* 4123 */ GIM_Try, /*On fail goto*//*Label 234*/ GIMT_Encode4(4134), // Rule ID 379 //
5570 /* 4128 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule230Enabled),
5571 /* 4131 */ // Combiner Rule #230: unmerge_zext_to_zext; wip_match_opcode 'G_UNMERGE_VALUES'
5572 /* 4131 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner146),
5573 /* 4134 */ // Label 234: @4134
5574 /* 4134 */ GIM_Reject,
5575 /* 4135 */ // Label 13: @4135
5576 /* 4135 */ GIM_Try, /*On fail goto*//*Label 235*/ GIMT_Encode4(4149), // Rule ID 375 //
5577 /* 4140 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule226Enabled),
5578 /* 4143 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
5579 /* 4146 */ // MIs[0] dst
5580 /* 4146 */ // No operand predicates
5581 /* 4146 */ // MIs[0] merge_srcs
5582 /* 4146 */ // No operand predicates
5583 /* 4146 */ // Combiner Rule #226: merge_unmerge
5584 /* 4146 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner142),
5585 /* 4149 */ // Label 235: @4149
5586 /* 4149 */ GIM_Try, /*On fail goto*//*Label 236*/ GIMT_Encode4(4211),
5587 /* 4154 */ GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
5588 /* 4157 */ GIM_Try, /*On fail goto*//*Label 237*/ GIMT_Encode4(4178), // Rule ID 380 //
5589 /* 4162 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule231Enabled),
5590 /* 4165 */ // MIs[0] root
5591 /* 4165 */ // No operand predicates
5592 /* 4165 */ // MIs[0] x
5593 /* 4165 */ // No operand predicates
5594 /* 4165 */ // MIs[0] undef
5595 /* 4165 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5596 /* 4169 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5597 /* 4173 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5598 /* 4175 */ // Combiner Rule #231: merge_of_x_and_undef
5599 /* 4175 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner147),
5600 /* 4178 */ // Label 237: @4178
5601 /* 4178 */ GIM_Try, /*On fail goto*//*Label 238*/ GIMT_Encode4(4210), // Rule ID 381 //
5602 /* 4183 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule232Enabled),
5603 /* 4186 */ // MIs[0] root
5604 /* 4186 */ // No operand predicates
5605 /* 4186 */ // MIs[0] x
5606 /* 4186 */ // No operand predicates
5607 /* 4186 */ // MIs[0] zero
5608 /* 4186 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5609 /* 4190 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5610 /* 4194 */ // MIs[1] Operand 1
5611 /* 4194 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5612 /* 4205 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5613 /* 4207 */ // Combiner Rule #232: merge_of_x_and_zero
5614 /* 4207 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner148),
5615 /* 4210 */ // Label 238: @4210
5616 /* 4210 */ GIM_Reject,
5617 /* 4211 */ // Label 236: @4211
5618 /* 4211 */ GIM_Reject,
5619 /* 4212 */ // Label 14: @4212
5620 /* 4212 */ GIM_Try, /*On fail goto*//*Label 239*/ GIMT_Encode4(4223), // Rule ID 75 //
5621 /* 4217 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
5622 /* 4220 */ // Combiner Rule #73: extract_all_elts_from_build_vector; wip_match_opcode 'G_BUILD_VECTOR'
5623 /* 4220 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
5624 /* 4223 */ // Label 239: @4223
5625 /* 4223 */ GIM_Try, /*On fail goto*//*Label 240*/ GIMT_Encode4(4234), // Rule ID 104 //
5626 /* 4228 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
5627 /* 4231 */ // Combiner Rule #85: propagate_undef_all_ops; wip_match_opcode 'G_BUILD_VECTOR'
5628 /* 4231 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
5629 /* 4234 */ // Label 240: @4234
5630 /* 4234 */ GIM_Try, /*On fail goto*//*Label 241*/ GIMT_Encode4(4245), // Rule ID 142 //
5631 /* 4239 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
5632 /* 4242 */ // Combiner Rule #102: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR'
5633 /* 4242 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
5634 /* 4245 */ // Label 241: @4245
5635 /* 4245 */ GIM_Try, /*On fail goto*//*Label 242*/ GIMT_Encode4(4276),
5636 /* 4250 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
5637 /* 4253 */ GIM_Try, /*On fail goto*//*Label 243*/ GIMT_Encode4(4264), // Rule ID 372 //
5638 /* 4258 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule223Enabled),
5639 /* 4261 */ // MIs[0] dst
5640 /* 4261 */ // No operand predicates
5641 /* 4261 */ // MIs[0] unused
5642 /* 4261 */ // No operand predicates
5643 /* 4261 */ // Combiner Rule #223: combine_use_vector_truncate
5644 /* 4261 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner139),
5645 /* 4264 */ // Label 243: @4264
5646 /* 4264 */ GIM_Try, /*On fail goto*//*Label 244*/ GIMT_Encode4(4275), // Rule ID 382 //
5647 /* 4269 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
5648 /* 4272 */ // MIs[0] dst
5649 /* 4272 */ // No operand predicates
5650 /* 4272 */ // MIs[0] unused
5651 /* 4272 */ // No operand predicates
5652 /* 4272 */ // Combiner Rule #233: combine_build_unmerge
5653 /* 4272 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner149),
5654 /* 4275 */ // Label 244: @4275
5655 /* 4275 */ GIM_Reject,
5656 /* 4276 */ // Label 242: @4276
5657 /* 4276 */ GIM_Reject,
5658 /* 4277 */ // Label 15: @4277
5659 /* 4277 */ GIM_Try, /*On fail goto*//*Label 245*/ GIMT_Encode4(4288), // Rule ID 141 //
5660 /* 4282 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
5661 /* 4285 */ // Combiner Rule #102: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR_TRUNC'
5662 /* 4285 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
5663 /* 4288 */ // Label 245: @4288
5664 /* 4288 */ GIM_Reject,
5665 /* 4289 */ // Label 16: @4289
5666 /* 4289 */ GIM_Try, /*On fail goto*//*Label 246*/ GIMT_Encode4(4300), // Rule ID 365 //
5667 /* 4294 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
5668 /* 4297 */ // Combiner Rule #216: combine_concat_vector; wip_match_opcode 'G_CONCAT_VECTORS'
5669 /* 4297 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132),
5670 /* 4300 */ // Label 246: @4300
5671 /* 4300 */ GIM_Reject,
5672 /* 4301 */ // Label 17: @4301
5673 /* 4301 */ GIM_Try, /*On fail goto*//*Label 247*/ GIMT_Encode4(4322), // Rule ID 134 //
5674 /* 4306 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule96Enabled),
5675 /* 4309 */ // MIs[0] dst
5676 /* 4309 */ // No operand predicates
5677 /* 4309 */ // MIs[0] t
5678 /* 4309 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5679 /* 4313 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
5680 /* 4317 */ // MIs[1] ptr
5681 /* 4317 */ // No operand predicates
5682 /* 4317 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5683 /* 4319 */ // Combiner Rule #96: i2p_to_p2i
5684 /* 4319 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
5685 /* 4322 */ // Label 247: @4322
5686 /* 4322 */ GIM_Try, /*On fail goto*//*Label 248*/ GIMT_Encode4(4343), // Rule ID 96 //
5687 /* 4327 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5688 /* 4330 */ // MIs[0] dst
5689 /* 4330 */ // No operand predicates
5690 /* 4330 */ // MIs[0] __unary_undef_to_undef_match_0.x
5691 /* 4330 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5692 /* 4334 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5693 /* 4338 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5694 /* 4340 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[3]]
5695 /* 4340 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
5696 /* 4343 */ // Label 248: @4343
5697 /* 4343 */ GIM_Reject,
5698 /* 4344 */ // Label 18: @4344
5699 /* 4344 */ GIM_Try, /*On fail goto*//*Label 249*/ GIMT_Encode4(4355), // Rule ID 133 //
5700 /* 4349 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
5701 /* 4352 */ // Combiner Rule #95: p2i_to_i2p; wip_match_opcode 'G_INTTOPTR'
5702 /* 4352 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
5703 /* 4355 */ // Label 249: @4355
5704 /* 4355 */ GIM_Try, /*On fail goto*//*Label 250*/ GIMT_Encode4(4376), // Rule ID 97 //
5705 /* 4360 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5706 /* 4363 */ // MIs[0] dst
5707 /* 4363 */ // No operand predicates
5708 /* 4363 */ // MIs[0] __unary_undef_to_undef_match_0.x
5709 /* 4363 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5710 /* 4367 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5711 /* 4371 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5712 /* 4373 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[4]]
5713 /* 4373 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
5714 /* 4376 */ // Label 250: @4376
5715 /* 4376 */ GIM_Reject,
5716 /* 4377 */ // Label 19: @4377
5717 /* 4377 */ GIM_Try, /*On fail goto*//*Label 251*/ GIMT_Encode4(4398), // Rule ID 145 //
5718 /* 4382 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
5719 /* 4385 */ // MIs[0] dst
5720 /* 4385 */ // No operand predicates
5721 /* 4385 */ // MIs[0] src1
5722 /* 4385 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5723 /* 4389 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
5724 /* 4393 */ // MIs[1] src0
5725 /* 4393 */ // No operand predicates
5726 /* 4393 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5727 /* 4395 */ // Combiner Rule #105: bitcast_bitcast_fold
5728 /* 4395 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
5729 /* 4398 */ // Label 251: @4398
5730 /* 4398 */ GIM_Try, /*On fail goto*//*Label 252*/ GIMT_Encode4(4419), // Rule ID 94 //
5731 /* 4403 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5732 /* 4406 */ // MIs[0] dst
5733 /* 4406 */ // No operand predicates
5734 /* 4406 */ // MIs[0] __unary_undef_to_undef_match_0.x
5735 /* 4406 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5736 /* 4410 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5737 /* 4414 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5738 /* 4416 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[1]]
5739 /* 4416 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
5740 /* 4419 */ // Label 252: @4419
5741 /* 4419 */ GIM_Reject,
5742 /* 4420 */ // Label 20: @4420
5743 /* 4420 */ GIM_Try, /*On fail goto*//*Label 253*/ GIMT_Encode4(4449), // Rule ID 24 //
5744 /* 4425 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
5745 /* 4428 */ // MIs[0] dst
5746 /* 4428 */ // No operand predicates
5747 /* 4428 */ // MIs[0] src
5748 /* 4428 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5749 /* 4432 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREEZE),
5750 /* 4436 */ // MIs[1] __idempotent_prop_match_0.x
5751 /* 4436 */ // No operand predicates
5752 /* 4436 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5753 /* 4441 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5754 /* 4443 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[0]]
5755 /* 4443 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5756 /* 4448 */ GIR_EraseRootFromParent_Done,
5757 /* 4449 */ // Label 253: @4449
5758 /* 4449 */ GIM_Try, /*On fail goto*//*Label 254*/ GIMT_Encode4(4472), // Rule ID 49 //
5759 /* 4454 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
5760 /* 4457 */ // MIs[0] root
5761 /* 4457 */ // No operand predicates
5762 /* 4457 */ // MIs[0] src
5763 /* 4457 */ // No operand predicates
5764 /* 4457 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
5765 /* 4461 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5766 /* 4466 */ // Combiner Rule #47: freeze_of_non_undef_non_poison
5767 /* 4466 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5768 /* 4471 */ GIR_EraseRootFromParent_Done,
5769 /* 4472 */ // Label 254: @4472
5770 /* 4472 */ GIM_Try, /*On fail goto*//*Label 255*/ GIMT_Encode4(4483), // Rule ID 50 //
5771 /* 4477 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
5772 /* 4480 */ // MIs[0] dst
5773 /* 4480 */ // No operand predicates
5774 /* 4480 */ // MIs[0] src
5775 /* 4480 */ // No operand predicates
5776 /* 4480 */ // Combiner Rule #48: push_freeze_to_prevent_poison_from_propagating
5777 /* 4480 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
5778 /* 4483 */ // Label 255: @4483
5779 /* 4483 */ GIM_Reject,
5780 /* 4484 */ // Label 21: @4484
5781 /* 4484 */ GIM_Try, /*On fail goto*//*Label 256*/ GIMT_Encode4(4505), // Rule ID 194 //
5782 /* 4489 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
5783 /* 4492 */ // MIs[0] dst
5784 /* 4492 */ // No operand predicates
5785 /* 4492 */ // MIs[0] src0
5786 /* 4492 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5787 /* 4496 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
5788 /* 4500 */ // MIs[1] cst
5789 /* 4500 */ // No operand predicates
5790 /* 4500 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5791 /* 4502 */ // Combiner Rule #150: constant_fold_intrinsic_trunc
5792 /* 4502 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
5793 /* 4505 */ // Label 256: @4505
5794 /* 4505 */ GIM_Reject,
5795 /* 4506 */ // Label 22: @4506
5796 /* 4506 */ GIM_Try, /*On fail goto*//*Label 257*/ GIMT_Encode4(4527), // Rule ID 195 //
5797 /* 4511 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
5798 /* 4514 */ // MIs[0] dst
5799 /* 4514 */ // No operand predicates
5800 /* 4514 */ // MIs[0] src0
5801 /* 4514 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5802 /* 4518 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
5803 /* 4522 */ // MIs[1] cst
5804 /* 4522 */ // No operand predicates
5805 /* 4522 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5806 /* 4524 */ // Combiner Rule #151: constant_fold_intrinsic_round
5807 /* 4524 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
5808 /* 4527 */ // Label 257: @4527
5809 /* 4527 */ GIM_Reject,
5810 /* 4528 */ // Label 23: @4528
5811 /* 4528 */ GIM_Try, /*On fail goto*//*Label 258*/ GIMT_Encode4(4549), // Rule ID 196 //
5812 /* 4533 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
5813 /* 4536 */ // MIs[0] dst
5814 /* 4536 */ // No operand predicates
5815 /* 4536 */ // MIs[0] src0
5816 /* 4536 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5817 /* 4540 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
5818 /* 4544 */ // MIs[1] cst
5819 /* 4544 */ // No operand predicates
5820 /* 4544 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5821 /* 4546 */ // Combiner Rule #152: constant_fold_intrinsic_roundeven
5822 /* 4546 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
5823 /* 4549 */ // Label 258: @4549
5824 /* 4549 */ GIM_Reject,
5825 /* 4550 */ // Label 24: @4550
5826 /* 4550 */ GIM_Try, /*On fail goto*//*Label 259*/ GIMT_Encode4(4561), // Rule ID 76 //
5827 /* 4555 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
5828 /* 4558 */ // Combiner Rule #74: extending_loads; wip_match_opcode 'G_LOAD'
5829 /* 4558 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
5830 /* 4561 */ // Label 259: @4561
5831 /* 4561 */ GIM_Reject,
5832 /* 4562 */ // Label 25: @4562
5833 /* 4562 */ GIM_Try, /*On fail goto*//*Label 260*/ GIMT_Encode4(4573), // Rule ID 77 //
5834 /* 4567 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
5835 /* 4570 */ // Combiner Rule #74: extending_loads; wip_match_opcode 'G_SEXTLOAD'
5836 /* 4570 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
5837 /* 4573 */ // Label 260: @4573
5838 /* 4573 */ GIM_Reject,
5839 /* 4574 */ // Label 26: @4574
5840 /* 4574 */ GIM_Try, /*On fail goto*//*Label 261*/ GIMT_Encode4(4585), // Rule ID 78 //
5841 /* 4579 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
5842 /* 4582 */ // Combiner Rule #74: extending_loads; wip_match_opcode 'G_ZEXTLOAD'
5843 /* 4582 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
5844 /* 4585 */ // Label 261: @4585
5845 /* 4585 */ GIM_Reject,
5846 /* 4586 */ // Label 27: @4586
5847 /* 4586 */ GIM_Try, /*On fail goto*//*Label 262*/ GIMT_Encode4(4597), // Rule ID 106 //
5848 /* 4591 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
5849 /* 4594 */ // Combiner Rule #87: erase_undef_store; wip_match_opcode 'G_STORE'
5850 /* 4594 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner42),
5851 /* 4597 */ // Label 262: @4597
5852 /* 4597 */ GIM_Reject,
5853 /* 4598 */ // Label 28: @4598
5854 /* 4598 */ GIM_Try, /*On fail goto*//*Label 263*/ GIMT_Encode4(4609), // Rule ID 135 //
5855 /* 4603 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled),
5856 /* 4606 */ // Combiner Rule #97: anyext_trunc_fold; wip_match_opcode 'G_ANYEXT'
5857 /* 4606 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
5858 /* 4609 */ // Label 263: @4609
5859 /* 4609 */ GIM_Try, /*On fail goto*//*Label 264*/ GIMT_Encode4(4620), // Rule ID 279 //
5860 /* 4614 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
5861 /* 4617 */ // Combiner Rule #187: constant_fold_cast_op; wip_match_opcode 'G_ANYEXT'
5862 /* 4617 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
5863 /* 4620 */ // Label 264: @4620
5864 /* 4620 */ GIM_Try, /*On fail goto*//*Label 265*/ GIMT_Encode4(4641), // Rule ID 63 //
5865 /* 4625 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule61Enabled),
5866 /* 4628 */ // MIs[0] root
5867 /* 4628 */ // No operand predicates
5868 /* 4628 */ // MIs[0] select
5869 /* 4628 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5870 /* 4632 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
5871 /* 4636 */ // MIs[1] cond
5872 /* 4636 */ // No operand predicates
5873 /* 4636 */ // MIs[1] true
5874 /* 4636 */ // No operand predicates
5875 /* 4636 */ // MIs[1] false
5876 /* 4636 */ // No operand predicates
5877 /* 4636 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5878 /* 4638 */ // Combiner Rule #61: select_of_anyext
5879 /* 4638 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
5880 /* 4641 */ // Label 265: @4641
5881 /* 4641 */ GIM_Try, /*On fail goto*//*Label 266*/ GIMT_Encode4(4662), // Rule ID 58 //
5882 /* 4646 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
5883 /* 4649 */ // MIs[0] root
5884 /* 4649 */ // No operand predicates
5885 /* 4649 */ // MIs[0] second
5886 /* 4649 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5887 /* 4653 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
5888 /* 4657 */ // MIs[1] src
5889 /* 4657 */ // No operand predicates
5890 /* 4657 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5891 /* 4659 */ // Combiner Rule #56: anyext_of_anyext
5892 /* 4659 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
5893 /* 4662 */ // Label 266: @4662
5894 /* 4662 */ GIM_Try, /*On fail goto*//*Label 267*/ GIMT_Encode4(4683), // Rule ID 60 //
5895 /* 4667 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
5896 /* 4670 */ // MIs[0] root
5897 /* 4670 */ // No operand predicates
5898 /* 4670 */ // MIs[0] second
5899 /* 4670 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5900 /* 4674 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
5901 /* 4678 */ // MIs[1] src
5902 /* 4678 */ // No operand predicates
5903 /* 4678 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5904 /* 4680 */ // Combiner Rule #58: anyext_of_sext
5905 /* 4680 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
5906 /* 4683 */ // Label 267: @4683
5907 /* 4683 */ GIM_Try, /*On fail goto*//*Label 268*/ GIMT_Encode4(4704), // Rule ID 59 //
5908 /* 4688 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
5909 /* 4691 */ // MIs[0] root
5910 /* 4691 */ // No operand predicates
5911 /* 4691 */ // MIs[0] second
5912 /* 4691 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5913 /* 4695 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
5914 /* 4699 */ // MIs[1] src
5915 /* 4699 */ // No operand predicates
5916 /* 4699 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5917 /* 4701 */ // Combiner Rule #57: anyext_of_zext
5918 /* 4701 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
5919 /* 4704 */ // Label 268: @4704
5920 /* 4704 */ GIM_Try, /*On fail goto*//*Label 269*/ GIMT_Encode4(4725), // Rule ID 95 //
5921 /* 4709 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5922 /* 4712 */ // MIs[0] dst
5923 /* 4712 */ // No operand predicates
5924 /* 4712 */ // MIs[0] __unary_undef_to_undef_match_0.x
5925 /* 4712 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5926 /* 4716 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5927 /* 4720 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5928 /* 4722 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[2]]
5929 /* 4722 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
5930 /* 4725 */ // Label 269: @4725
5931 /* 4725 */ GIM_Reject,
5932 /* 4726 */ // Label 29: @4726
5933 /* 4726 */ GIM_Try, /*On fail goto*//*Label 270*/ GIMT_Encode4(4737), // Rule ID 143 //
5934 /* 4731 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
5935 /* 4734 */ // Combiner Rule #103: trunc_buildvector_fold; wip_match_opcode 'G_TRUNC'
5936 /* 4734 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
5937 /* 4737 */ // Label 270: @4737
5938 /* 4737 */ GIM_Try, /*On fail goto*//*Label 271*/ GIMT_Encode4(4748), // Rule ID 144 //
5939 /* 4742 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
5940 /* 4745 */ // Combiner Rule #104: trunc_lshr_buildvector_fold; wip_match_opcode 'G_TRUNC'
5941 /* 4745 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner50),
5942 /* 4748 */ // Label 271: @4748
5943 /* 4748 */ GIM_Try, /*On fail goto*//*Label 272*/ GIMT_Encode4(4759), // Rule ID 183 //
5944 /* 4753 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule139Enabled),
5945 /* 4756 */ // Combiner Rule #139: trunc_shift; wip_match_opcode 'G_TRUNC'
5946 /* 4756 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
5947 /* 4759 */ // Label 272: @4759
5948 /* 4759 */ GIM_Try, /*On fail goto*//*Label 273*/ GIMT_Encode4(4780), // Rule ID 64 //
5949 /* 4764 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled),
5950 /* 4767 */ // MIs[0] root
5951 /* 4767 */ // No operand predicates
5952 /* 4767 */ // MIs[0] select
5953 /* 4767 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5954 /* 4771 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
5955 /* 4775 */ // MIs[1] cond
5956 /* 4775 */ // No operand predicates
5957 /* 4775 */ // MIs[1] true
5958 /* 4775 */ // No operand predicates
5959 /* 4775 */ // MIs[1] false
5960 /* 4775 */ // No operand predicates
5961 /* 4775 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5962 /* 4777 */ // Combiner Rule #62: select_of_truncate
5963 /* 4777 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
5964 /* 4780 */ // Label 273: @4780
5965 /* 4780 */ GIM_Try, /*On fail goto*//*Label 274*/ GIMT_Encode4(4809), // Rule ID 66 //
5966 /* 4785 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
5967 /* 4788 */ // MIs[0] root
5968 /* 4788 */ // No operand predicates
5969 /* 4788 */ // MIs[0] binop
5970 /* 4788 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5971 /* 4792 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5972 /* 4796 */ // MIs[1] x
5973 /* 4796 */ // No operand predicates
5974 /* 4796 */ // MIs[1] const
5975 /* 4796 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5976 /* 4800 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5977 /* 4804 */ // MIs[2] imm
5978 /* 4804 */ // No operand predicates
5979 /* 4804 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5980 /* 4806 */ // Combiner Rule #64: narrow_binop_add
5981 /* 4806 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
5982 /* 4809 */ // Label 274: @4809
5983 /* 4809 */ GIM_Try, /*On fail goto*//*Label 275*/ GIMT_Encode4(4838), // Rule ID 69 //
5984 /* 4814 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule67Enabled),
5985 /* 4817 */ // MIs[0] root
5986 /* 4817 */ // No operand predicates
5987 /* 4817 */ // MIs[0] binop
5988 /* 4817 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5989 /* 4821 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5990 /* 4825 */ // MIs[1] x
5991 /* 4825 */ // No operand predicates
5992 /* 4825 */ // MIs[1] const
5993 /* 4825 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5994 /* 4829 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5995 /* 4833 */ // MIs[2] imm
5996 /* 4833 */ // No operand predicates
5997 /* 4833 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5998 /* 4835 */ // Combiner Rule #67: narrow_binop_and
5999 /* 4835 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6000 /* 4838 */ // Label 275: @4838
6001 /* 4838 */ GIM_Try, /*On fail goto*//*Label 276*/ GIMT_Encode4(4867), // Rule ID 68 //
6002 /* 4843 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule66Enabled),
6003 /* 4846 */ // MIs[0] root
6004 /* 4846 */ // No operand predicates
6005 /* 4846 */ // MIs[0] binop
6006 /* 4846 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6007 /* 4850 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
6008 /* 4854 */ // MIs[1] x
6009 /* 4854 */ // No operand predicates
6010 /* 4854 */ // MIs[1] const
6011 /* 4854 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6012 /* 4858 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6013 /* 4862 */ // MIs[2] imm
6014 /* 4862 */ // No operand predicates
6015 /* 4862 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6016 /* 4864 */ // Combiner Rule #66: narrow_binop_mul
6017 /* 4864 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6018 /* 4867 */ // Label 276: @4867
6019 /* 4867 */ GIM_Try, /*On fail goto*//*Label 277*/ GIMT_Encode4(4896), // Rule ID 70 //
6020 /* 4872 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
6021 /* 4875 */ // MIs[0] root
6022 /* 4875 */ // No operand predicates
6023 /* 4875 */ // MIs[0] binop
6024 /* 4875 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6025 /* 4879 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
6026 /* 4883 */ // MIs[1] x
6027 /* 4883 */ // No operand predicates
6028 /* 4883 */ // MIs[1] const
6029 /* 4883 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6030 /* 4887 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6031 /* 4891 */ // MIs[2] imm
6032 /* 4891 */ // No operand predicates
6033 /* 4891 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6034 /* 4893 */ // Combiner Rule #68: narrow_binop_or
6035 /* 4893 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6036 /* 4896 */ // Label 277: @4896
6037 /* 4896 */ GIM_Try, /*On fail goto*//*Label 278*/ GIMT_Encode4(4925), // Rule ID 67 //
6038 /* 4901 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
6039 /* 4904 */ // MIs[0] root
6040 /* 4904 */ // No operand predicates
6041 /* 4904 */ // MIs[0] binop
6042 /* 4904 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6043 /* 4908 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
6044 /* 4912 */ // MIs[1] x
6045 /* 4912 */ // No operand predicates
6046 /* 4912 */ // MIs[1] const
6047 /* 4912 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6048 /* 4916 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6049 /* 4920 */ // MIs[2] imm
6050 /* 4920 */ // No operand predicates
6051 /* 4920 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6052 /* 4922 */ // Combiner Rule #65: narrow_binop_sub
6053 /* 4922 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6054 /* 4925 */ // Label 278: @4925
6055 /* 4925 */ GIM_Try, /*On fail goto*//*Label 279*/ GIMT_Encode4(4957), // Rule ID 389 //
6056 /* 4930 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule238Enabled),
6057 /* 4933 */ // MIs[0] dst
6058 /* 4933 */ // No operand predicates
6059 /* 4933 */ // MIs[0] min
6060 /* 4933 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6061 /* 4937 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMIN),
6062 /* 4941 */ // MIs[1] x
6063 /* 4941 */ // No operand predicates
6064 /* 4941 */ // MIs[1] y
6065 /* 4941 */ // No operand predicates
6066 /* 4941 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
6067 /* 4945 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6068 /* 4947 */ // Combiner Rule #238: trunc_usatu
6069 /* 4947 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_TRUNC_USAT_U),
6070 /* 4950 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6071 /* 4952 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6072 /* 4956 */ GIR_EraseRootFromParent_Done,
6073 /* 4957 */ // Label 279: @4957
6074 /* 4957 */ GIM_Try, /*On fail goto*//*Label 280*/ GIMT_Encode4(4986), // Rule ID 71 //
6075 /* 4962 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled),
6076 /* 4965 */ // MIs[0] root
6077 /* 4965 */ // No operand predicates
6078 /* 4965 */ // MIs[0] binop
6079 /* 4965 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6080 /* 4969 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
6081 /* 4973 */ // MIs[1] x
6082 /* 4973 */ // No operand predicates
6083 /* 4973 */ // MIs[1] const
6084 /* 4973 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6085 /* 4977 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6086 /* 4981 */ // MIs[2] imm
6087 /* 4981 */ // No operand predicates
6088 /* 4981 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6089 /* 4983 */ // Combiner Rule #69: narrow_binop_xor
6090 /* 4983 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6091 /* 4986 */ // Label 280: @4986
6092 /* 4986 */ GIM_Try, /*On fail goto*//*Label 281*/ GIMT_Encode4(5007), // Rule ID 53 //
6093 /* 4991 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
6094 /* 4994 */ // MIs[0] root
6095 /* 4994 */ // No operand predicates
6096 /* 4994 */ // MIs[0] ext
6097 /* 4994 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6098 /* 4998 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
6099 /* 5002 */ // MIs[1] src
6100 /* 5002 */ // No operand predicates
6101 /* 5002 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6102 /* 5004 */ // Combiner Rule #51: truncate_of_anyext
6103 /* 5004 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
6104 /* 5007 */ // Label 281: @5007
6105 /* 5007 */ GIM_Try, /*On fail goto*//*Label 282*/ GIMT_Encode4(5031), // Rule ID 65 //
6106 /* 5012 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled),
6107 /* 5015 */ // MIs[0] root
6108 /* 5015 */ // No operand predicates
6109 /* 5015 */ // MIs[0] bv
6110 /* 5015 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6111 /* 5019 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
6112 /* 5023 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
6113 /* 5026 */ // MIs[1] unused
6114 /* 5026 */ // No operand predicates
6115 /* 5026 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6116 /* 5028 */ // Combiner Rule #63: buildvector_of_truncate
6117 /* 5028 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
6118 /* 5031 */ // Label 282: @5031
6119 /* 5031 */ GIM_Try, /*On fail goto*//*Label 283*/ GIMT_Encode4(5052), // Rule ID 52 //
6120 /* 5036 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
6121 /* 5039 */ // MIs[0] root
6122 /* 5039 */ // No operand predicates
6123 /* 5039 */ // MIs[0] ext
6124 /* 5039 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6125 /* 5043 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
6126 /* 5047 */ // MIs[1] src
6127 /* 5047 */ // No operand predicates
6128 /* 5047 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6129 /* 5049 */ // Combiner Rule #50: truncate_of_sext
6130 /* 5049 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
6131 /* 5052 */ // Label 283: @5052
6132 /* 5052 */ GIM_Try, /*On fail goto*//*Label 284*/ GIMT_Encode4(5073), // Rule ID 51 //
6133 /* 5057 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
6134 /* 5060 */ // MIs[0] root
6135 /* 5060 */ // No operand predicates
6136 /* 5060 */ // MIs[0] ext
6137 /* 5060 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6138 /* 5064 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6139 /* 5068 */ // MIs[1] src
6140 /* 5068 */ // No operand predicates
6141 /* 5068 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6142 /* 5070 */ // Combiner Rule #49: truncate_of_zext
6143 /* 5070 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
6144 /* 5073 */ // Label 284: @5073
6145 /* 5073 */ GIM_Try, /*On fail goto*//*Label 285*/ GIMT_Encode4(5094), // Rule ID 93 //
6146 /* 5078 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6147 /* 5081 */ // MIs[0] dst
6148 /* 5081 */ // No operand predicates
6149 /* 5081 */ // MIs[0] __unary_undef_to_undef_match_0.x
6150 /* 5081 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6151 /* 5085 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6152 /* 5089 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6153 /* 5091 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[0]]
6154 /* 5091 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6155 /* 5094 */ // Label 285: @5094
6156 /* 5094 */ GIM_Try, /*On fail goto*//*Label 286*/ GIMT_Encode4(5115), // Rule ID 72 //
6157 /* 5099 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
6158 /* 5102 */ // MIs[0] root
6159 /* 5102 */ // No operand predicates
6160 /* 5102 */ // MIs[0] int
6161 /* 5102 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6162 /* 5106 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6163 /* 5110 */ // MIs[1] imm
6164 /* 5110 */ // No operand predicates
6165 /* 5110 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6166 /* 5112 */ // Combiner Rule #70: integer_of_truncate
6167 /* 5112 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner26),
6168 /* 5115 */ // Label 286: @5115
6169 /* 5115 */ GIM_Try, /*On fail goto*//*Label 287*/ GIMT_Encode4(5126), // Rule ID 387 //
6170 /* 5120 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule236Enabled),
6171 /* 5123 */ // MIs[0] dst
6172 /* 5123 */ // No operand predicates
6173 /* 5123 */ // MIs[0] src
6174 /* 5123 */ // No operand predicates
6175 /* 5123 */ // Combiner Rule #236: trunc_ssats
6176 /* 5123 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner152),
6177 /* 5126 */ // Label 287: @5126
6178 /* 5126 */ GIM_Try, /*On fail goto*//*Label 288*/ GIMT_Encode4(5137), // Rule ID 388 //
6179 /* 5131 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule237Enabled),
6180 /* 5134 */ // MIs[0] dst
6181 /* 5134 */ // No operand predicates
6182 /* 5134 */ // MIs[0] src
6183 /* 5134 */ // No operand predicates
6184 /* 5134 */ // Combiner Rule #237: trunc_ssatu
6185 /* 5134 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
6186 /* 5137 */ // Label 288: @5137
6187 /* 5137 */ GIM_Reject,
6188 /* 5138 */ // Label 30: @5138
6189 /* 5138 */ GIM_Try, /*On fail goto*//*Label 289*/ GIMT_Encode4(5170), // Rule ID 390 //
6190 /* 5143 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule239Enabled),
6191 /* 5146 */ // MIs[0] dst
6192 /* 5146 */ // No operand predicates
6193 /* 5146 */ // MIs[0] src
6194 /* 5146 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6195 /* 5150 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPTOUI),
6196 /* 5154 */ // MIs[1] x
6197 /* 5154 */ // No operand predicates
6198 /* 5154 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner14),
6199 /* 5158 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6200 /* 5160 */ // Combiner Rule #239: truncusatu_to_fptouisat
6201 /* 5160 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FPTOUI_SAT),
6202 /* 5163 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6203 /* 5165 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6204 /* 5169 */ GIR_EraseRootFromParent_Done,
6205 /* 5170 */ // Label 289: @5170
6206 /* 5170 */ GIM_Reject,
6207 /* 5171 */ // Label 31: @5171
6208 /* 5171 */ GIM_Try, /*On fail goto*//*Label 290*/ GIMT_Encode4(5182), // Rule ID 278 //
6209 /* 5176 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
6210 /* 5179 */ // Combiner Rule #187: constant_fold_cast_op; wip_match_opcode 'G_SEXT'
6211 /* 5179 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
6212 /* 5182 */ // Label 290: @5182
6213 /* 5182 */ GIM_Try, /*On fail goto*//*Label 291*/ GIMT_Encode4(5203), // Rule ID 57 //
6214 /* 5187 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
6215 /* 5190 */ // MIs[0] root
6216 /* 5190 */ // No operand predicates
6217 /* 5190 */ // MIs[0] second
6218 /* 5190 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6219 /* 5194 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
6220 /* 5198 */ // MIs[1] src
6221 /* 5198 */ // No operand predicates
6222 /* 5198 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6223 /* 5200 */ // Combiner Rule #55: sext_of_anyext
6224 /* 5200 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6225 /* 5203 */ // Label 291: @5203
6226 /* 5203 */ GIM_Try, /*On fail goto*//*Label 292*/ GIMT_Encode4(5224), // Rule ID 56 //
6227 /* 5208 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
6228 /* 5211 */ // MIs[0] root
6229 /* 5211 */ // No operand predicates
6230 /* 5211 */ // MIs[0] second
6231 /* 5211 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6232 /* 5215 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
6233 /* 5219 */ // MIs[1] src
6234 /* 5219 */ // No operand predicates
6235 /* 5219 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6236 /* 5221 */ // Combiner Rule #54: sext_of_sext
6237 /* 5221 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6238 /* 5224 */ // Label 292: @5224
6239 /* 5224 */ GIM_Try, /*On fail goto*//*Label 293*/ GIMT_Encode4(5245), // Rule ID 366 //
6240 /* 5229 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
6241 /* 5232 */ // MIs[0] root
6242 /* 5232 */ // No operand predicates
6243 /* 5232 */ // MIs[0] src
6244 /* 5232 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6245 /* 5236 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
6246 /* 5240 */ // MIs[1] x
6247 /* 5240 */ // No operand predicates
6248 /* 5240 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6249 /* 5242 */ // Combiner Rule #217: sext_trunc
6250 /* 5242 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
6251 /* 5245 */ // Label 293: @5245
6252 /* 5245 */ GIM_Reject,
6253 /* 5246 */ // Label 32: @5246
6254 /* 5246 */ GIM_Try, /*On fail goto*//*Label 294*/ GIMT_Encode4(5257), // Rule ID 170 //
6255 /* 5251 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
6256 /* 5254 */ // Combiner Rule #126: sext_inreg_of_load; wip_match_opcode 'G_SEXT_INREG'
6257 /* 5254 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner65),
6258 /* 5257 */ // Label 294: @5257
6259 /* 5257 */ GIM_Try, /*On fail goto*//*Label 295*/ GIMT_Encode4(5268), // Rule ID 178 //
6260 /* 5262 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule134Enabled),
6261 /* 5265 */ // Combiner Rule #134: redundant_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
6262 /* 5265 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
6263 /* 5268 */ // Label 295: @5268
6264 /* 5268 */ GIM_Try, /*On fail goto*//*Label 296*/ GIMT_Encode4(5279), // Rule ID 247 //
6265 /* 5273 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
6266 /* 5276 */ // Combiner Rule #180: bitfield_extract_from_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
6267 /* 5276 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner99),
6268 /* 5279 */ // Label 296: @5279
6269 /* 5279 */ GIM_Try, /*On fail goto*//*Label 297*/ GIMT_Encode4(5300), // Rule ID 61 //
6270 /* 5284 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled),
6271 /* 5287 */ // MIs[0] dst
6272 /* 5287 */ // No operand predicates
6273 /* 5287 */ // MIs[0] x
6274 /* 5287 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6275 /* 5291 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
6276 /* 5295 */ // MIs[1] src
6277 /* 5295 */ // No operand predicates
6278 /* 5295 */ // MIs[1] a
6279 /* 5295 */ // No operand predicates
6280 /* 5295 */ // MIs[0] b
6281 /* 5295 */ // No operand predicates
6282 /* 5295 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6283 /* 5297 */ // Combiner Rule #59: sext_inreg_of_sext_inreg
6284 /* 5297 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
6285 /* 5300 */ // Label 297: @5300
6286 /* 5300 */ GIM_Try, /*On fail goto*//*Label 298*/ GIMT_Encode4(5311), // Rule ID 182 //
6287 /* 5305 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule138Enabled),
6288 /* 5308 */ // MIs[0] dst
6289 /* 5308 */ // No operand predicates
6290 /* 5308 */ // MIs[0] src
6291 /* 5308 */ // No operand predicates
6292 /* 5308 */ // MIs[0] imm
6293 /* 5308 */ // No operand predicates
6294 /* 5308 */ // Combiner Rule #138: sext_inreg_to_zext_inreg
6295 /* 5308 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76),
6296 /* 5311 */ // Label 298: @5311
6297 /* 5311 */ GIM_Reject,
6298 /* 5312 */ // Label 33: @5312
6299 /* 5312 */ GIM_Try, /*On fail goto*//*Label 299*/ GIMT_Encode4(5323), // Rule ID 181 //
6300 /* 5317 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled),
6301 /* 5320 */ // Combiner Rule #137: zext_trunc_fold; wip_match_opcode 'G_ZEXT'
6302 /* 5320 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner75),
6303 /* 5323 */ // Label 299: @5323
6304 /* 5323 */ GIM_Try, /*On fail goto*//*Label 300*/ GIMT_Encode4(5334), // Rule ID 277 //
6305 /* 5328 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
6306 /* 5331 */ // Combiner Rule #187: constant_fold_cast_op; wip_match_opcode 'G_ZEXT'
6307 /* 5331 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
6308 /* 5334 */ // Label 300: @5334
6309 /* 5334 */ GIM_Try, /*On fail goto*//*Label 301*/ GIMT_Encode4(5355), // Rule ID 62 //
6310 /* 5339 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled),
6311 /* 5342 */ // MIs[0] root
6312 /* 5342 */ // No operand predicates
6313 /* 5342 */ // MIs[0] select
6314 /* 5342 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6315 /* 5346 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
6316 /* 5350 */ // MIs[1] cond
6317 /* 5350 */ // No operand predicates
6318 /* 5350 */ // MIs[1] true
6319 /* 5350 */ // No operand predicates
6320 /* 5350 */ // MIs[1] false
6321 /* 5350 */ // No operand predicates
6322 /* 5350 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6323 /* 5352 */ // Combiner Rule #60: select_of_zext
6324 /* 5352 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
6325 /* 5355 */ // Label 301: @5355
6326 /* 5355 */ GIM_Try, /*On fail goto*//*Label 302*/ GIMT_Encode4(5376), // Rule ID 55 //
6327 /* 5360 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
6328 /* 5363 */ // MIs[0] root
6329 /* 5363 */ // No operand predicates
6330 /* 5363 */ // MIs[0] second
6331 /* 5363 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6332 /* 5367 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
6333 /* 5371 */ // MIs[1] src
6334 /* 5371 */ // No operand predicates
6335 /* 5371 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6336 /* 5373 */ // Combiner Rule #53: zext_of_anyext
6337 /* 5373 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6338 /* 5376 */ // Label 302: @5376
6339 /* 5376 */ GIM_Try, /*On fail goto*//*Label 303*/ GIMT_Encode4(5403), // Rule ID 367 //
6340 /* 5381 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule218Enabled),
6341 /* 5384 */ // MIs[0] root
6342 /* 5384 */ // No operand predicates
6343 /* 5384 */ // MIs[0] src
6344 /* 5384 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6345 /* 5388 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
6346 /* 5392 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::NoUWrap),
6347 /* 5398 */ // MIs[1] x
6348 /* 5398 */ // No operand predicates
6349 /* 5398 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6350 /* 5400 */ // Combiner Rule #218: zext_trunc
6351 /* 5400 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner134),
6352 /* 5403 */ // Label 303: @5403
6353 /* 5403 */ GIM_Try, /*On fail goto*//*Label 304*/ GIMT_Encode4(5424), // Rule ID 54 //
6354 /* 5408 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
6355 /* 5411 */ // MIs[0] root
6356 /* 5411 */ // No operand predicates
6357 /* 5411 */ // MIs[0] second
6358 /* 5411 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6359 /* 5415 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6360 /* 5419 */ // MIs[1] src
6361 /* 5419 */ // No operand predicates
6362 /* 5419 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6363 /* 5421 */ // Combiner Rule #52: zext_of_zext
6364 /* 5421 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6365 /* 5424 */ // Label 304: @5424
6366 /* 5424 */ GIM_Try, /*On fail goto*//*Label 305*/ GIMT_Encode4(5441), // Rule ID 368 //
6367 /* 5429 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule219Enabled),
6368 /* 5432 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NonNeg),
6369 /* 5438 */ // MIs[0] root
6370 /* 5438 */ // No operand predicates
6371 /* 5438 */ // MIs[0] x
6372 /* 5438 */ // No operand predicates
6373 /* 5438 */ // Combiner Rule #219: nneg_zext
6374 /* 5438 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner135),
6375 /* 5441 */ // Label 305: @5441
6376 /* 5441 */ GIM_Reject,
6377 /* 5442 */ // Label 34: @5442
6378 /* 5442 */ GIM_Try, /*On fail goto*//*Label 306*/ GIMT_Encode4(5453), // Rule ID 86 //
6379 /* 5447 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
6380 /* 5450 */ // Combiner Rule #80: binop_left_undef_to_zero; wip_match_opcode 'G_SHL'
6381 /* 5450 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
6382 /* 5453 */ // Label 306: @5453
6383 /* 5453 */ GIM_Try, /*On fail goto*//*Label 307*/ GIMT_Encode4(5464), // Rule ID 89 //
6384 /* 5458 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
6385 /* 5461 */ // Combiner Rule #81: binop_right_undef_to_undef; wip_match_opcode 'G_SHL'
6386 /* 5461 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
6387 /* 5464 */ // Label 307: @5464
6388 /* 5464 */ GIM_Try, /*On fail goto*//*Label 308*/ GIMT_Encode4(5475), // Rule ID 218 //
6389 /* 5469 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
6390 /* 5472 */ // Combiner Rule #166: shift_immed_chain; wip_match_opcode 'G_SHL'
6391 /* 5472 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
6392 /* 5475 */ // Label 308: @5475
6393 /* 5475 */ GIM_Try, /*On fail goto*//*Label 309*/ GIMT_Encode4(5486), // Rule ID 223 //
6394 /* 5480 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
6395 /* 5483 */ // Combiner Rule #167: shift_of_shifted_logic_chain; wip_match_opcode 'G_SHL'
6396 /* 5483 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6397 /* 5486 */ // Label 309: @5486
6398 /* 5486 */ GIM_Try, /*On fail goto*//*Label 310*/ GIMT_Encode4(5497), // Rule ID 246 //
6399 /* 5491 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
6400 /* 5494 */ // Combiner Rule #179: commute_shift; wip_match_opcode 'G_SHL'
6401 /* 5494 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
6402 /* 5497 */ // Label 310: @5497
6403 /* 5497 */ GIM_Try, /*On fail goto*//*Label 311*/ GIMT_Encode4(5508), // Rule ID 260 //
6404 /* 5502 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
6405 /* 5505 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_SHL'
6406 /* 5505 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
6407 /* 5508 */ // Label 311: @5508
6408 /* 5508 */ GIM_Try, /*On fail goto*//*Label 312*/ GIMT_Encode4(5519), // Rule ID 309 //
6409 /* 5513 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
6410 /* 5516 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_SHL'
6411 /* 5516 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
6412 /* 5519 */ // Label 312: @5519
6413 /* 5519 */ GIM_Try, /*On fail goto*//*Label 313*/ GIMT_Encode4(5554), // Rule ID 47 //
6414 /* 5524 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
6415 /* 5527 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
6416 /* 5533 */ // MIs[0] root
6417 /* 5533 */ // No operand predicates
6418 /* 5533 */ // MIs[0] left
6419 /* 5533 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6420 /* 5537 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
6421 /* 5541 */ // MIs[1] imm
6422 /* 5541 */ // No operand predicates
6423 /* 5541 */ // MIs[0] x
6424 /* 5541 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6425 /* 5545 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6426 /* 5549 */ // MIs[2] imm1
6427 /* 5549 */ // No operand predicates
6428 /* 5549 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6429 /* 5551 */ // Combiner Rule #45: shl_of_vscale
6430 /* 5551 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
6431 /* 5554 */ // Label 313: @5554
6432 /* 5554 */ GIM_Try, /*On fail goto*//*Label 314*/ GIMT_Encode4(5594), // Rule ID 124 //
6433 /* 5559 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
6434 /* 5562 */ // MIs[0] dst
6435 /* 5562 */ // No operand predicates
6436 /* 5562 */ // MIs[0] zero
6437 /* 5562 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6438 /* 5566 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6439 /* 5570 */ // MIs[1] Operand 1
6440 /* 5570 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
6441 /* 5581 */ // MIs[0] rhs
6442 /* 5581 */ // No operand predicates
6443 /* 5581 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6444 /* 5586 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6445 /* 5588 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[0]]
6446 /* 5588 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6447 /* 5593 */ GIR_EraseRootFromParent_Done,
6448 /* 5594 */ // Label 314: @5594
6449 /* 5594 */ GIM_Try, /*On fail goto*//*Label 315*/ GIMT_Encode4(5617), // Rule ID 114 //
6450 /* 5599 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
6451 /* 5602 */ // MIs[0] dst
6452 /* 5602 */ // No operand predicates
6453 /* 5602 */ // MIs[0] lhs
6454 /* 5602 */ // No operand predicates
6455 /* 5602 */ // MIs[0] Operand 2
6456 /* 5602 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6457 /* 5606 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6458 /* 5611 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[4]]
6459 /* 5611 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6460 /* 5616 */ GIR_EraseRootFromParent_Done,
6461 /* 5617 */ // Label 315: @5617
6462 /* 5617 */ GIM_Try, /*On fail goto*//*Label 316*/ GIMT_Encode4(5628), // Rule ID 155 //
6463 /* 5622 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
6464 /* 5625 */ // MIs[0] root
6465 /* 5625 */ // No operand predicates
6466 /* 5625 */ // MIs[0] mi.shifted
6467 /* 5625 */ // No operand predicates
6468 /* 5625 */ // MIs[0] mi.amt
6469 /* 5625 */ // No operand predicates
6470 /* 5625 */ // Combiner Rule #113: shifts_too_big @ [mi[0]]
6471 /* 5625 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
6472 /* 5628 */ // Label 316: @5628
6473 /* 5628 */ GIM_Try, /*On fail goto*//*Label 317*/ GIMT_Encode4(5639), // Rule ID 171 //
6474 /* 5633 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule127Enabled),
6475 /* 5636 */ // MIs[0] dst
6476 /* 5636 */ // No operand predicates
6477 /* 5636 */ // MIs[0] src0
6478 /* 5636 */ // No operand predicates
6479 /* 5636 */ // MIs[0] src1
6480 /* 5636 */ // No operand predicates
6481 /* 5636 */ // Combiner Rule #127: reduce_shl_of_extend
6482 /* 5636 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner66),
6483 /* 5639 */ // Label 317: @5639
6484 /* 5639 */ GIM_Reject,
6485 /* 5640 */ // Label 35: @5640
6486 /* 5640 */ GIM_Try, /*On fail goto*//*Label 318*/ GIMT_Encode4(5651), // Rule ID 91 //
6487 /* 5645 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
6488 /* 5648 */ // Combiner Rule #81: binop_right_undef_to_undef; wip_match_opcode 'G_LSHR'
6489 /* 5648 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
6490 /* 5651 */ // Label 318: @5651
6491 /* 5651 */ GIM_Try, /*On fail goto*//*Label 319*/ GIMT_Encode4(5662), // Rule ID 220 //
6492 /* 5656 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
6493 /* 5659 */ // Combiner Rule #166: shift_immed_chain; wip_match_opcode 'G_LSHR'
6494 /* 5659 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
6495 /* 5662 */ // Label 319: @5662
6496 /* 5662 */ GIM_Try, /*On fail goto*//*Label 320*/ GIMT_Encode4(5673), // Rule ID 225 //
6497 /* 5667 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
6498 /* 5670 */ // Combiner Rule #167: shift_of_shifted_logic_chain; wip_match_opcode 'G_LSHR'
6499 /* 5670 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6500 /* 5673 */ // Label 320: @5673
6501 /* 5673 */ GIM_Try, /*On fail goto*//*Label 321*/ GIMT_Encode4(5684), // Rule ID 250 //
6502 /* 5678 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
6503 /* 5681 */ // Combiner Rule #182: bitfield_extract_from_shr; wip_match_opcode 'G_LSHR'
6504 /* 5681 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
6505 /* 5684 */ // Label 321: @5684
6506 /* 5684 */ GIM_Try, /*On fail goto*//*Label 322*/ GIMT_Encode4(5695), // Rule ID 252 //
6507 /* 5689 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
6508 /* 5692 */ // Combiner Rule #183: bitfield_extract_from_shr_and; wip_match_opcode 'G_LSHR'
6509 /* 5692 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
6510 /* 5695 */ // Label 322: @5695
6511 /* 5695 */ GIM_Try, /*On fail goto*//*Label 323*/ GIMT_Encode4(5706), // Rule ID 257 //
6512 /* 5700 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
6513 /* 5703 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_LSHR'
6514 /* 5703 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
6515 /* 5706 */ // Label 323: @5706
6516 /* 5706 */ GIM_Try, /*On fail goto*//*Label 324*/ GIMT_Encode4(5717), // Rule ID 307 //
6517 /* 5711 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
6518 /* 5714 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_LSHR'
6519 /* 5714 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
6520 /* 5717 */ // Label 324: @5717
6521 /* 5717 */ GIM_Try, /*On fail goto*//*Label 325*/ GIMT_Encode4(5746), // Rule ID 391 //
6522 /* 5722 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule240Enabled),
6523 /* 5725 */ // MIs[0] dst
6524 /* 5725 */ // No operand predicates
6525 /* 5725 */ // MIs[0] d2
6526 /* 5725 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6527 /* 5729 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
6528 /* 5733 */ // MIs[1] d1
6529 /* 5733 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
6530 /* 5737 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
6531 /* 5741 */ // MIs[2] x
6532 /* 5741 */ // No operand predicates
6533 /* 5741 */ // MIs[2] y
6534 /* 5741 */ // No operand predicates
6535 /* 5741 */ // MIs[0] z
6536 /* 5741 */ // No operand predicates
6537 /* 5741 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6538 /* 5743 */ // Combiner Rule #240: lshr_of_trunc_of_lshr
6539 /* 5743 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner154),
6540 /* 5746 */ // Label 325: @5746
6541 /* 5746 */ GIM_Try, /*On fail goto*//*Label 326*/ GIMT_Encode4(5786), // Rule ID 125 //
6542 /* 5751 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
6543 /* 5754 */ // MIs[0] dst
6544 /* 5754 */ // No operand predicates
6545 /* 5754 */ // MIs[0] zero
6546 /* 5754 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6547 /* 5758 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6548 /* 5762 */ // MIs[1] Operand 1
6549 /* 5762 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
6550 /* 5773 */ // MIs[0] rhs
6551 /* 5773 */ // No operand predicates
6552 /* 5773 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6553 /* 5778 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6554 /* 5780 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[1]]
6555 /* 5780 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6556 /* 5785 */ GIR_EraseRootFromParent_Done,
6557 /* 5786 */ // Label 326: @5786
6558 /* 5786 */ GIM_Try, /*On fail goto*//*Label 327*/ GIMT_Encode4(5809), // Rule ID 116 //
6559 /* 5791 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
6560 /* 5794 */ // MIs[0] dst
6561 /* 5794 */ // No operand predicates
6562 /* 5794 */ // MIs[0] lhs
6563 /* 5794 */ // No operand predicates
6564 /* 5794 */ // MIs[0] Operand 2
6565 /* 5794 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6566 /* 5798 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6567 /* 5803 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[6]]
6568 /* 5803 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6569 /* 5808 */ GIR_EraseRootFromParent_Done,
6570 /* 5809 */ // Label 327: @5809
6571 /* 5809 */ GIM_Try, /*On fail goto*//*Label 328*/ GIMT_Encode4(5820), // Rule ID 157 //
6572 /* 5814 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
6573 /* 5817 */ // MIs[0] root
6574 /* 5817 */ // No operand predicates
6575 /* 5817 */ // MIs[0] mi.shifted
6576 /* 5817 */ // No operand predicates
6577 /* 5817 */ // MIs[0] mi.amt
6578 /* 5817 */ // No operand predicates
6579 /* 5817 */ // Combiner Rule #113: shifts_too_big @ [mi[2]]
6580 /* 5817 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
6581 /* 5820 */ // Label 328: @5820
6582 /* 5820 */ GIM_Reject,
6583 /* 5821 */ // Label 36: @5821
6584 /* 5821 */ GIM_Try, /*On fail goto*//*Label 329*/ GIMT_Encode4(5832), // Rule ID 90 //
6585 /* 5826 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
6586 /* 5829 */ // Combiner Rule #81: binop_right_undef_to_undef; wip_match_opcode 'G_ASHR'
6587 /* 5829 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
6588 /* 5832 */ // Label 329: @5832
6589 /* 5832 */ GIM_Try, /*On fail goto*//*Label 330*/ GIMT_Encode4(5843), // Rule ID 168 //
6590 /* 5837 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule124Enabled),
6591 /* 5840 */ // Combiner Rule #124: shl_ashr_to_sext_inreg; wip_match_opcode 'G_ASHR'
6592 /* 5840 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner64),
6593 /* 5843 */ // Label 330: @5843
6594 /* 5843 */ GIM_Try, /*On fail goto*//*Label 331*/ GIMT_Encode4(5854), // Rule ID 219 //
6595 /* 5848 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
6596 /* 5851 */ // Combiner Rule #166: shift_immed_chain; wip_match_opcode 'G_ASHR'
6597 /* 5851 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
6598 /* 5854 */ // Label 331: @5854
6599 /* 5854 */ GIM_Try, /*On fail goto*//*Label 332*/ GIMT_Encode4(5865), // Rule ID 224 //
6600 /* 5859 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
6601 /* 5862 */ // Combiner Rule #167: shift_of_shifted_logic_chain; wip_match_opcode 'G_ASHR'
6602 /* 5862 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6603 /* 5865 */ // Label 332: @5865
6604 /* 5865 */ GIM_Try, /*On fail goto*//*Label 333*/ GIMT_Encode4(5876), // Rule ID 249 //
6605 /* 5870 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
6606 /* 5873 */ // Combiner Rule #182: bitfield_extract_from_shr; wip_match_opcode 'G_ASHR'
6607 /* 5873 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
6608 /* 5876 */ // Label 333: @5876
6609 /* 5876 */ GIM_Try, /*On fail goto*//*Label 334*/ GIMT_Encode4(5887), // Rule ID 251 //
6610 /* 5881 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
6611 /* 5884 */ // Combiner Rule #183: bitfield_extract_from_shr_and; wip_match_opcode 'G_ASHR'
6612 /* 5884 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
6613 /* 5887 */ // Label 334: @5887
6614 /* 5887 */ GIM_Try, /*On fail goto*//*Label 335*/ GIMT_Encode4(5898), // Rule ID 256 //
6615 /* 5892 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
6616 /* 5895 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_ASHR'
6617 /* 5895 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
6618 /* 5898 */ // Label 335: @5898
6619 /* 5898 */ GIM_Try, /*On fail goto*//*Label 336*/ GIMT_Encode4(5909), // Rule ID 308 //
6620 /* 5903 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
6621 /* 5906 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_ASHR'
6622 /* 5906 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
6623 /* 5909 */ // Label 336: @5909
6624 /* 5909 */ GIM_Try, /*On fail goto*//*Label 337*/ GIMT_Encode4(5949), // Rule ID 126 //
6625 /* 5914 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
6626 /* 5917 */ // MIs[0] dst
6627 /* 5917 */ // No operand predicates
6628 /* 5917 */ // MIs[0] zero
6629 /* 5917 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6630 /* 5921 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6631 /* 5925 */ // MIs[1] Operand 1
6632 /* 5925 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
6633 /* 5936 */ // MIs[0] rhs
6634 /* 5936 */ // No operand predicates
6635 /* 5936 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6636 /* 5941 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6637 /* 5943 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[2]]
6638 /* 5943 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6639 /* 5948 */ GIR_EraseRootFromParent_Done,
6640 /* 5949 */ // Label 337: @5949
6641 /* 5949 */ GIM_Try, /*On fail goto*//*Label 338*/ GIMT_Encode4(5972), // Rule ID 115 //
6642 /* 5954 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
6643 /* 5957 */ // MIs[0] dst
6644 /* 5957 */ // No operand predicates
6645 /* 5957 */ // MIs[0] lhs
6646 /* 5957 */ // No operand predicates
6647 /* 5957 */ // MIs[0] Operand 2
6648 /* 5957 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6649 /* 5961 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6650 /* 5966 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[5]]
6651 /* 5966 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6652 /* 5971 */ GIR_EraseRootFromParent_Done,
6653 /* 5972 */ // Label 338: @5972
6654 /* 5972 */ GIM_Try, /*On fail goto*//*Label 339*/ GIMT_Encode4(5983), // Rule ID 156 //
6655 /* 5977 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
6656 /* 5980 */ // MIs[0] root
6657 /* 5980 */ // No operand predicates
6658 /* 5980 */ // MIs[0] mi.shifted
6659 /* 5980 */ // No operand predicates
6660 /* 5980 */ // MIs[0] mi.amt
6661 /* 5980 */ // No operand predicates
6662 /* 5980 */ // Combiner Rule #113: shifts_too_big @ [mi[1]]
6663 /* 5980 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
6664 /* 5983 */ // Label 339: @5983
6665 /* 5983 */ GIM_Reject,
6666 /* 5984 */ // Label 37: @5984
6667 /* 5984 */ GIM_Try, /*On fail goto*//*Label 340*/ GIMT_Encode4(5995), // Rule ID 234 //
6668 /* 5989 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
6669 /* 5992 */ // Combiner Rule #171: funnel_shift_to_rotate; wip_match_opcode 'G_FSHL'
6670 /* 5992 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
6671 /* 5995 */ // Label 340: @5995
6672 /* 5995 */ GIM_Try, /*On fail goto*//*Label 341*/ GIMT_Encode4(6006), // Rule ID 238 //
6673 /* 6000 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
6674 /* 6003 */ // Combiner Rule #174: funnel_shift_overshift; wip_match_opcode 'G_FSHL'
6675 /* 6003 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
6676 /* 6006 */ // Label 341: @6006
6677 /* 6006 */ GIM_Try, /*On fail goto*//*Label 342*/ GIMT_Encode4(6026), // Rule ID 237 //
6678 /* 6011 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
6679 /* 6014 */ // MIs[0] x
6680 /* 6014 */ // No operand predicates
6681 /* 6014 */ // MIs[0] y
6682 /* 6014 */ // No operand predicates
6683 /* 6014 */ // MIs[0] z
6684 /* 6014 */ // No operand predicates
6685 /* 6014 */ // MIs[0] Operand 3
6686 /* 6014 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
6687 /* 6018 */ // Combiner Rule #173: funnel_shift_left_zero
6688 /* 6018 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
6689 /* 6021 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
6690 /* 6023 */ GIR_RootToRootCopy, /*OpIdx*/1, // y
6691 /* 6025 */ GIR_EraseRootFromParent_Done,
6692 /* 6026 */ // Label 342: @6026
6693 /* 6026 */ GIM_Reject,
6694 /* 6027 */ // Label 38: @6027
6695 /* 6027 */ GIM_Try, /*On fail goto*//*Label 343*/ GIMT_Encode4(6038), // Rule ID 235 //
6696 /* 6032 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
6697 /* 6035 */ // Combiner Rule #171: funnel_shift_to_rotate; wip_match_opcode 'G_FSHR'
6698 /* 6035 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
6699 /* 6038 */ // Label 343: @6038
6700 /* 6038 */ GIM_Try, /*On fail goto*//*Label 344*/ GIMT_Encode4(6049), // Rule ID 239 //
6701 /* 6043 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
6702 /* 6046 */ // Combiner Rule #174: funnel_shift_overshift; wip_match_opcode 'G_FSHR'
6703 /* 6046 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
6704 /* 6049 */ // Label 344: @6049
6705 /* 6049 */ GIM_Try, /*On fail goto*//*Label 345*/ GIMT_Encode4(6069), // Rule ID 236 //
6706 /* 6054 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
6707 /* 6057 */ // MIs[0] x
6708 /* 6057 */ // No operand predicates
6709 /* 6057 */ // MIs[0] y
6710 /* 6057 */ // No operand predicates
6711 /* 6057 */ // MIs[0] z
6712 /* 6057 */ // No operand predicates
6713 /* 6057 */ // MIs[0] Operand 3
6714 /* 6057 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
6715 /* 6061 */ // Combiner Rule #172: funnel_shift_right_zero
6716 /* 6061 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
6717 /* 6064 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
6718 /* 6066 */ GIR_RootToRootCopy, /*OpIdx*/2, // z
6719 /* 6068 */ GIR_EraseRootFromParent_Done,
6720 /* 6069 */ // Label 345: @6069
6721 /* 6069 */ GIM_Reject,
6722 /* 6070 */ // Label 39: @6070
6723 /* 6070 */ GIM_Try, /*On fail goto*//*Label 346*/ GIMT_Encode4(6093), // Rule ID 119 //
6724 /* 6075 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
6725 /* 6078 */ // MIs[0] dst
6726 /* 6078 */ // No operand predicates
6727 /* 6078 */ // MIs[0] lhs
6728 /* 6078 */ // No operand predicates
6729 /* 6078 */ // MIs[0] Operand 2
6730 /* 6078 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6731 /* 6082 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6732 /* 6087 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[9]]
6733 /* 6087 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6734 /* 6092 */ GIR_EraseRootFromParent_Done,
6735 /* 6093 */ // Label 346: @6093
6736 /* 6093 */ GIM_Reject,
6737 /* 6094 */ // Label 40: @6094
6738 /* 6094 */ GIM_Try, /*On fail goto*//*Label 347*/ GIMT_Encode4(6117), // Rule ID 118 //
6739 /* 6099 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
6740 /* 6102 */ // MIs[0] dst
6741 /* 6102 */ // No operand predicates
6742 /* 6102 */ // MIs[0] lhs
6743 /* 6102 */ // No operand predicates
6744 /* 6102 */ // MIs[0] Operand 2
6745 /* 6102 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6746 /* 6106 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6747 /* 6111 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[8]]
6748 /* 6111 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6749 /* 6116 */ GIR_EraseRootFromParent_Done,
6750 /* 6117 */ // Label 347: @6117
6751 /* 6117 */ GIM_Reject,
6752 /* 6118 */ // Label 41: @6118
6753 /* 6118 */ GIM_Try, /*On fail goto*//*Label 348*/ GIMT_Encode4(6129), // Rule ID 163 //
6754 /* 6123 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
6755 /* 6126 */ // Combiner Rule #119: icmp_to_true_false_known_bits; wip_match_opcode 'G_ICMP'
6756 /* 6126 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner61),
6757 /* 6129 */ // Label 348: @6129
6758 /* 6129 */ GIM_Try, /*On fail goto*//*Label 349*/ GIMT_Encode4(6140), // Rule ID 164 //
6759 /* 6134 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule120Enabled),
6760 /* 6137 */ // Combiner Rule #120: icmp_to_lhs_known_bits; wip_match_opcode 'G_ICMP'
6761 /* 6137 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner62),
6762 /* 6140 */ // Label 349: @6140
6763 /* 6140 */ GIM_Try, /*On fail goto*//*Label 350*/ GIMT_Encode4(6151), // Rule ID 167 //
6764 /* 6145 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule123Enabled),
6765 /* 6148 */ // Combiner Rule #123: redundant_binop_in_equality; wip_match_opcode 'G_ICMP'
6766 /* 6148 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
6767 /* 6151 */ // Label 350: @6151
6768 /* 6151 */ GIM_Try, /*On fail goto*//*Label 351*/ GIMT_Encode4(6162), // Rule ID 161 //
6769 /* 6156 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled),
6770 /* 6159 */ // MIs[0] root
6771 /* 6159 */ // No operand predicates
6772 /* 6159 */ // MIs[0] pred
6773 /* 6159 */ // No operand predicates
6774 /* 6159 */ // MIs[0] lhs
6775 /* 6159 */ // No operand predicates
6776 /* 6159 */ // MIs[0] rhs
6777 /* 6159 */ // No operand predicates
6778 /* 6159 */ // Combiner Rule #117: canonicalize_icmp
6779 /* 6159 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner59),
6780 /* 6162 */ // Label 351: @6162
6781 /* 6162 */ GIM_Reject,
6782 /* 6163 */ // Label 42: @6163
6783 /* 6163 */ GIM_Try, /*On fail goto*//*Label 352*/ GIMT_Encode4(6174), // Rule ID 162 //
6784 /* 6168 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
6785 /* 6171 */ // MIs[0] root
6786 /* 6171 */ // No operand predicates
6787 /* 6171 */ // MIs[0] pred
6788 /* 6171 */ // No operand predicates
6789 /* 6171 */ // MIs[0] lhs
6790 /* 6171 */ // No operand predicates
6791 /* 6171 */ // MIs[0] rhs
6792 /* 6171 */ // No operand predicates
6793 /* 6171 */ // Combiner Rule #118: canonicalize_fcmp
6794 /* 6171 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner60),
6795 /* 6174 */ // Label 352: @6174
6796 /* 6174 */ GIM_Reject,
6797 /* 6175 */ // Label 43: @6175
6798 /* 6175 */ GIM_Try, /*On fail goto*//*Label 353*/ GIMT_Encode4(6186), // Rule ID 109 //
6799 /* 6180 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
6800 /* 6183 */ // Combiner Rule #89: select_same_val; wip_match_opcode 'G_SELECT'
6801 /* 6183 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner44),
6802 /* 6186 */ // Label 353: @6186
6803 /* 6186 */ GIM_Try, /*On fail goto*//*Label 354*/ GIMT_Encode4(6197), // Rule ID 174 //
6804 /* 6191 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule130Enabled),
6805 /* 6194 */ // Combiner Rule #130: select_constant_cmp; wip_match_opcode 'G_SELECT'
6806 /* 6194 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner68),
6807 /* 6197 */ // Label 354: @6197
6808 /* 6197 */ GIM_Try, /*On fail goto*//*Label 355*/ GIMT_Encode4(6208), // Rule ID 176 //
6809 /* 6202 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled),
6810 /* 6205 */ // Combiner Rule #132: match_selects; wip_match_opcode 'G_SELECT'
6811 /* 6205 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
6812 /* 6208 */ // Label 355: @6208
6813 /* 6208 */ GIM_Try, /*On fail goto*//*Label 356*/ GIMT_Encode4(6219), // Rule ID 331 //
6814 /* 6213 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
6815 /* 6216 */ // Combiner Rule #209: select_to_minmax; wip_match_opcode 'G_SELECT'
6816 /* 6216 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner125),
6817 /* 6219 */ // Label 356: @6219
6818 /* 6219 */ GIM_Try, /*On fail goto*//*Label 357*/ GIMT_Encode4(6240), // Rule ID 175 //
6819 /* 6224 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled),
6820 /* 6227 */ // MIs[0] root
6821 /* 6227 */ // No operand predicates
6822 /* 6227 */ // MIs[0] tst
6823 /* 6227 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6824 /* 6231 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
6825 /* 6235 */ // MIs[1] tst1
6826 /* 6235 */ // No operand predicates
6827 /* 6235 */ // MIs[1] a
6828 /* 6235 */ // No operand predicates
6829 /* 6235 */ // MIs[1] b
6830 /* 6235 */ // No operand predicates
6831 /* 6235 */ // MIs[0] x
6832 /* 6235 */ // No operand predicates
6833 /* 6235 */ // MIs[0] y
6834 /* 6235 */ // No operand predicates
6835 /* 6235 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6836 /* 6237 */ // Combiner Rule #131: select_to_iminmax
6837 /* 6237 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
6838 /* 6240 */ // Label 357: @6240
6839 /* 6240 */ GIM_Try, /*On fail goto*//*Label 358*/ GIMT_Encode4(6269), // Rule ID 173 //
6840 /* 6245 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule129Enabled),
6841 /* 6248 */ // MIs[0] dst
6842 /* 6248 */ // No operand predicates
6843 /* 6248 */ // MIs[0] undef
6844 /* 6248 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6845 /* 6252 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6846 /* 6256 */ // MIs[0] x
6847 /* 6256 */ // No operand predicates
6848 /* 6256 */ // MIs[0] y
6849 /* 6256 */ // No operand predicates
6850 /* 6256 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
6851 /* 6261 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6852 /* 6263 */ // Combiner Rule #129: select_undef_cmp
6853 /* 6263 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
6854 /* 6268 */ GIR_EraseRootFromParent_Done,
6855 /* 6269 */ // Label 358: @6269
6856 /* 6269 */ GIM_Reject,
6857 /* 6270 */ // Label 44: @6270
6858 /* 6270 */ GIM_Try, /*On fail goto*//*Label 359*/ GIMT_Encode4(6281), // Rule ID 342 //
6859 /* 6275 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
6860 /* 6278 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDO'
6861 /* 6278 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6862 /* 6281 */ // Label 359: @6281
6863 /* 6281 */ GIM_Try, /*On fail goto*//*Label 360*/ GIMT_Encode4(6292), // Rule ID 384 //
6864 /* 6286 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
6865 /* 6289 */ // Combiner Rule #234: match_addos; wip_match_opcode 'G_UADDO'
6866 /* 6289 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner150),
6867 /* 6292 */ // Label 360: @6292
6868 /* 6292 */ GIM_Reject,
6869 /* 6293 */ // Label 45: @6293
6870 /* 6293 */ GIM_Try, /*On fail goto*//*Label 361*/ GIMT_Encode4(6304), // Rule ID 207 //
6871 /* 6298 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
6872 /* 6301 */ // Combiner Rule #161: adde_to_addo; wip_match_opcode 'G_UADDE'
6873 /* 6301 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
6874 /* 6304 */ // Label 361: @6304
6875 /* 6304 */ GIM_Reject,
6876 /* 6305 */ // Label 46: @6305
6877 /* 6305 */ GIM_Try, /*On fail goto*//*Label 362*/ GIMT_Encode4(6316), // Rule ID 386 //
6878 /* 6310 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule235Enabled),
6879 /* 6313 */ // Combiner Rule #235: match_subo_no_overflow; wip_match_opcode 'G_USUBO'
6880 /* 6313 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner151),
6881 /* 6316 */ // Label 362: @6316
6882 /* 6316 */ GIM_Reject,
6883 /* 6317 */ // Label 47: @6317
6884 /* 6317 */ GIM_Try, /*On fail goto*//*Label 363*/ GIMT_Encode4(6328), // Rule ID 209 //
6885 /* 6322 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
6886 /* 6325 */ // Combiner Rule #161: adde_to_addo; wip_match_opcode 'G_USUBE'
6887 /* 6325 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
6888 /* 6328 */ // Label 363: @6328
6889 /* 6328 */ GIM_Reject,
6890 /* 6329 */ // Label 48: @6329
6891 /* 6329 */ GIM_Try, /*On fail goto*//*Label 364*/ GIMT_Encode4(6340), // Rule ID 343 //
6892 /* 6334 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
6893 /* 6337 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDO'
6894 /* 6337 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6895 /* 6340 */ // Label 364: @6340
6896 /* 6340 */ GIM_Try, /*On fail goto*//*Label 365*/ GIMT_Encode4(6351), // Rule ID 383 //
6897 /* 6345 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
6898 /* 6348 */ // Combiner Rule #234: match_addos; wip_match_opcode 'G_SADDO'
6899 /* 6348 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner150),
6900 /* 6351 */ // Label 365: @6351
6901 /* 6351 */ GIM_Reject,
6902 /* 6352 */ // Label 49: @6352
6903 /* 6352 */ GIM_Try, /*On fail goto*//*Label 366*/ GIMT_Encode4(6363), // Rule ID 208 //
6904 /* 6357 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
6905 /* 6360 */ // Combiner Rule #161: adde_to_addo; wip_match_opcode 'G_SADDE'
6906 /* 6360 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
6907 /* 6363 */ // Label 366: @6363
6908 /* 6363 */ GIM_Reject,
6909 /* 6364 */ // Label 50: @6364
6910 /* 6364 */ GIM_Try, /*On fail goto*//*Label 367*/ GIMT_Encode4(6375), // Rule ID 385 //
6911 /* 6369 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule235Enabled),
6912 /* 6372 */ // Combiner Rule #235: match_subo_no_overflow; wip_match_opcode 'G_SSUBO'
6913 /* 6372 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner151),
6914 /* 6375 */ // Label 367: @6375
6915 /* 6375 */ GIM_Reject,
6916 /* 6376 */ // Label 51: @6376
6917 /* 6376 */ GIM_Try, /*On fail goto*//*Label 368*/ GIMT_Encode4(6387), // Rule ID 210 //
6918 /* 6381 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
6919 /* 6384 */ // Combiner Rule #161: adde_to_addo; wip_match_opcode 'G_SSUBE'
6920 /* 6384 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
6921 /* 6387 */ // Label 368: @6387
6922 /* 6387 */ GIM_Reject,
6923 /* 6388 */ // Label 52: @6388
6924 /* 6388 */ GIM_Try, /*On fail goto*//*Label 369*/ GIMT_Encode4(6399), // Rule ID 203 //
6925 /* 6393 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
6926 /* 6396 */ // Combiner Rule #159: mulo_by_2; wip_match_opcode 'G_UMULO'
6927 /* 6396 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
6928 /* 6399 */ // Label 369: @6399
6929 /* 6399 */ GIM_Try, /*On fail goto*//*Label 370*/ GIMT_Encode4(6410), // Rule ID 205 //
6930 /* 6404 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
6931 /* 6407 */ // Combiner Rule #160: mulo_by_0; wip_match_opcode 'G_UMULO'
6932 /* 6407 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
6933 /* 6410 */ // Label 370: @6410
6934 /* 6410 */ GIM_Try, /*On fail goto*//*Label 371*/ GIMT_Encode4(6421), // Rule ID 344 //
6935 /* 6415 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
6936 /* 6418 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULO'
6937 /* 6418 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6938 /* 6421 */ // Label 371: @6421
6939 /* 6421 */ GIM_Reject,
6940 /* 6422 */ // Label 53: @6422
6941 /* 6422 */ GIM_Try, /*On fail goto*//*Label 372*/ GIMT_Encode4(6433), // Rule ID 204 //
6942 /* 6427 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
6943 /* 6430 */ // Combiner Rule #159: mulo_by_2; wip_match_opcode 'G_SMULO'
6944 /* 6430 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
6945 /* 6433 */ // Label 372: @6433
6946 /* 6433 */ GIM_Try, /*On fail goto*//*Label 373*/ GIMT_Encode4(6444), // Rule ID 206 //
6947 /* 6438 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
6948 /* 6441 */ // Combiner Rule #160: mulo_by_0; wip_match_opcode 'G_SMULO'
6949 /* 6441 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
6950 /* 6444 */ // Label 373: @6444
6951 /* 6444 */ GIM_Try, /*On fail goto*//*Label 374*/ GIMT_Encode4(6455), // Rule ID 345 //
6952 /* 6449 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
6953 /* 6452 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULO'
6954 /* 6452 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6955 /* 6455 */ // Label 374: @6455
6956 /* 6455 */ GIM_Reject,
6957 /* 6456 */ // Label 54: @6456
6958 /* 6456 */ GIM_Try, /*On fail goto*//*Label 375*/ GIMT_Encode4(6467), // Rule ID 281 //
6959 /* 6461 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule189Enabled),
6960 /* 6464 */ // Combiner Rule #189: mulh_to_lshr; wip_match_opcode 'G_UMULH'
6961 /* 6464 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
6962 /* 6467 */ // Label 375: @6467
6963 /* 6467 */ GIM_Try, /*On fail goto*//*Label 376*/ GIMT_Encode4(6478), // Rule ID 346 //
6964 /* 6472 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
6965 /* 6475 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULH'
6966 /* 6475 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6967 /* 6478 */ // Label 376: @6478
6968 /* 6478 */ GIM_Reject,
6969 /* 6479 */ // Label 55: @6479
6970 /* 6479 */ GIM_Try, /*On fail goto*//*Label 377*/ GIMT_Encode4(6490), // Rule ID 347 //
6971 /* 6484 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
6972 /* 6487 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULH'
6973 /* 6487 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6974 /* 6490 */ // Label 377: @6490
6975 /* 6490 */ GIM_Reject,
6976 /* 6491 */ // Label 56: @6491
6977 /* 6491 */ GIM_Try, /*On fail goto*//*Label 378*/ GIMT_Encode4(6502), // Rule ID 348 //
6978 /* 6496 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
6979 /* 6499 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDSAT'
6980 /* 6499 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6981 /* 6502 */ // Label 378: @6502
6982 /* 6502 */ GIM_Reject,
6983 /* 6503 */ // Label 57: @6503
6984 /* 6503 */ GIM_Try, /*On fail goto*//*Label 379*/ GIMT_Encode4(6514), // Rule ID 349 //
6985 /* 6508 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
6986 /* 6511 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDSAT'
6987 /* 6511 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6988 /* 6514 */ // Label 379: @6514
6989 /* 6514 */ GIM_Reject,
6990 /* 6515 */ // Label 58: @6515
6991 /* 6515 */ GIM_Try, /*On fail goto*//*Label 380*/ GIMT_Encode4(6526), // Rule ID 222 //
6992 /* 6520 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
6993 /* 6523 */ // Combiner Rule #166: shift_immed_chain; wip_match_opcode 'G_USHLSAT'
6994 /* 6523 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
6995 /* 6526 */ // Label 380: @6526
6996 /* 6526 */ GIM_Try, /*On fail goto*//*Label 381*/ GIMT_Encode4(6537), // Rule ID 226 //
6997 /* 6531 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
6998 /* 6534 */ // Combiner Rule #167: shift_of_shifted_logic_chain; wip_match_opcode 'G_USHLSAT'
6999 /* 6534 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
7000 /* 6537 */ // Label 381: @6537
7001 /* 6537 */ GIM_Reject,
7002 /* 6538 */ // Label 59: @6538
7003 /* 6538 */ GIM_Try, /*On fail goto*//*Label 382*/ GIMT_Encode4(6549), // Rule ID 221 //
7004 /* 6543 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
7005 /* 6546 */ // Combiner Rule #166: shift_immed_chain; wip_match_opcode 'G_SSHLSAT'
7006 /* 6546 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
7007 /* 6549 */ // Label 382: @6549
7008 /* 6549 */ GIM_Try, /*On fail goto*//*Label 383*/ GIMT_Encode4(6560), // Rule ID 227 //
7009 /* 6554 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
7010 /* 6557 */ // Combiner Rule #167: shift_of_shifted_logic_chain; wip_match_opcode 'G_SSHLSAT'
7011 /* 6557 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
7012 /* 6560 */ // Label 383: @6560
7013 /* 6560 */ GIM_Reject,
7014 /* 6561 */ // Label 60: @6561
7015 /* 6561 */ GIM_Try, /*On fail goto*//*Label 384*/ GIMT_Encode4(6572), // Rule ID 350 //
7016 /* 6566 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
7017 /* 6569 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIX'
7018 /* 6569 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7019 /* 6572 */ // Label 384: @6572
7020 /* 6572 */ GIM_Reject,
7021 /* 6573 */ // Label 61: @6573
7022 /* 6573 */ GIM_Try, /*On fail goto*//*Label 385*/ GIMT_Encode4(6584), // Rule ID 351 //
7023 /* 6578 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
7024 /* 6581 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIX'
7025 /* 6581 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7026 /* 6584 */ // Label 385: @6584
7027 /* 6584 */ GIM_Reject,
7028 /* 6585 */ // Label 62: @6585
7029 /* 6585 */ GIM_Try, /*On fail goto*//*Label 386*/ GIMT_Encode4(6596), // Rule ID 352 //
7030 /* 6590 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
7031 /* 6593 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIXSAT'
7032 /* 6593 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7033 /* 6596 */ // Label 386: @6596
7034 /* 6596 */ GIM_Reject,
7035 /* 6597 */ // Label 63: @6597
7036 /* 6597 */ GIM_Try, /*On fail goto*//*Label 387*/ GIMT_Encode4(6608), // Rule ID 353 //
7037 /* 6602 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
7038 /* 6605 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIXSAT'
7039 /* 6605 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7040 /* 6608 */ // Label 387: @6608
7041 /* 6608 */ GIM_Reject,
7042 /* 6609 */ // Label 64: @6609
7043 /* 6609 */ GIM_Try, /*On fail goto*//*Label 388*/ GIMT_Encode4(6620), // Rule ID 271 //
7044 /* 6614 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7045 /* 6617 */ // Combiner Rule #185: constant_fold_fp_binop; wip_match_opcode 'G_FADD'
7046 /* 6617 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
7047 /* 6620 */ // Label 388: @6620
7048 /* 6620 */ GIM_Try, /*On fail goto*//*Label 389*/ GIMT_Encode4(6631), // Rule ID 282 //
7049 /* 6625 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
7050 /* 6628 */ // Combiner Rule #190: redundant_neg_operands; wip_match_opcode 'G_FADD'
7051 /* 6628 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7052 /* 6631 */ // Label 389: @6631
7053 /* 6631 */ GIM_Try, /*On fail goto*//*Label 390*/ GIMT_Encode4(6642), // Rule ID 289 //
7054 /* 6636 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
7055 /* 6639 */ // Combiner Rule #192: combine_fadd_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
7056 /* 6639 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
7057 /* 6642 */ // Label 390: @6642
7058 /* 6642 */ GIM_Try, /*On fail goto*//*Label 391*/ GIMT_Encode4(6653), // Rule ID 290 //
7059 /* 6647 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
7060 /* 6650 */ // Combiner Rule #193: combine_fadd_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
7061 /* 6650 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner111),
7062 /* 6653 */ // Label 391: @6653
7063 /* 6653 */ GIM_Try, /*On fail goto*//*Label 392*/ GIMT_Encode4(6664), // Rule ID 291 //
7064 /* 6658 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
7065 /* 6661 */ // Combiner Rule #194: combine_fadd_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
7066 /* 6661 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner112),
7067 /* 6664 */ // Label 392: @6664
7068 /* 6664 */ GIM_Try, /*On fail goto*//*Label 393*/ GIMT_Encode4(6675), // Rule ID 292 //
7069 /* 6669 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7070 /* 6672 */ // Combiner Rule #195: combine_fadd_fpext_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
7071 /* 6672 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
7072 /* 6675 */ // Label 393: @6675
7073 /* 6675 */ GIM_Try, /*On fail goto*//*Label 394*/ GIMT_Encode4(6686), // Rule ID 315 //
7074 /* 6680 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7075 /* 6683 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_FADD'
7076 /* 6683 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7077 /* 6686 */ // Label 394: @6686
7078 /* 6686 */ GIM_Try, /*On fail goto*//*Label 395*/ GIMT_Encode4(6697), // Rule ID 354 //
7079 /* 6691 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
7080 /* 6694 */ // Combiner Rule #212: commute_fp_constant_to_rhs; wip_match_opcode 'G_FADD'
7081 /* 6694 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7082 /* 6697 */ // Label 395: @6697
7083 /* 6697 */ GIM_Try, /*On fail goto*//*Label 396*/ GIMT_Encode4(6720), // Rule ID 147 //
7084 /* 6702 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
7085 /* 6705 */ // MIs[0] dst
7086 /* 6705 */ // No operand predicates
7087 /* 6705 */ // MIs[0] x
7088 /* 6705 */ // No operand predicates
7089 /* 6705 */ // MIs[0] y
7090 /* 6705 */ // No operand predicates
7091 /* 6705 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner5),
7092 /* 6709 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7093 /* 6714 */ // Combiner Rule #107: right_identity_neg_zero_fp
7094 /* 6714 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7095 /* 6719 */ GIR_EraseRootFromParent_Done,
7096 /* 6720 */ // Label 396: @6720
7097 /* 6720 */ GIM_Try, /*On fail goto*//*Label 397*/ GIMT_Encode4(6749), // Rule ID 148 //
7098 /* 6725 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
7099 /* 6728 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmNsz),
7100 /* 6734 */ // MIs[0] dst
7101 /* 6734 */ // No operand predicates
7102 /* 6734 */ // MIs[0] x
7103 /* 6734 */ // No operand predicates
7104 /* 6734 */ // MIs[0] y
7105 /* 6734 */ // No operand predicates
7106 /* 6734 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
7107 /* 6738 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7108 /* 6743 */ // Combiner Rule #108: right_identity_neg_zero_fp_nsz
7109 /* 6743 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7110 /* 6748 */ GIR_EraseRootFromParent_Done,
7111 /* 6749 */ // Label 397: @6749
7112 /* 6749 */ GIM_Reject,
7113 /* 6750 */ // Label 65: @6750
7114 /* 6750 */ GIM_Try, /*On fail goto*//*Label 398*/ GIMT_Encode4(6761), // Rule ID 272 //
7115 /* 6755 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7116 /* 6758 */ // Combiner Rule #185: constant_fold_fp_binop; wip_match_opcode 'G_FSUB'
7117 /* 6758 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
7118 /* 6761 */ // Label 398: @6761
7119 /* 6761 */ GIM_Try, /*On fail goto*//*Label 399*/ GIMT_Encode4(6772), // Rule ID 283 //
7120 /* 6766 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
7121 /* 6769 */ // Combiner Rule #190: redundant_neg_operands; wip_match_opcode 'G_FSUB'
7122 /* 6769 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7123 /* 6772 */ // Label 399: @6772
7124 /* 6772 */ GIM_Try, /*On fail goto*//*Label 400*/ GIMT_Encode4(6783), // Rule ID 293 //
7125 /* 6777 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule196Enabled),
7126 /* 6780 */ // Combiner Rule #196: combine_fsub_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
7127 /* 6780 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114),
7128 /* 6783 */ // Label 400: @6783
7129 /* 6783 */ GIM_Try, /*On fail goto*//*Label 401*/ GIMT_Encode4(6794), // Rule ID 294 //
7130 /* 6788 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
7131 /* 6791 */ // Combiner Rule #197: combine_fsub_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
7132 /* 6791 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner115),
7133 /* 6794 */ // Label 401: @6794
7134 /* 6794 */ GIM_Try, /*On fail goto*//*Label 402*/ GIMT_Encode4(6805), // Rule ID 295 //
7135 /* 6799 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
7136 /* 6802 */ // Combiner Rule #198: combine_fsub_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
7137 /* 6802 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner116),
7138 /* 6805 */ // Label 402: @6805
7139 /* 6805 */ GIM_Try, /*On fail goto*//*Label 403*/ GIMT_Encode4(6816), // Rule ID 296 //
7140 /* 6810 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule199Enabled),
7141 /* 6813 */ // Combiner Rule #199: combine_fsub_fpext_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
7142 /* 6813 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner117),
7143 /* 6816 */ // Label 403: @6816
7144 /* 6816 */ GIM_Try, /*On fail goto*//*Label 404*/ GIMT_Encode4(6827), // Rule ID 316 //
7145 /* 6821 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7146 /* 6824 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_FSUB'
7147 /* 6824 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7148 /* 6827 */ // Label 404: @6827
7149 /* 6827 */ GIM_Try, /*On fail goto*//*Label 405*/ GIMT_Encode4(6838), // Rule ID 332 //
7150 /* 6832 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
7151 /* 6835 */ // Combiner Rule #210: fsub_to_fneg; wip_match_opcode 'G_FSUB'
7152 /* 6835 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner126),
7153 /* 6838 */ // Label 405: @6838
7154 /* 6838 */ GIM_Reject,
7155 /* 6839 */ // Label 66: @6839
7156 /* 6839 */ GIM_Try, /*On fail goto*//*Label 406*/ GIMT_Encode4(6850), // Rule ID 273 //
7157 /* 6844 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7158 /* 6847 */ // Combiner Rule #185: constant_fold_fp_binop; wip_match_opcode 'G_FMUL'
7159 /* 6847 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
7160 /* 6850 */ // Label 406: @6850
7161 /* 6850 */ GIM_Try, /*On fail goto*//*Label 407*/ GIMT_Encode4(6861), // Rule ID 284 //
7162 /* 6855 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
7163 /* 6858 */ // Combiner Rule #190: redundant_neg_operands; wip_match_opcode 'G_FMUL'
7164 /* 6858 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7165 /* 6861 */ // Label 407: @6861
7166 /* 6861 */ GIM_Try, /*On fail goto*//*Label 408*/ GIMT_Encode4(6872), // Rule ID 314 //
7167 /* 6866 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7168 /* 6869 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_FMUL'
7169 /* 6869 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7170 /* 6872 */ // Label 408: @6872
7171 /* 6872 */ GIM_Try, /*On fail goto*//*Label 409*/ GIMT_Encode4(6883), // Rule ID 355 //
7172 /* 6877 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
7173 /* 6880 */ // Combiner Rule #212: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMUL'
7174 /* 6880 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7175 /* 6883 */ // Label 409: @6883
7176 /* 6883 */ GIM_Try, /*On fail goto*//*Label 410*/ GIMT_Encode4(6906), // Rule ID 138 //
7177 /* 6888 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule100Enabled),
7178 /* 6891 */ // MIs[0] dst
7179 /* 6891 */ // No operand predicates
7180 /* 6891 */ // MIs[0] x
7181 /* 6891 */ // No operand predicates
7182 /* 6891 */ // MIs[0] y
7183 /* 6891 */ // No operand predicates
7184 /* 6891 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
7185 /* 6895 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7186 /* 6900 */ // Combiner Rule #100: right_identity_one_fp
7187 /* 6900 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7188 /* 6905 */ GIR_EraseRootFromParent_Done,
7189 /* 6906 */ // Label 410: @6906
7190 /* 6906 */ GIM_Try, /*On fail goto*//*Label 411*/ GIMT_Encode4(6926), // Rule ID 149 //
7191 /* 6911 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule109Enabled),
7192 /* 6914 */ // MIs[0] dst
7193 /* 6914 */ // No operand predicates
7194 /* 6914 */ // MIs[0] x
7195 /* 6914 */ // No operand predicates
7196 /* 6914 */ // MIs[0] y
7197 /* 6914 */ // No operand predicates
7198 /* 6914 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
7199 /* 6918 */ // Combiner Rule #109: right_identity_neg_one_fp
7200 /* 6918 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
7201 /* 6921 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7202 /* 6923 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
7203 /* 6925 */ GIR_EraseRootFromParent_Done,
7204 /* 6926 */ // Label 411: @6926
7205 /* 6926 */ GIM_Reject,
7206 /* 6927 */ // Label 67: @6927
7207 /* 6927 */ GIM_Try, /*On fail goto*//*Label 412*/ GIMT_Encode4(6938), // Rule ID 276 //
7208 /* 6932 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
7209 /* 6935 */ // Combiner Rule #186: constant_fold_fma; wip_match_opcode 'G_FMA'
7210 /* 6935 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
7211 /* 6938 */ // Label 412: @6938
7212 /* 6938 */ GIM_Try, /*On fail goto*//*Label 413*/ GIMT_Encode4(6949), // Rule ID 287 //
7213 /* 6943 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
7214 /* 6946 */ // Combiner Rule #190: redundant_neg_operands; wip_match_opcode 'G_FMA'
7215 /* 6946 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7216 /* 6949 */ // Label 413: @6949
7217 /* 6949 */ GIM_Reject,
7218 /* 6950 */ // Label 68: @6950
7219 /* 6950 */ GIM_Try, /*On fail goto*//*Label 414*/ GIMT_Encode4(6961), // Rule ID 275 //
7220 /* 6955 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
7221 /* 6958 */ // Combiner Rule #186: constant_fold_fma; wip_match_opcode 'G_FMAD'
7222 /* 6958 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
7223 /* 6961 */ // Label 414: @6961
7224 /* 6961 */ GIM_Try, /*On fail goto*//*Label 415*/ GIMT_Encode4(6972), // Rule ID 286 //
7225 /* 6966 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
7226 /* 6969 */ // Combiner Rule #190: redundant_neg_operands; wip_match_opcode 'G_FMAD'
7227 /* 6969 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7228 /* 6972 */ // Label 415: @6972
7229 /* 6972 */ GIM_Reject,
7230 /* 6973 */ // Label 69: @6973
7231 /* 6973 */ GIM_Try, /*On fail goto*//*Label 416*/ GIMT_Encode4(6984), // Rule ID 274 //
7232 /* 6978 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7233 /* 6981 */ // Combiner Rule #185: constant_fold_fp_binop; wip_match_opcode 'G_FDIV'
7234 /* 6981 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
7235 /* 6984 */ // Label 416: @6984
7236 /* 6984 */ GIM_Try, /*On fail goto*//*Label 417*/ GIMT_Encode4(6995), // Rule ID 285 //
7237 /* 6989 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
7238 /* 6992 */ // Combiner Rule #190: redundant_neg_operands; wip_match_opcode 'G_FDIV'
7239 /* 6992 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7240 /* 6995 */ // Label 417: @6995
7241 /* 6995 */ GIM_Try, /*On fail goto*//*Label 418*/ GIMT_Encode4(7006), // Rule ID 317 //
7242 /* 7000 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7243 /* 7003 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_FDIV'
7244 /* 7003 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7245 /* 7006 */ // Label 418: @7006
7246 /* 7006 */ GIM_Try, /*On fail goto*//*Label 419*/ GIMT_Encode4(7017), // Rule ID 329 //
7247 /* 7011 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
7248 /* 7014 */ // MIs[0] dst
7249 /* 7014 */ // No operand predicates
7250 /* 7014 */ // MIs[0] src1
7251 /* 7014 */ // No operand predicates
7252 /* 7014 */ // MIs[0] src2
7253 /* 7014 */ // No operand predicates
7254 /* 7014 */ // Combiner Rule #207: fdiv_repeated_divison
7255 /* 7014 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
7256 /* 7017 */ // Label 419: @7017
7257 /* 7017 */ GIM_Reject,
7258 /* 7018 */ // Label 70: @7018
7259 /* 7018 */ GIM_Try, /*On fail goto*//*Label 420*/ GIMT_Encode4(7029), // Rule ID 318 //
7260 /* 7023 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7261 /* 7026 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_FREM'
7262 /* 7026 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7263 /* 7029 */ // Label 420: @7029
7264 /* 7029 */ GIM_Reject,
7265 /* 7030 */ // Label 71: @7030
7266 /* 7030 */ GIM_Try, /*On fail goto*//*Label 421*/ GIMT_Encode4(7051), // Rule ID 215 //
7267 /* 7035 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
7268 /* 7038 */ // MIs[0] dst
7269 /* 7038 */ // No operand predicates
7270 /* 7038 */ // MIs[0] float
7271 /* 7038 */ // No operand predicates
7272 /* 7038 */ // MIs[0] int
7273 /* 7038 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7274 /* 7042 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7275 /* 7046 */ // MIs[1] imm
7276 /* 7046 */ // No operand predicates
7277 /* 7046 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7278 /* 7048 */ // Combiner Rule #163: expand_const_fpowi
7279 /* 7048 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
7280 /* 7051 */ // Label 421: @7051
7281 /* 7051 */ GIM_Reject,
7282 /* 7052 */ // Label 72: @7052
7283 /* 7052 */ GIM_Try, /*On fail goto*//*Label 422*/ GIMT_Encode4(7073), // Rule ID 189 //
7284 /* 7057 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
7285 /* 7060 */ // MIs[0] dst
7286 /* 7060 */ // No operand predicates
7287 /* 7060 */ // MIs[0] src0
7288 /* 7060 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7289 /* 7064 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7290 /* 7068 */ // MIs[1] cst
7291 /* 7068 */ // No operand predicates
7292 /* 7068 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7293 /* 7070 */ // Combiner Rule #145: constant_fold_flog2
7294 /* 7070 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7295 /* 7073 */ // Label 422: @7073
7296 /* 7073 */ GIM_Reject,
7297 /* 7074 */ // Label 73: @7074
7298 /* 7074 */ GIM_Try, /*On fail goto*//*Label 423*/ GIMT_Encode4(7095), // Rule ID 186 //
7299 /* 7079 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule142Enabled),
7300 /* 7082 */ // MIs[0] dst
7301 /* 7082 */ // No operand predicates
7302 /* 7082 */ // MIs[0] src0
7303 /* 7082 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7304 /* 7086 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7305 /* 7090 */ // MIs[1] cst
7306 /* 7090 */ // No operand predicates
7307 /* 7090 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7308 /* 7092 */ // Combiner Rule #142: constant_fold_fneg
7309 /* 7092 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7310 /* 7095 */ // Label 423: @7095
7311 /* 7095 */ GIM_Try, /*On fail goto*//*Label 424*/ GIMT_Encode4(7124), // Rule ID 136 //
7312 /* 7100 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule98Enabled),
7313 /* 7103 */ // MIs[0] dst
7314 /* 7103 */ // No operand predicates
7315 /* 7103 */ // MIs[0] t
7316 /* 7103 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7317 /* 7107 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
7318 /* 7111 */ // MIs[1] src
7319 /* 7111 */ // No operand predicates
7320 /* 7111 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7321 /* 7116 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7322 /* 7118 */ // Combiner Rule #98: fneg_fneg_fold
7323 /* 7118 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7324 /* 7123 */ GIR_EraseRootFromParent_Done,
7325 /* 7124 */ // Label 424: @7124
7326 /* 7124 */ GIM_Reject,
7327 /* 7125 */ // Label 74: @7125
7328 /* 7125 */ GIM_Try, /*On fail goto*//*Label 425*/ GIMT_Encode4(7146), // Rule ID 191 //
7329 /* 7130 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
7330 /* 7133 */ // MIs[0] dst
7331 /* 7133 */ // No operand predicates
7332 /* 7133 */ // MIs[0] src0
7333 /* 7133 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7334 /* 7137 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7335 /* 7141 */ // MIs[1] cst
7336 /* 7141 */ // No operand predicates
7337 /* 7141 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7338 /* 7143 */ // Combiner Rule #147: constant_fold_fpext
7339 /* 7143 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7340 /* 7146 */ // Label 425: @7146
7341 /* 7146 */ GIM_Reject,
7342 /* 7147 */ // Label 75: @7147
7343 /* 7147 */ GIM_Try, /*On fail goto*//*Label 426*/ GIMT_Encode4(7168), // Rule ID 190 //
7344 /* 7152 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
7345 /* 7155 */ // MIs[0] dst
7346 /* 7155 */ // No operand predicates
7347 /* 7155 */ // MIs[0] src0
7348 /* 7155 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7349 /* 7159 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7350 /* 7163 */ // MIs[1] cst
7351 /* 7163 */ // No operand predicates
7352 /* 7163 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7353 /* 7165 */ // Combiner Rule #146: constant_fold_fptrunc
7354 /* 7165 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7355 /* 7168 */ // Label 426: @7168
7356 /* 7168 */ GIM_Try, /*On fail goto*//*Label 427*/ GIMT_Encode4(7189), // Rule ID 146 //
7357 /* 7173 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
7358 /* 7176 */ // MIs[0] dst
7359 /* 7176 */ // No operand predicates
7360 /* 7176 */ // MIs[0] src1
7361 /* 7176 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7362 /* 7180 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
7363 /* 7184 */ // MIs[1] src0
7364 /* 7184 */ // No operand predicates
7365 /* 7184 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7366 /* 7186 */ // Combiner Rule #106: fptrunc_fpext_fold
7367 /* 7186 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
7368 /* 7189 */ // Label 427: @7189
7369 /* 7189 */ GIM_Reject,
7370 /* 7190 */ // Label 76: @7190
7371 /* 7190 */ GIM_Try, /*On fail goto*//*Label 428*/ GIMT_Encode4(7211), // Rule ID 98 //
7372 /* 7195 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
7373 /* 7198 */ // MIs[0] dst
7374 /* 7198 */ // No operand predicates
7375 /* 7198 */ // MIs[0] __unary_undef_to_undef_match_0.x
7376 /* 7198 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7377 /* 7202 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7378 /* 7206 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7379 /* 7208 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[5]]
7380 /* 7208 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
7381 /* 7211 */ // Label 428: @7211
7382 /* 7211 */ GIM_Reject,
7383 /* 7212 */ // Label 77: @7212
7384 /* 7212 */ GIM_Try, /*On fail goto*//*Label 429*/ GIMT_Encode4(7233), // Rule ID 99 //
7385 /* 7217 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
7386 /* 7220 */ // MIs[0] dst
7387 /* 7220 */ // No operand predicates
7388 /* 7220 */ // MIs[0] __unary_undef_to_undef_match_0.x
7389 /* 7220 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7390 /* 7224 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7391 /* 7228 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7392 /* 7230 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[6]]
7393 /* 7230 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
7394 /* 7233 */ // Label 429: @7233
7395 /* 7233 */ GIM_Reject,
7396 /* 7234 */ // Label 78: @7234
7397 /* 7234 */ GIM_Try, /*On fail goto*//*Label 430*/ GIMT_Encode4(7245), // Rule ID 82 //
7398 /* 7239 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
7399 /* 7242 */ // Combiner Rule #77: undef_to_fp_zero; wip_match_opcode 'G_SITOFP'
7400 /* 7242 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
7401 /* 7245 */ // Label 430: @7245
7402 /* 7245 */ GIM_Try, /*On fail goto*//*Label 431*/ GIMT_Encode4(7260), // Rule ID 199 //
7403 /* 7250 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
7404 /* 7253 */ // MIs[0] dst
7405 /* 7253 */ // No operand predicates
7406 /* 7253 */ // MIs[0] Operand 1
7407 /* 7253 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
7408 /* 7257 */ // Combiner Rule #155: itof_const_zero_fold_si
7409 /* 7257 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
7410 /* 7260 */ // Label 431: @7260
7411 /* 7260 */ GIM_Reject,
7412 /* 7261 */ // Label 79: @7261
7413 /* 7261 */ GIM_Try, /*On fail goto*//*Label 432*/ GIMT_Encode4(7272), // Rule ID 81 //
7414 /* 7266 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
7415 /* 7269 */ // Combiner Rule #77: undef_to_fp_zero; wip_match_opcode 'G_UITOFP'
7416 /* 7269 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
7417 /* 7272 */ // Label 432: @7272
7418 /* 7272 */ GIM_Try, /*On fail goto*//*Label 433*/ GIMT_Encode4(7287), // Rule ID 200 //
7419 /* 7277 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
7420 /* 7280 */ // MIs[0] dst
7421 /* 7280 */ // No operand predicates
7422 /* 7280 */ // MIs[0] Operand 1
7423 /* 7280 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
7424 /* 7284 */ // Combiner Rule #156: itof_const_zero_fold_ui
7425 /* 7284 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
7426 /* 7287 */ // Label 433: @7287
7427 /* 7287 */ GIM_Reject,
7428 /* 7288 */ // Label 80: @7288
7429 /* 7288 */ GIM_Try, /*On fail goto*//*Label 434*/ GIMT_Encode4(7317), // Rule ID 25 //
7430 /* 7293 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
7431 /* 7296 */ // MIs[0] dst
7432 /* 7296 */ // No operand predicates
7433 /* 7296 */ // MIs[0] src
7434 /* 7296 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7435 /* 7300 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
7436 /* 7304 */ // MIs[1] __idempotent_prop_match_0.x
7437 /* 7304 */ // No operand predicates
7438 /* 7304 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7439 /* 7309 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7440 /* 7311 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[1]]
7441 /* 7311 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7442 /* 7316 */ GIR_EraseRootFromParent_Done,
7443 /* 7317 */ // Label 434: @7317
7444 /* 7317 */ GIM_Try, /*On fail goto*//*Label 435*/ GIMT_Encode4(7338), // Rule ID 187 //
7445 /* 7322 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule143Enabled),
7446 /* 7325 */ // MIs[0] dst
7447 /* 7325 */ // No operand predicates
7448 /* 7325 */ // MIs[0] src0
7449 /* 7325 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7450 /* 7329 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7451 /* 7333 */ // MIs[1] cst
7452 /* 7333 */ // No operand predicates
7453 /* 7333 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7454 /* 7335 */ // Combiner Rule #143: constant_fold_fabs
7455 /* 7335 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7456 /* 7338 */ // Label 435: @7338
7457 /* 7338 */ GIM_Try, /*On fail goto*//*Label 436*/ GIMT_Encode4(7366), // Rule ID 280 //
7458 /* 7343 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
7459 /* 7346 */ // MIs[0] dst
7460 /* 7346 */ // No operand predicates
7461 /* 7346 */ // MIs[0] tmp
7462 /* 7346 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7463 /* 7350 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
7464 /* 7354 */ // MIs[1] x
7465 /* 7354 */ // No operand predicates
7466 /* 7354 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7467 /* 7356 */ // Combiner Rule #188: fabs_fneg_fold
7468 /* 7356 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FABS),
7469 /* 7359 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7470 /* 7361 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7471 /* 7365 */ GIR_EraseRootFromParent_Done,
7472 /* 7366 */ // Label 436: @7366
7473 /* 7366 */ GIM_Reject,
7474 /* 7367 */ // Label 81: @7367
7475 /* 7367 */ GIM_Try, /*On fail goto*//*Label 437*/ GIMT_Encode4(7396), // Rule ID 26 //
7476 /* 7372 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
7477 /* 7375 */ // MIs[0] dst
7478 /* 7375 */ // No operand predicates
7479 /* 7375 */ // MIs[0] src
7480 /* 7375 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7481 /* 7379 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCANONICALIZE),
7482 /* 7383 */ // MIs[1] __idempotent_prop_match_0.x
7483 /* 7383 */ // No operand predicates
7484 /* 7383 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7485 /* 7388 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7486 /* 7390 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[2]]
7487 /* 7390 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7488 /* 7395 */ GIR_EraseRootFromParent_Done,
7489 /* 7396 */ // Label 437: @7396
7490 /* 7396 */ GIM_Reject,
7491 /* 7397 */ // Label 82: @7397
7492 /* 7397 */ GIM_Try, /*On fail goto*//*Label 438*/ GIMT_Encode4(7408), // Rule ID 211 //
7493 /* 7402 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
7494 /* 7405 */ // Combiner Rule #162: combine_minmax_nan; wip_match_opcode 'G_FMINNUM'
7495 /* 7405 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
7496 /* 7408 */ // Label 438: @7408
7497 /* 7408 */ GIM_Try, /*On fail goto*//*Label 439*/ GIMT_Encode4(7419), // Rule ID 319 //
7498 /* 7413 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7499 /* 7416 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_FMINNUM'
7500 /* 7416 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7501 /* 7419 */ // Label 439: @7419
7502 /* 7419 */ GIM_Try, /*On fail goto*//*Label 440*/ GIMT_Encode4(7430), // Rule ID 356 //
7503 /* 7424 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
7504 /* 7427 */ // Combiner Rule #212: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM'
7505 /* 7427 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7506 /* 7430 */ // Label 440: @7430
7507 /* 7430 */ GIM_Reject,
7508 /* 7431 */ // Label 83: @7431
7509 /* 7431 */ GIM_Try, /*On fail goto*//*Label 441*/ GIMT_Encode4(7442), // Rule ID 212 //
7510 /* 7436 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
7511 /* 7439 */ // Combiner Rule #162: combine_minmax_nan; wip_match_opcode 'G_FMAXNUM'
7512 /* 7439 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
7513 /* 7442 */ // Label 441: @7442
7514 /* 7442 */ GIM_Try, /*On fail goto*//*Label 442*/ GIMT_Encode4(7453), // Rule ID 320 //
7515 /* 7447 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7516 /* 7450 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_FMAXNUM'
7517 /* 7450 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7518 /* 7453 */ // Label 442: @7453
7519 /* 7453 */ GIM_Try, /*On fail goto*//*Label 443*/ GIMT_Encode4(7464), // Rule ID 357 //
7520 /* 7458 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
7521 /* 7461 */ // Combiner Rule #212: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM'
7522 /* 7461 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7523 /* 7464 */ // Label 443: @7464
7524 /* 7464 */ GIM_Reject,
7525 /* 7465 */ // Label 84: @7465
7526 /* 7465 */ GIM_Try, /*On fail goto*//*Label 444*/ GIMT_Encode4(7476), // Rule ID 358 //
7527 /* 7470 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
7528 /* 7473 */ // Combiner Rule #212: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM_IEEE'
7529 /* 7473 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7530 /* 7476 */ // Label 444: @7476
7531 /* 7476 */ GIM_Reject,
7532 /* 7477 */ // Label 85: @7477
7533 /* 7477 */ GIM_Try, /*On fail goto*//*Label 445*/ GIMT_Encode4(7488), // Rule ID 359 //
7534 /* 7482 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
7535 /* 7485 */ // Combiner Rule #212: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM_IEEE'
7536 /* 7485 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7537 /* 7488 */ // Label 445: @7488
7538 /* 7488 */ GIM_Reject,
7539 /* 7489 */ // Label 86: @7489
7540 /* 7489 */ GIM_Try, /*On fail goto*//*Label 446*/ GIMT_Encode4(7500), // Rule ID 213 //
7541 /* 7494 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
7542 /* 7497 */ // Combiner Rule #162: combine_minmax_nan; wip_match_opcode 'G_FMINIMUM'
7543 /* 7497 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
7544 /* 7500 */ // Label 446: @7500
7545 /* 7500 */ GIM_Try, /*On fail goto*//*Label 447*/ GIMT_Encode4(7511), // Rule ID 321 //
7546 /* 7505 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7547 /* 7508 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_FMINIMUM'
7548 /* 7508 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7549 /* 7511 */ // Label 447: @7511
7550 /* 7511 */ GIM_Try, /*On fail goto*//*Label 448*/ GIMT_Encode4(7522), // Rule ID 360 //
7551 /* 7516 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
7552 /* 7519 */ // Combiner Rule #212: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINIMUM'
7553 /* 7519 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7554 /* 7522 */ // Label 448: @7522
7555 /* 7522 */ GIM_Reject,
7556 /* 7523 */ // Label 87: @7523
7557 /* 7523 */ GIM_Try, /*On fail goto*//*Label 449*/ GIMT_Encode4(7534), // Rule ID 214 //
7558 /* 7528 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
7559 /* 7531 */ // Combiner Rule #162: combine_minmax_nan; wip_match_opcode 'G_FMAXIMUM'
7560 /* 7531 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
7561 /* 7534 */ // Label 449: @7534
7562 /* 7534 */ GIM_Try, /*On fail goto*//*Label 450*/ GIMT_Encode4(7545), // Rule ID 322 //
7563 /* 7539 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7564 /* 7542 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_FMAXIMUM'
7565 /* 7542 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7566 /* 7545 */ // Label 450: @7545
7567 /* 7545 */ GIM_Try, /*On fail goto*//*Label 451*/ GIMT_Encode4(7556), // Rule ID 361 //
7568 /* 7550 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
7569 /* 7553 */ // Combiner Rule #212: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXIMUM'
7570 /* 7553 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7571 /* 7556 */ // Label 451: @7556
7572 /* 7556 */ GIM_Reject,
7573 /* 7557 */ // Label 88: @7557
7574 /* 7557 */ GIM_Try, /*On fail goto*//*Label 452*/ GIMT_Encode4(7568), // Rule ID 158 //
7575 /* 7562 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
7576 /* 7565 */ // Combiner Rule #114: reassoc_ptradd; wip_match_opcode 'G_PTR_ADD'
7577 /* 7565 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
7578 /* 7568 */ // Label 452: @7568
7579 /* 7568 */ GIM_Try, /*On fail goto*//*Label 453*/ GIMT_Encode4(7579), // Rule ID 160 //
7580 /* 7573 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule116Enabled),
7581 /* 7576 */ // Combiner Rule #116: ptr_add_immed_chain; wip_match_opcode 'G_PTR_ADD'
7582 /* 7576 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner58),
7583 /* 7579 */ // Label 453: @7579
7584 /* 7579 */ GIM_Try, /*On fail goto*//*Label 454*/ GIMT_Encode4(7590), // Rule ID 201 //
7585 /* 7584 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
7586 /* 7587 */ // Combiner Rule #157: const_ptradd_to_i2p; wip_match_opcode 'G_PTR_ADD'
7587 /* 7587 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
7588 /* 7590 */ // Label 454: @7590
7589 /* 7590 */ GIM_Try, /*On fail goto*//*Label 455*/ GIMT_Encode4(7601), // Rule ID 217 //
7590 /* 7595 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
7591 /* 7598 */ // Combiner Rule #165: ptr_add_with_zero; wip_match_opcode 'G_PTR_ADD'
7592 /* 7598 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner90),
7593 /* 7601 */ // Label 455: @7601
7594 /* 7601 */ GIM_Try, /*On fail goto*//*Label 456*/ GIMT_Encode4(7612), // Rule ID 254 //
7595 /* 7606 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
7596 /* 7609 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_PTR_ADD'
7597 /* 7609 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7598 /* 7612 */ // Label 456: @7612
7599 /* 7612 */ GIM_Try, /*On fail goto*//*Label 457*/ GIMT_Encode4(7623), // Rule ID 299 //
7600 /* 7617 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7601 /* 7620 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_PTR_ADD'
7602 /* 7620 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7603 /* 7623 */ // Label 457: @7623
7604 /* 7623 */ GIM_Try, /*On fail goto*//*Label 458*/ GIMT_Encode4(7646), // Rule ID 117 //
7605 /* 7628 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
7606 /* 7631 */ // MIs[0] dst
7607 /* 7631 */ // No operand predicates
7608 /* 7631 */ // MIs[0] lhs
7609 /* 7631 */ // No operand predicates
7610 /* 7631 */ // MIs[0] Operand 2
7611 /* 7631 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7612 /* 7635 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7613 /* 7640 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[7]]
7614 /* 7640 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7615 /* 7645 */ GIR_EraseRootFromParent_Done,
7616 /* 7646 */ // Label 458: @7646
7617 /* 7646 */ GIM_Reject,
7618 /* 7647 */ // Label 89: @7647
7619 /* 7647 */ GIM_Try, /*On fail goto*//*Label 459*/ GIMT_Encode4(7658), // Rule ID 267 //
7620 /* 7652 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
7621 /* 7655 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_SMIN'
7622 /* 7655 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7623 /* 7658 */ // Label 459: @7658
7624 /* 7658 */ GIM_Try, /*On fail goto*//*Label 460*/ GIMT_Encode4(7669), // Rule ID 310 //
7625 /* 7663 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7626 /* 7666 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_SMIN'
7627 /* 7666 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7628 /* 7669 */ // Label 460: @7669
7629 /* 7669 */ GIM_Try, /*On fail goto*//*Label 461*/ GIMT_Encode4(7680), // Rule ID 338 //
7630 /* 7674 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
7631 /* 7677 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_SMIN'
7632 /* 7677 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7633 /* 7680 */ // Label 461: @7680
7634 /* 7680 */ GIM_Reject,
7635 /* 7681 */ // Label 90: @7681
7636 /* 7681 */ GIM_Try, /*On fail goto*//*Label 462*/ GIMT_Encode4(7692), // Rule ID 268 //
7637 /* 7686 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
7638 /* 7689 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_SMAX'
7639 /* 7689 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7640 /* 7692 */ // Label 462: @7692
7641 /* 7692 */ GIM_Try, /*On fail goto*//*Label 463*/ GIMT_Encode4(7703), // Rule ID 311 //
7642 /* 7697 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7643 /* 7700 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_SMAX'
7644 /* 7700 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7645 /* 7703 */ // Label 463: @7703
7646 /* 7703 */ GIM_Try, /*On fail goto*//*Label 464*/ GIMT_Encode4(7714), // Rule ID 339 //
7647 /* 7708 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
7648 /* 7711 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_SMAX'
7649 /* 7711 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7650 /* 7714 */ // Label 464: @7714
7651 /* 7714 */ GIM_Reject,
7652 /* 7715 */ // Label 91: @7715
7653 /* 7715 */ GIM_Try, /*On fail goto*//*Label 465*/ GIMT_Encode4(7726), // Rule ID 269 //
7654 /* 7720 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
7655 /* 7723 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_UMIN'
7656 /* 7723 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7657 /* 7726 */ // Label 465: @7726
7658 /* 7726 */ GIM_Try, /*On fail goto*//*Label 466*/ GIMT_Encode4(7737), // Rule ID 312 //
7659 /* 7731 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7660 /* 7734 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_UMIN'
7661 /* 7734 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7662 /* 7737 */ // Label 466: @7737
7663 /* 7737 */ GIM_Try, /*On fail goto*//*Label 467*/ GIMT_Encode4(7748), // Rule ID 340 //
7664 /* 7742 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
7665 /* 7745 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_UMIN'
7666 /* 7745 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7667 /* 7748 */ // Label 467: @7748
7668 /* 7748 */ GIM_Reject,
7669 /* 7749 */ // Label 92: @7749
7670 /* 7749 */ GIM_Try, /*On fail goto*//*Label 468*/ GIMT_Encode4(7760), // Rule ID 270 //
7671 /* 7754 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
7672 /* 7757 */ // Combiner Rule #184: constant_fold_binop; wip_match_opcode 'G_UMAX'
7673 /* 7757 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7674 /* 7760 */ // Label 468: @7760
7675 /* 7760 */ GIM_Try, /*On fail goto*//*Label 469*/ GIMT_Encode4(7771), // Rule ID 313 //
7676 /* 7765 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7677 /* 7768 */ // Combiner Rule #200: fold_binop_into_select; wip_match_opcode 'G_UMAX'
7678 /* 7768 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7679 /* 7771 */ // Label 469: @7771
7680 /* 7771 */ GIM_Try, /*On fail goto*//*Label 470*/ GIMT_Encode4(7782), // Rule ID 341 //
7681 /* 7776 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
7682 /* 7779 */ // Combiner Rule #211: commute_int_constant_to_rhs; wip_match_opcode 'G_UMAX'
7683 /* 7779 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7684 /* 7782 */ // Label 470: @7782
7685 /* 7782 */ GIM_Reject,
7686 /* 7783 */ // Label 93: @7783
7687 /* 7783 */ GIM_Try, /*On fail goto*//*Label 471*/ GIMT_Encode4(7794), // Rule ID 92 //
7688 /* 7788 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
7689 /* 7791 */ // Combiner Rule #82: unary_undef_to_zero; wip_match_opcode 'G_ABS'
7690 /* 7791 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
7691 /* 7794 */ // Label 471: @7794
7692 /* 7794 */ GIM_Reject,
7693 /* 7795 */ // Label 94: @7795
7694 /* 7795 */ GIM_Try, /*On fail goto*//*Label 472*/ GIMT_Encode4(7806), // Rule ID 185 //
7695 /* 7800 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule141Enabled),
7696 /* 7803 */ // Combiner Rule #141: opt_brcond_by_inverting_cond; wip_match_opcode 'G_BR'
7697 /* 7803 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
7698 /* 7806 */ // Label 472: @7806
7699 /* 7806 */ GIM_Reject,
7700 /* 7807 */ // Label 95: @7807
7701 /* 7807 */ GIM_Try, /*On fail goto*//*Label 473*/ GIMT_Encode4(7818), // Rule ID 32 //
7702 /* 7812 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
7703 /* 7815 */ // Combiner Rule #30: insert_vector_elt_oob; wip_match_opcode 'G_INSERT_VECTOR_ELT'
7704 /* 7815 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
7705 /* 7818 */ // Label 473: @7818
7706 /* 7818 */ GIM_Try, /*On fail goto*//*Label 474*/ GIMT_Encode4(7829), // Rule ID 73 //
7707 /* 7823 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
7708 /* 7826 */ // Combiner Rule #71: combine_insert_vec_elts_build_vector; wip_match_opcode 'G_INSERT_VECTOR_ELT'
7709 /* 7826 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
7710 /* 7829 */ // Label 474: @7829
7711 /* 7829 */ GIM_Try, /*On fail goto*//*Label 475*/ GIMT_Encode4(7840), // Rule ID 107 //
7712 /* 7834 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
7713 /* 7837 */ // Combiner Rule #88: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_INSERT_VECTOR_ELT'
7714 /* 7837 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
7715 /* 7840 */ // Label 475: @7840
7716 /* 7840 */ GIM_Try, /*On fail goto*//*Label 476*/ GIMT_Encode4(7879), // Rule ID 44 //
7717 /* 7845 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
7718 /* 7848 */ // MIs[0] root
7719 /* 7848 */ // No operand predicates
7720 /* 7848 */ // MIs[0] src
7721 /* 7848 */ // No operand predicates
7722 /* 7848 */ // MIs[0] elt
7723 /* 7848 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7724 /* 7852 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_EXTRACT_VECTOR_ELT),
7725 /* 7856 */ // MIs[1] src
7726 /* 7856 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
7727 /* 7861 */ // MIs[1] idx
7728 /* 7861 */ // No operand predicates
7729 /* 7861 */ // MIs[0] idx
7730 /* 7861 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
7731 /* 7866 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7732 /* 7871 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7733 /* 7873 */ // Combiner Rule #42: insert_vector_element_extract_vector_element
7734 /* 7873 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7735 /* 7878 */ GIR_EraseRootFromParent_Done,
7736 /* 7879 */ // Label 476: @7879
7737 /* 7879 */ GIM_Try, /*On fail goto*//*Label 477*/ GIMT_Encode4(7912), // Rule ID 30 //
7738 /* 7884 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
7739 /* 7887 */ // MIs[0] root
7740 /* 7887 */ // No operand predicates
7741 /* 7887 */ // MIs[0] src
7742 /* 7887 */ // No operand predicates
7743 /* 7887 */ // MIs[0] elt
7744 /* 7887 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7745 /* 7891 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7746 /* 7895 */ // MIs[0] idx
7747 /* 7895 */ // No operand predicates
7748 /* 7895 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
7749 /* 7899 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7750 /* 7904 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7751 /* 7906 */ // Combiner Rule #28: insert_vector_element_elt_undef
7752 /* 7906 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7753 /* 7911 */ GIR_EraseRootFromParent_Done,
7754 /* 7912 */ // Label 477: @7912
7755 /* 7912 */ GIM_Try, /*On fail goto*//*Label 478*/ GIMT_Encode4(7936), // Rule ID 29 //
7756 /* 7917 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
7757 /* 7920 */ // MIs[0] root
7758 /* 7920 */ // No operand predicates
7759 /* 7920 */ // MIs[0] src
7760 /* 7920 */ // No operand predicates
7761 /* 7920 */ // MIs[0] elt
7762 /* 7920 */ // No operand predicates
7763 /* 7920 */ // MIs[0] idx
7764 /* 7920 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
7765 /* 7924 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7766 /* 7928 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7767 /* 7930 */ // Combiner Rule #27: insert_vector_element_idx_undef
7768 /* 7930 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7769 /* 7933 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7770 /* 7935 */ GIR_EraseRootFromParent_Done,
7771 /* 7936 */ // Label 478: @7936
7772 /* 7936 */ GIM_Reject,
7773 /* 7937 */ // Label 96: @7937
7774 /* 7937 */ GIM_Try, /*On fail goto*//*Label 479*/ GIMT_Encode4(7948), // Rule ID 31 //
7775 /* 7942 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
7776 /* 7945 */ // Combiner Rule #29: match_extract_of_element; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
7777 /* 7945 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
7778 /* 7948 */ // Label 479: @7948
7779 /* 7948 */ GIM_Try, /*On fail goto*//*Label 480*/ GIMT_Encode4(7959), // Rule ID 74 //
7780 /* 7953 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
7781 /* 7956 */ // Combiner Rule #72: extract_vec_elt_build_vec; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
7782 /* 7956 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner28),
7783 /* 7959 */ // Label 480: @7959
7784 /* 7959 */ GIM_Try, /*On fail goto*//*Label 481*/ GIMT_Encode4(7970), // Rule ID 80 //
7785 /* 7964 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
7786 /* 7967 */ // Combiner Rule #76: combine_extracted_vector_load; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
7787 /* 7967 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
7788 /* 7970 */ // Label 481: @7970
7789 /* 7970 */ GIM_Try, /*On fail goto*//*Label 482*/ GIMT_Encode4(7981), // Rule ID 108 //
7790 /* 7975 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
7791 /* 7978 */ // Combiner Rule #88: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
7792 /* 7978 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
7793 /* 7981 */ // Label 482: @7981
7794 /* 7981 */ GIM_Try, /*On fail goto*//*Label 483*/ GIMT_Encode4(8005), // Rule ID 42 //
7795 /* 7986 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
7796 /* 7989 */ // MIs[0] root
7797 /* 7989 */ // No operand predicates
7798 /* 7989 */ // MIs[0] src
7799 /* 7989 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7800 /* 7993 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
7801 /* 7997 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/9,
7802 /* 8000 */ // MIs[1] x
7803 /* 8000 */ // No operand predicates
7804 /* 8000 */ // MIs[1] y
7805 /* 8000 */ // No operand predicates
7806 /* 8000 */ // MIs[1] z
7807 /* 8000 */ // No operand predicates
7808 /* 8000 */ // MIs[1] a
7809 /* 8000 */ // No operand predicates
7810 /* 8000 */ // MIs[1] b
7811 /* 8000 */ // No operand predicates
7812 /* 8000 */ // MIs[1] c
7813 /* 8000 */ // No operand predicates
7814 /* 8000 */ // MIs[1] d
7815 /* 8000 */ // No operand predicates
7816 /* 8000 */ // MIs[1] e
7817 /* 8000 */ // No operand predicates
7818 /* 8000 */ // MIs[0] idx
7819 /* 8000 */ // No operand predicates
7820 /* 8000 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7821 /* 8002 */ // Combiner Rule #40: extract_vector_element_build_vector_trunc8
7822 /* 8002 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
7823 /* 8005 */ // Label 483: @8005
7824 /* 8005 */ GIM_Try, /*On fail goto*//*Label 484*/ GIMT_Encode4(8029), // Rule ID 41 //
7825 /* 8010 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
7826 /* 8013 */ // MIs[0] root
7827 /* 8013 */ // No operand predicates
7828 /* 8013 */ // MIs[0] src
7829 /* 8013 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7830 /* 8017 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
7831 /* 8021 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/8,
7832 /* 8024 */ // MIs[1] x
7833 /* 8024 */ // No operand predicates
7834 /* 8024 */ // MIs[1] y
7835 /* 8024 */ // No operand predicates
7836 /* 8024 */ // MIs[1] z
7837 /* 8024 */ // No operand predicates
7838 /* 8024 */ // MIs[1] a
7839 /* 8024 */ // No operand predicates
7840 /* 8024 */ // MIs[1] b
7841 /* 8024 */ // No operand predicates
7842 /* 8024 */ // MIs[1] c
7843 /* 8024 */ // No operand predicates
7844 /* 8024 */ // MIs[1] d
7845 /* 8024 */ // No operand predicates
7846 /* 8024 */ // MIs[0] idx
7847 /* 8024 */ // No operand predicates
7848 /* 8024 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7849 /* 8026 */ // Combiner Rule #39: extract_vector_element_build_vector_trunc7
7850 /* 8026 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
7851 /* 8029 */ // Label 484: @8029
7852 /* 8029 */ GIM_Try, /*On fail goto*//*Label 485*/ GIMT_Encode4(8053), // Rule ID 40 //
7853 /* 8034 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
7854 /* 8037 */ // MIs[0] root
7855 /* 8037 */ // No operand predicates
7856 /* 8037 */ // MIs[0] src
7857 /* 8037 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7858 /* 8041 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
7859 /* 8045 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/7,
7860 /* 8048 */ // MIs[1] x
7861 /* 8048 */ // No operand predicates
7862 /* 8048 */ // MIs[1] y
7863 /* 8048 */ // No operand predicates
7864 /* 8048 */ // MIs[1] z
7865 /* 8048 */ // No operand predicates
7866 /* 8048 */ // MIs[1] a
7867 /* 8048 */ // No operand predicates
7868 /* 8048 */ // MIs[1] b
7869 /* 8048 */ // No operand predicates
7870 /* 8048 */ // MIs[1] c
7871 /* 8048 */ // No operand predicates
7872 /* 8048 */ // MIs[0] idx
7873 /* 8048 */ // No operand predicates
7874 /* 8048 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7875 /* 8050 */ // Combiner Rule #38: extract_vector_element_build_vector_trunc6
7876 /* 8050 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
7877 /* 8053 */ // Label 485: @8053
7878 /* 8053 */ GIM_Try, /*On fail goto*//*Label 486*/ GIMT_Encode4(8077), // Rule ID 39 //
7879 /* 8058 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
7880 /* 8061 */ // MIs[0] root
7881 /* 8061 */ // No operand predicates
7882 /* 8061 */ // MIs[0] src
7883 /* 8061 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7884 /* 8065 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
7885 /* 8069 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/6,
7886 /* 8072 */ // MIs[1] x
7887 /* 8072 */ // No operand predicates
7888 /* 8072 */ // MIs[1] y
7889 /* 8072 */ // No operand predicates
7890 /* 8072 */ // MIs[1] z
7891 /* 8072 */ // No operand predicates
7892 /* 8072 */ // MIs[1] a
7893 /* 8072 */ // No operand predicates
7894 /* 8072 */ // MIs[1] b
7895 /* 8072 */ // No operand predicates
7896 /* 8072 */ // MIs[0] idx
7897 /* 8072 */ // No operand predicates
7898 /* 8072 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7899 /* 8074 */ // Combiner Rule #37: extract_vector_element_build_vector_trunc5
7900 /* 8074 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
7901 /* 8077 */ // Label 486: @8077
7902 /* 8077 */ GIM_Try, /*On fail goto*//*Label 487*/ GIMT_Encode4(8101), // Rule ID 38 //
7903 /* 8082 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
7904 /* 8085 */ // MIs[0] root
7905 /* 8085 */ // No operand predicates
7906 /* 8085 */ // MIs[0] src
7907 /* 8085 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7908 /* 8089 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
7909 /* 8093 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/5,
7910 /* 8096 */ // MIs[1] x
7911 /* 8096 */ // No operand predicates
7912 /* 8096 */ // MIs[1] y
7913 /* 8096 */ // No operand predicates
7914 /* 8096 */ // MIs[1] z
7915 /* 8096 */ // No operand predicates
7916 /* 8096 */ // MIs[1] a
7917 /* 8096 */ // No operand predicates
7918 /* 8096 */ // MIs[0] idx
7919 /* 8096 */ // No operand predicates
7920 /* 8096 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7921 /* 8098 */ // Combiner Rule #36: extract_vector_element_build_vector_trunc4
7922 /* 8098 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
7923 /* 8101 */ // Label 487: @8101
7924 /* 8101 */ GIM_Try, /*On fail goto*//*Label 488*/ GIMT_Encode4(8125), // Rule ID 37 //
7925 /* 8106 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
7926 /* 8109 */ // MIs[0] root
7927 /* 8109 */ // No operand predicates
7928 /* 8109 */ // MIs[0] src
7929 /* 8109 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7930 /* 8113 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
7931 /* 8117 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
7932 /* 8120 */ // MIs[1] x
7933 /* 8120 */ // No operand predicates
7934 /* 8120 */ // MIs[1] y
7935 /* 8120 */ // No operand predicates
7936 /* 8120 */ // MIs[1] z
7937 /* 8120 */ // No operand predicates
7938 /* 8120 */ // MIs[0] idx
7939 /* 8120 */ // No operand predicates
7940 /* 8120 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7941 /* 8122 */ // Combiner Rule #35: extract_vector_element_build_vector_trunc3
7942 /* 8122 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
7943 /* 8125 */ // Label 488: @8125
7944 /* 8125 */ GIM_Try, /*On fail goto*//*Label 489*/ GIMT_Encode4(8159), // Rule ID 33 //
7945 /* 8130 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
7946 /* 8133 */ // MIs[0] root
7947 /* 8133 */ // No operand predicates
7948 /* 8133 */ // MIs[0] src
7949 /* 8133 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7950 /* 8137 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
7951 /* 8141 */ // MIs[1] x
7952 /* 8141 */ // No operand predicates
7953 /* 8141 */ // MIs[1] value
7954 /* 8141 */ // No operand predicates
7955 /* 8141 */ // MIs[1] idx
7956 /* 8141 */ // No operand predicates
7957 /* 8141 */ // MIs[0] idx
7958 /* 8141 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
7959 /* 8146 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
7960 /* 8151 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7961 /* 8153 */ // Combiner Rule #31: extract_vector_element_not_const
7962 /* 8153 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
7963 /* 8158 */ GIR_EraseRootFromParent_Done,
7964 /* 8159 */ // Label 489: @8159
7965 /* 8159 */ GIM_Try, /*On fail goto*//*Label 490*/ GIMT_Encode4(8180), // Rule ID 34 //
7966 /* 8164 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
7967 /* 8167 */ // MIs[0] root
7968 /* 8167 */ // No operand predicates
7969 /* 8167 */ // MIs[0] src
7970 /* 8167 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7971 /* 8171 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
7972 /* 8175 */ // MIs[1] x
7973 /* 8175 */ // No operand predicates
7974 /* 8175 */ // MIs[1] value
7975 /* 8175 */ // No operand predicates
7976 /* 8175 */ // MIs[1] idx2
7977 /* 8175 */ // No operand predicates
7978 /* 8175 */ // MIs[0] idx1
7979 /* 8175 */ // No operand predicates
7980 /* 8175 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7981 /* 8177 */ // Combiner Rule #32: extract_vector_element_different_indices
7982 /* 8177 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
7983 /* 8180 */ // Label 490: @8180
7984 /* 8180 */ GIM_Try, /*On fail goto*//*Label 491*/ GIMT_Encode4(8209), // Rule ID 43 //
7985 /* 8185 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
7986 /* 8188 */ // MIs[0] root
7987 /* 8188 */ // No operand predicates
7988 /* 8188 */ // MIs[0] src
7989 /* 8188 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7990 /* 8192 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHUFFLE_VECTOR),
7991 /* 8196 */ // MIs[1] src1
7992 /* 8196 */ // No operand predicates
7993 /* 8196 */ // MIs[1] src2
7994 /* 8196 */ // No operand predicates
7995 /* 8196 */ // MIs[1] mask
7996 /* 8196 */ // No operand predicates
7997 /* 8196 */ // MIs[0] idx
7998 /* 8196 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7999 /* 8200 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8000 /* 8204 */ // MIs[2] imm
8001 /* 8204 */ // No operand predicates
8002 /* 8204 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8003 /* 8206 */ // Combiner Rule #41: extract_vector_element_shuffle_vector
8004 /* 8206 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
8005 /* 8209 */ // Label 491: @8209
8006 /* 8209 */ GIM_Try, /*On fail goto*//*Label 492*/ GIMT_Encode4(8233), // Rule ID 36 //
8007 /* 8214 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
8008 /* 8217 */ // MIs[0] root
8009 /* 8217 */ // No operand predicates
8010 /* 8217 */ // MIs[0] src
8011 /* 8217 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8012 /* 8221 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
8013 /* 8225 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
8014 /* 8228 */ // MIs[1] x
8015 /* 8228 */ // No operand predicates
8016 /* 8228 */ // MIs[1] y
8017 /* 8228 */ // No operand predicates
8018 /* 8228 */ // MIs[0] idx
8019 /* 8228 */ // No operand predicates
8020 /* 8228 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8021 /* 8230 */ // Combiner Rule #34: extract_vector_element_build_vector_trunc2
8022 /* 8230 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
8023 /* 8233 */ // Label 492: @8233
8024 /* 8233 */ GIM_Try, /*On fail goto*//*Label 493*/ GIMT_Encode4(8265), // Rule ID 35 //
8025 /* 8238 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
8026 /* 8241 */ // MIs[0] root
8027 /* 8241 */ // No operand predicates
8028 /* 8241 */ // MIs[0] src
8029 /* 8241 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8030 /* 8245 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
8031 /* 8249 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
8032 /* 8252 */ // MIs[1] unused
8033 /* 8252 */ // No operand predicates
8034 /* 8252 */ // MIs[0] idx
8035 /* 8252 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
8036 /* 8256 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8037 /* 8260 */ // MIs[2] imm
8038 /* 8260 */ // No operand predicates
8039 /* 8260 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8040 /* 8262 */ // Combiner Rule #33: extract_vector_element_build_vector
8041 /* 8262 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
8042 /* 8265 */ // Label 493: @8265
8043 /* 8265 */ GIM_Try, /*On fail goto*//*Label 494*/ GIMT_Encode4(8289), // Rule ID 27 //
8044 /* 8270 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
8045 /* 8273 */ // MIs[0] root
8046 /* 8273 */ // No operand predicates
8047 /* 8273 */ // MIs[0] vector
8048 /* 8273 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8049 /* 8277 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8050 /* 8281 */ // MIs[0] idx
8051 /* 8281 */ // No operand predicates
8052 /* 8281 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8053 /* 8283 */ // Combiner Rule #25: match_extract_of_element_undef_vector
8054 /* 8283 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8055 /* 8286 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
8056 /* 8288 */ GIR_EraseRootFromParent_Done,
8057 /* 8289 */ // Label 494: @8289
8058 /* 8289 */ GIM_Try, /*On fail goto*//*Label 495*/ GIMT_Encode4(8313), // Rule ID 28 //
8059 /* 8294 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
8060 /* 8297 */ // MIs[0] root
8061 /* 8297 */ // No operand predicates
8062 /* 8297 */ // MIs[0] vector
8063 /* 8297 */ // No operand predicates
8064 /* 8297 */ // MIs[0] idx
8065 /* 8297 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8066 /* 8301 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8067 /* 8305 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8068 /* 8307 */ // Combiner Rule #26: match_extract_of_element_undef_index
8069 /* 8307 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8070 /* 8310 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
8071 /* 8312 */ GIR_EraseRootFromParent_Done,
8072 /* 8313 */ // Label 495: @8313
8073 /* 8313 */ GIM_Reject,
8074 /* 8314 */ // Label 97: @8314
8075 /* 8314 */ GIM_Try, /*On fail goto*//*Label 496*/ GIMT_Encode4(8325), // Rule ID 103 //
8076 /* 8319 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
8077 /* 8322 */ // Combiner Rule #85: propagate_undef_all_ops; wip_match_opcode 'G_SHUFFLE_VECTOR'
8078 /* 8322 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
8079 /* 8325 */ // Label 496: @8325
8080 /* 8325 */ GIM_Try, /*On fail goto*//*Label 497*/ GIMT_Encode4(8336), // Rule ID 105 //
8081 /* 8330 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
8082 /* 8333 */ // Combiner Rule #86: propagate_undef_shuffle_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
8083 /* 8333 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner41),
8084 /* 8336 */ // Label 497: @8336
8085 /* 8336 */ GIM_Try, /*On fail goto*//*Label 498*/ GIMT_Encode4(8347), // Rule ID 369 //
8086 /* 8341 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
8087 /* 8344 */ // Combiner Rule #220: combine_shuffle_concat; wip_match_opcode 'G_SHUFFLE_VECTOR'
8088 /* 8344 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner136),
8089 /* 8347 */ // Label 498: @8347
8090 /* 8347 */ GIM_Try, /*On fail goto*//*Label 499*/ GIMT_Encode4(8358), // Rule ID 371 //
8091 /* 8352 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule222Enabled),
8092 /* 8355 */ // Combiner Rule #222: combine_shuffle_disjoint_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
8093 /* 8355 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner138),
8094 /* 8358 */ // Label 499: @8358
8095 /* 8358 */ GIM_Try, /*On fail goto*//*Label 500*/ GIMT_Encode4(8379), // Rule ID 370 //
8096 /* 8363 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
8097 /* 8366 */ // MIs[0] root
8098 /* 8366 */ // No operand predicates
8099 /* 8366 */ // MIs[0] src1
8100 /* 8366 */ // No operand predicates
8101 /* 8366 */ // MIs[0] undef
8102 /* 8366 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8103 /* 8370 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8104 /* 8374 */ // MIs[0] mask
8105 /* 8374 */ // No operand predicates
8106 /* 8374 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8107 /* 8376 */ // Combiner Rule #221: combine_shuffle_undef_rhs
8108 /* 8376 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner137),
8109 /* 8379 */ // Label 500: @8379
8110 /* 8379 */ GIM_Reject,
8111 /* 8380 */ // Label 98: @8380
8112 /* 8380 */ GIM_Try, /*On fail goto*//*Label 501*/ GIMT_Encode4(8391), // Rule ID 392 //
8113 /* 8385 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule241Enabled),
8114 /* 8388 */ // MIs[0] dst
8115 /* 8388 */ // No operand predicates
8116 /* 8388 */ // MIs[0] src
8117 /* 8388 */ // No operand predicates
8118 /* 8388 */ // Combiner Rule #241: ctlz_to_ctls
8119 /* 8388 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner155),
8120 /* 8391 */ // Label 501: @8391
8121 /* 8391 */ GIM_Reject,
8122 /* 8392 */ // Label 99: @8392
8123 /* 8392 */ GIM_Try, /*On fail goto*//*Label 502*/ GIMT_Encode4(8403), // Rule ID 393 //
8124 /* 8397 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule242Enabled),
8125 /* 8400 */ // MIs[0] dst
8126 /* 8400 */ // No operand predicates
8127 /* 8400 */ // MIs[0] src
8128 /* 8400 */ // No operand predicates
8129 /* 8400 */ // Combiner Rule #242: ctlz_zero_undef_to_ctls
8130 /* 8400 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner155),
8131 /* 8403 */ // Label 502: @8403
8132 /* 8403 */ GIM_Reject,
8133 /* 8404 */ // Label 100: @8404
8134 /* 8404 */ GIM_Try, /*On fail goto*//*Label 503*/ GIMT_Encode4(8448), // Rule ID 245 //
8135 /* 8409 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
8136 /* 8412 */ // MIs[0] d
8137 /* 8412 */ // No operand predicates
8138 /* 8412 */ // MIs[0] src
8139 /* 8412 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8140 /* 8416 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
8141 /* 8420 */ // MIs[1] rev
8142 /* 8420 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8143 /* 8424 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
8144 /* 8428 */ // MIs[2] val
8145 /* 8428 */ // No operand predicates
8146 /* 8428 */ // MIs[1] amt
8147 /* 8428 */ // No operand predicates
8148 /* 8428 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
8149 /* 8432 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8150 /* 8434 */ // Combiner Rule #178: bitreverse_lshr
8151 /* 8434 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
8152 /* 8437 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
8153 /* 8439 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
8154 /* 8443 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
8155 /* 8447 */ GIR_EraseRootFromParent_Done,
8156 /* 8448 */ // Label 503: @8448
8157 /* 8448 */ GIM_Try, /*On fail goto*//*Label 504*/ GIMT_Encode4(8492), // Rule ID 244 //
8158 /* 8453 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled),
8159 /* 8456 */ // MIs[0] d
8160 /* 8456 */ // No operand predicates
8161 /* 8456 */ // MIs[0] src
8162 /* 8456 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8163 /* 8460 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
8164 /* 8464 */ // MIs[1] rev
8165 /* 8464 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8166 /* 8468 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
8167 /* 8472 */ // MIs[2] val
8168 /* 8472 */ // No operand predicates
8169 /* 8472 */ // MIs[1] amt
8170 /* 8472 */ // No operand predicates
8171 /* 8472 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner11),
8172 /* 8476 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8173 /* 8478 */ // Combiner Rule #177: bitreverse_shl
8174 /* 8478 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_LSHR),
8175 /* 8481 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
8176 /* 8483 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
8177 /* 8487 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
8178 /* 8491 */ GIR_EraseRootFromParent_Done,
8179 /* 8492 */ // Label 504: @8492
8180 /* 8492 */ GIM_Reject,
8181 /* 8493 */ // Label 101: @8493
8182 /* 8493 */ GIM_Try, /*On fail goto*//*Label 505*/ GIMT_Encode4(8514), // Rule ID 192 //
8183 /* 8498 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
8184 /* 8501 */ // MIs[0] dst
8185 /* 8501 */ // No operand predicates
8186 /* 8501 */ // MIs[0] src0
8187 /* 8501 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8188 /* 8505 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8189 /* 8509 */ // MIs[1] cst
8190 /* 8509 */ // No operand predicates
8191 /* 8509 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8192 /* 8511 */ // Combiner Rule #148: constant_fold_fceil
8193 /* 8511 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8194 /* 8514 */ // Label 505: @8514
8195 /* 8514 */ GIM_Reject,
8196 /* 8515 */ // Label 102: @8515
8197 /* 8515 */ GIM_Try, /*On fail goto*//*Label 506*/ GIMT_Encode4(8536), // Rule ID 188 //
8198 /* 8520 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule144Enabled),
8199 /* 8523 */ // MIs[0] dst
8200 /* 8523 */ // No operand predicates
8201 /* 8523 */ // MIs[0] src0
8202 /* 8523 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8203 /* 8527 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8204 /* 8531 */ // MIs[1] cst
8205 /* 8531 */ // No operand predicates
8206 /* 8531 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8207 /* 8533 */ // Combiner Rule #144: constant_fold_fsqrt
8208 /* 8533 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8209 /* 8536 */ // Label 506: @8536
8210 /* 8536 */ GIM_Reject,
8211 /* 8537 */ // Label 103: @8537
8212 /* 8537 */ GIM_Try, /*On fail goto*//*Label 507*/ GIMT_Encode4(8558), // Rule ID 193 //
8213 /* 8542 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule149Enabled),
8214 /* 8545 */ // MIs[0] dst
8215 /* 8545 */ // No operand predicates
8216 /* 8545 */ // MIs[0] src0
8217 /* 8545 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8218 /* 8549 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8219 /* 8553 */ // MIs[1] cst
8220 /* 8553 */ // No operand predicates
8221 /* 8553 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8222 /* 8555 */ // Combiner Rule #149: constant_fold_ffloor
8223 /* 8555 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8224 /* 8558 */ // Label 507: @8558
8225 /* 8558 */ GIM_Reject,
8226 /* 8559 */ // Label 104: @8559
8227 /* 8559 */ GIM_Try, /*On fail goto*//*Label 508*/ GIMT_Encode4(8580), // Rule ID 197 //
8228 /* 8564 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
8229 /* 8567 */ // MIs[0] dst
8230 /* 8567 */ // No operand predicates
8231 /* 8567 */ // MIs[0] src0
8232 /* 8567 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8233 /* 8571 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8234 /* 8575 */ // MIs[1] cst
8235 /* 8575 */ // No operand predicates
8236 /* 8575 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8237 /* 8577 */ // Combiner Rule #153: constant_fold_frint
8238 /* 8577 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8239 /* 8580 */ // Label 508: @8580
8240 /* 8580 */ GIM_Reject,
8241 /* 8581 */ // Label 105: @8581
8242 /* 8581 */ GIM_Try, /*On fail goto*//*Label 509*/ GIMT_Encode4(8602), // Rule ID 198 //
8243 /* 8586 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule154Enabled),
8244 /* 8589 */ // MIs[0] dst
8245 /* 8589 */ // No operand predicates
8246 /* 8589 */ // MIs[0] src0
8247 /* 8589 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8248 /* 8593 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8249 /* 8597 */ // MIs[1] cst
8250 /* 8597 */ // No operand predicates
8251 /* 8597 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8252 /* 8599 */ // Combiner Rule #154: constant_fold_fnearbyint
8253 /* 8599 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8254 /* 8602 */ // Label 509: @8602
8255 /* 8602 */ GIM_Reject,
8256 /* 8603 */ // Label 106: @8603
8257 /* 8603 */ GIM_Reject,
8258 /* 8604 */ }; // Size: 8604 bytes
8259 return MatchTable0;
8260}
8261#undef GIMT_Encode2
8262#undef GIMT_Encode4
8263#undef GIMT_Encode8
8264
8265
8266#endif // GET_GICOMBINER_IMPL
8267
8268#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
8269
8270AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
8271AvailableFunctionFeatures()
8272
8273#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
8274
8275#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
8276
8277, State(0),
8278ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
8279
8280#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
8281
8282