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: // 7 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 267; // "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 230; // "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 169; // "mulo_by_0"
66 case '2': // 1 string to match.
67 return 168; // "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 241; // "nneg_zext"
76 case 'o': // 1 string to match.
77 if (memcmp(RuleIdentifier.data()+1, "r_xor_or", 8) != 0)
78 break;
79 return 235; // "or_xor_or"
80 }
81 break;
82 case 10: // 11 strings to match.
83 switch (RuleIdentifier[0]) {
84 default: break;
85 case 'S': // 2 strings to match.
86 if (memcmp(RuleIdentifier.data()+1, "ub", 2) != 0)
87 break;
88 switch (RuleIdentifier[3]) {
89 default: break;
90 case 'S': // 1 string to match.
91 if (memcmp(RuleIdentifier.data()+4, "maxSub", 6) != 0)
92 break;
93 return 272; // "SubSmaxSub"
94 case 'U': // 1 string to match.
95 if (memcmp(RuleIdentifier.data()+4, "maxSub", 6) != 0)
96 break;
97 return 273; // "SubUmaxSub"
98 }
99 break;
100 case 'i': // 1 string to match.
101 if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i", 9) != 0)
102 break;
103 return 96; // "i2p_to_p2i"
104 case 'm': // 2 strings to match.
105 switch (RuleIdentifier[1]) {
106 default: break;
107 case 'a': // 1 string to match.
108 if (memcmp(RuleIdentifier.data()+2, "tch_ands", 8) != 0)
109 break;
110 return 229; // "match_ands"
111 case 'u': // 1 string to match.
112 if (memcmp(RuleIdentifier.data()+2, "l_to_shl", 8) != 0)
113 break;
114 return 20; // "mul_to_shl"
115 }
116 break;
117 case 'o': // 1 string to match.
118 if (memcmp(RuleIdentifier.data()+1, "r_xor_and", 9) != 0)
119 break;
120 return 236; // "or_xor_and"
121 case 'p': // 1 string to match.
122 if (memcmp(RuleIdentifier.data()+1, "2i_to_i2p", 9) != 0)
123 break;
124 return 95; // "p2i_to_i2p"
125 case 's': // 3 strings to match.
126 switch (RuleIdentifier[1]) {
127 default: break;
128 case 'e': // 2 strings to match.
129 switch (RuleIdentifier[2]) {
130 default: break;
131 case 'l': // 1 string to match.
132 if (memcmp(RuleIdentifier.data()+3, "ect_not", 7) != 0)
133 break;
134 return 137; // "select_not"
135 case 'x': // 1 string to match.
136 if (memcmp(RuleIdentifier.data()+3, "t_trunc", 7) != 0)
137 break;
138 return 239; // "sext_trunc"
139 }
140 break;
141 case 'u': // 1 string to match.
142 if (memcmp(RuleIdentifier.data()+2, "b_to_add", 8) != 0)
143 break;
144 return 21; // "sub_to_add"
145 }
146 break;
147 case 'z': // 1 string to match.
148 if (memcmp(RuleIdentifier.data()+1, "ext_trunc", 9) != 0)
149 break;
150 return 240; // "zext_trunc"
151 }
152 break;
153 case 11: // 8 strings to match.
154 switch (RuleIdentifier[0]) {
155 default: break;
156 case 'a': // 1 string to match.
157 if (memcmp(RuleIdentifier.data()+1, "dd_sub_reg", 10) != 0)
158 break;
159 return 101; // "add_sub_reg"
160 case 'm': // 1 string to match.
161 if (memcmp(RuleIdentifier.data()+1, "atch_addos", 10) != 0)
162 break;
163 return 256; // "match_addos"
164 case 's': // 1 string to match.
165 if (memcmp(RuleIdentifier.data()+1, "ub_add_reg", 10) != 0)
166 break;
167 return 224; // "sub_add_reg"
168 case 't': // 4 strings to match.
169 if (memcmp(RuleIdentifier.data()+1, "runc_", 5) != 0)
170 break;
171 switch (RuleIdentifier[6]) {
172 default: break;
173 case 's': // 3 strings to match.
174 switch (RuleIdentifier[7]) {
175 default: break;
176 case 'h': // 1 string to match.
177 if (memcmp(RuleIdentifier.data()+8, "ift", 3) != 0)
178 break;
179 return 148; // "trunc_shift"
180 case 's': // 2 strings to match.
181 if (memcmp(RuleIdentifier.data()+8, "at", 2) != 0)
182 break;
183 switch (RuleIdentifier[10]) {
184 default: break;
185 case 's': // 1 string to match.
186 return 258; // "trunc_ssats"
187 case 'u': // 1 string to match.
188 return 259; // "trunc_ssatu"
189 }
190 break;
191 }
192 break;
193 case 'u': // 1 string to match.
194 if (memcmp(RuleIdentifier.data()+7, "satu", 4) != 0)
195 break;
196 return 260; // "trunc_usatu"
197 }
198 break;
199 case 'u': // 1 string to match.
200 if (memcmp(RuleIdentifier.data()+1, "nmerge_cst", 10) != 0)
201 break;
202 return 249; // "unmerge_cst"
203 }
204 break;
205 case 12: // 12 strings to match.
206 switch (RuleIdentifier[0]) {
207 default: break;
208 case 'A': // 1 string to match.
209 if (memcmp(RuleIdentifier.data()+1, "PlusBMinusB", 11) != 0)
210 break;
211 return 4; // "APlusBMinusB"
212 case 'B': // 1 string to match.
213 if (memcmp(RuleIdentifier.data()+1, "MinusAPlusA", 11) != 0)
214 break;
215 return 5; // "BMinusAPlusA"
216 case 'a': // 1 string to match.
217 if (memcmp(RuleIdentifier.data()+1, "dde_to_addo", 11) != 0)
218 break;
219 return 170; // "adde_to_addo"
220 case 'c': // 1 string to match.
221 if (memcmp(RuleIdentifier.data()+1, "tlz_to_ctls", 11) != 0)
222 break;
223 return 263; // "ctlz_to_ctls"
224 case 'f': // 1 string to match.
225 if (memcmp(RuleIdentifier.data()+1, "sub_to_fneg", 11) != 0)
226 break;
227 return 226; // "fsub_to_fneg"
228 case 'm': // 1 string to match.
229 if (memcmp(RuleIdentifier.data()+1, "ulh_to_lshr", 11) != 0)
230 break;
231 return 200; // "mulh_to_lshr"
232 case 'n': // 1 string to match.
233 if (memcmp(RuleIdentifier.data()+1, "ot_cmp_fold", 11) != 0)
234 break;
235 return 149; // "not_cmp_fold"
236 case 'r': // 1 string to match.
237 if (memcmp(RuleIdentifier.data()+1, "edundant_or", 11) != 0)
238 break;
239 return 144; // "redundant_or"
240 case 's': // 2 strings to match.
241 switch (RuleIdentifier[1]) {
242 default: break;
243 case 'd': // 1 string to match.
244 if (memcmp(RuleIdentifier.data()+2, "iv_by_pow2", 10) != 0)
245 break;
246 return 220; // "sdiv_by_pow2"
247 case 'e': // 1 string to match.
248 if (memcmp(RuleIdentifier.data()+2, "xt_of_sext", 10) != 0)
249 break;
250 return 53; // "sext_of_sext"
251 }
252 break;
253 case 'u': // 1 string to match.
254 if (memcmp(RuleIdentifier.data()+1, "div_by_pow2", 11) != 0)
255 break;
256 return 219; // "udiv_by_pow2"
257 case 'z': // 1 string to match.
258 if (memcmp(RuleIdentifier.data()+1, "ext_of_zext", 11) != 0)
259 break;
260 return 51; // "zext_of_zext"
261 }
262 break;
263 case 13: // 18 strings to match.
264 switch (RuleIdentifier[0]) {
265 default: break;
266 case 'A': // 2 strings to match.
267 if (memcmp(RuleIdentifier.data()+1, "MinusBMinus", 11) != 0)
268 break;
269 switch (RuleIdentifier[12]) {
270 default: break;
271 case 'A': // 1 string to match.
272 return 12; // "AMinusBMinusA"
273 case 'C': // 1 string to match.
274 return 9; // "AMinusBMinusC"
275 }
276 break;
277 case 'a': // 1 string to match.
278 if (memcmp(RuleIdentifier.data()+1, "dd_of_vscale", 12) != 0)
279 break;
280 return 42; // "add_of_vscale"
281 case 'l': // 1 string to match.
282 if (memcmp(RuleIdentifier.data()+1, "oad_and_mask", 12) != 0)
283 break;
284 return 74; // "load_and_mask"
285 case 'm': // 3 strings to match.
286 switch (RuleIdentifier[1]) {
287 default: break;
288 case 'a': // 1 string to match.
289 if (memcmp(RuleIdentifier.data()+2, "tch_selects", 11) != 0)
290 break;
291 return 135; // "match_selects"
292 case 'e': // 1 string to match.
293 if (memcmp(RuleIdentifier.data()+2, "rge_unmerge", 11) != 0)
294 break;
295 return 248; // "merge_unmerge"
296 case 'u': // 1 string to match.
297 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
298 break;
299 return 43; // "mul_of_vscale"
300 }
301 break;
302 case 'r': // 1 string to match.
303 if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
304 break;
305 return 143; // "redundant_and"
306 case 's': // 6 strings to match.
307 switch (RuleIdentifier[1]) {
308 default: break;
309 case 'a': // 1 string to match.
310 if (memcmp(RuleIdentifier.data()+2, "me_val_zero", 11) != 0)
311 break;
312 return 92; // "same_val_zero"
313 case 'd': // 1 string to match.
314 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
315 break;
316 return 222; // "sdiv_by_const"
317 case 'h': // 1 string to match.
318 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
319 break;
320 return 44; // "shl_of_vscale"
321 case 'r': // 1 string to match.
322 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
323 break;
324 return 218; // "srem_by_const"
325 case 'u': // 2 strings to match.
326 if (memcmp(RuleIdentifier.data()+2, "b_", 2) != 0)
327 break;
328 switch (RuleIdentifier[4]) {
329 default: break;
330 case 'm': // 1 string to match.
331 if (memcmp(RuleIdentifier.data()+5, "inus_one", 8) != 0)
332 break;
333 return 270; // "sub_minus_one"
334 case 'o': // 1 string to match.
335 if (memcmp(RuleIdentifier.data()+5, "f_vscale", 8) != 0)
336 break;
337 return 45; // "sub_of_vscale"
338 }
339 break;
340 }
341 break;
342 case 'u': // 4 strings to match.
343 switch (RuleIdentifier[1]) {
344 default: break;
345 case 'd': // 1 string to match.
346 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
347 break;
348 return 221; // "udiv_by_const"
349 case 'n': // 2 strings to match.
350 if (memcmp(RuleIdentifier.data()+2, "merge_", 6) != 0)
351 break;
352 switch (RuleIdentifier[8]) {
353 default: break;
354 case 'm': // 1 string to match.
355 if (memcmp(RuleIdentifier.data()+9, "erge", 4) != 0)
356 break;
357 return 247; // "unmerge_merge"
358 case 'u': // 1 string to match.
359 if (memcmp(RuleIdentifier.data()+9, "ndef", 4) != 0)
360 break;
361 return 250; // "unmerge_undef"
362 }
363 break;
364 case 'r': // 1 string to match.
365 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
366 break;
367 return 217; // "urem_by_const"
368 }
369 break;
370 }
371 break;
372 case 14: // 17 strings to match.
373 switch (RuleIdentifier[0]) {
374 default: break;
375 case 'A': // 2 strings to match.
376 switch (RuleIdentifier[1]) {
377 default: break;
378 case 'M': // 1 string to match.
379 if (memcmp(RuleIdentifier.data()+2, "inusC1PlusC2", 12) != 0)
380 break;
381 return 18; // "AMinusC1PlusC2"
382 case 'P': // 1 string to match.
383 if (memcmp(RuleIdentifier.data()+2, "lusC1MinusC2", 12) != 0)
384 break;
385 return 14; // "APlusC1MinusC2"
386 }
387 break;
388 case 'C': // 1 string to match.
389 if (memcmp(RuleIdentifier.data()+1, "2MinusAPlusC1", 13) != 0)
390 break;
391 return 15; // "C2MinusAPlusC1"
392 case 'N': // 1 string to match.
393 if (memcmp(RuleIdentifier.data()+1, "otAPlusNegOne", 13) != 0)
394 break;
395 return 13; // "NotAPlusNegOne"
396 case 'a': // 2 strings to match.
397 if (memcmp(RuleIdentifier.data()+1, "nyext_of_", 9) != 0)
398 break;
399 switch (RuleIdentifier[10]) {
400 default: break;
401 case 's': // 1 string to match.
402 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
403 break;
404 return 57; // "anyext_of_sext"
405 case 'z': // 1 string to match.
406 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
407 break;
408 return 56; // "anyext_of_zext"
409 }
410 break;
411 case 'b': // 3 strings to match.
412 if (RuleIdentifier[1] != 'i')
413 break;
414 switch (RuleIdentifier[2]) {
415 default: break;
416 case 'n': // 2 strings to match.
417 if (memcmp(RuleIdentifier.data()+3, "op_", 3) != 0)
418 break;
419 switch (RuleIdentifier[6]) {
420 default: break;
421 case 's': // 1 string to match.
422 if (memcmp(RuleIdentifier.data()+7, "ame_val", 7) != 0)
423 break;
424 return 91; // "binop_same_val"
425 case 'w': // 1 string to match.
426 if (memcmp(RuleIdentifier.data()+7, "ith_neg", 7) != 0)
427 break;
428 return 269; // "binop_with_neg"
429 }
430 break;
431 case 't': // 1 string to match.
432 if (memcmp(RuleIdentifier.data()+3, "reverse_shl", 11) != 0)
433 break;
434 return 186; // "bitreverse_shl"
435 }
436 break;
437 case 'f': // 2 strings to match.
438 switch (RuleIdentifier[1]) {
439 default: break;
440 case 'a': // 1 string to match.
441 if (memcmp(RuleIdentifier.data()+2, "bs_fneg_fold", 12) != 0)
442 break;
443 return 199; // "fabs_fneg_fold"
444 case 'n': // 1 string to match.
445 if (memcmp(RuleIdentifier.data()+2, "eg_fneg_fold", 12) != 0)
446 break;
447 return 98; // "fneg_fneg_fold"
448 }
449 break;
450 case 'm': // 1 string to match.
451 if (memcmp(RuleIdentifier.data()+1, "ul_by_neg_one", 13) != 0)
452 break;
453 return 23; // "mul_by_neg_one"
454 case 'r': // 1 string to match.
455 if (memcmp(RuleIdentifier.data()+1, "eassoc_ptradd", 13) != 0)
456 break;
457 return 115; // "reassoc_ptradd"
458 case 's': // 3 strings to match.
459 switch (RuleIdentifier[1]) {
460 default: break;
461 case 'e': // 2 strings to match.
462 switch (RuleIdentifier[2]) {
463 default: break;
464 case 'l': // 1 string to match.
465 if (memcmp(RuleIdentifier.data()+3, "ect_of_zext", 11) != 0)
466 break;
467 return 59; // "select_of_zext"
468 case 'x': // 1 string to match.
469 if (memcmp(RuleIdentifier.data()+3, "t_of_anyext", 11) != 0)
470 break;
471 return 54; // "sext_of_anyext"
472 }
473 break;
474 case 'h': // 1 string to match.
475 if (memcmp(RuleIdentifier.data()+2, "ifts_too_big", 12) != 0)
476 break;
477 return 114; // "shifts_too_big"
478 }
479 break;
480 case 'z': // 1 string to match.
481 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
482 break;
483 return 52; // "zext_of_anyext"
484 }
485 break;
486 case 15: // 14 strings to match.
487 switch (RuleIdentifier[0]) {
488 default: break;
489 case 'A': // 2 strings to match.
490 switch (RuleIdentifier[1]) {
491 default: break;
492 case 'M': // 1 string to match.
493 if (memcmp(RuleIdentifier.data()+2, "inusC1MinusC2", 13) != 0)
494 break;
495 return 16; // "AMinusC1MinusC2"
496 case 'P': // 1 string to match.
497 if (memcmp(RuleIdentifier.data()+2, "lusZeroMinusB", 13) != 0)
498 break;
499 return 3; // "APlusZeroMinusB"
500 }
501 break;
502 case 'C': // 1 string to match.
503 if (memcmp(RuleIdentifier.data()+1, "1Minus2MinusC2", 14) != 0)
504 break;
505 return 17; // "C1Minus2MinusC2"
506 case 'G': // 1 string to match.
507 if (memcmp(RuleIdentifier.data()+1, "_FMA_fneg_fneg", 14) != 0)
508 break;
509 return 205; // "G_FMA_fneg_fneg"
510 case 'Z': // 1 string to match.
511 if (memcmp(RuleIdentifier.data()+1, "eroMinusAPlusB", 14) != 0)
512 break;
513 return 2; // "ZeroMinusAPlusB"
514 case 'a': // 2 strings to match.
515 if (memcmp(RuleIdentifier.data()+1, "vgceil_", 7) != 0)
516 break;
517 switch (RuleIdentifier[8]) {
518 default: break;
519 case 's': // 1 string to match.
520 if (memcmp(RuleIdentifier.data()+9, "_match", 6) != 0)
521 break;
522 return 277; // "avgceil_s_match"
523 case 'u': // 1 string to match.
524 if (memcmp(RuleIdentifier.data()+9, "_match", 6) != 0)
525 break;
526 return 276; // "avgceil_u_match"
527 }
528 break;
529 case 'b': // 1 string to match.
530 if (memcmp(RuleIdentifier.data()+1, "itreverse_lshr", 14) != 0)
531 break;
532 return 187; // "bitreverse_lshr"
533 case 'e': // 1 string to match.
534 if (memcmp(RuleIdentifier.data()+1, "xtending_loads", 14) != 0)
535 break;
536 return 73; // "extending_loads"
537 case 'i': // 1 string to match.
538 if (memcmp(RuleIdentifier.data()+1, "dempotent_prop", 14) != 0)
539 break;
540 return 24; // "idempotent_prop"
541 case 'l': // 1 string to match.
542 if (memcmp(RuleIdentifier.data()+1, "oad_or_combine", 14) != 0)
543 break;
544 return 177; // "load_or_combine"
545 case 'n': // 1 string to match.
546 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_or", 14) != 0)
547 break;
548 return 67; // "narrow_binop_or"
549 case 'o': // 1 string to match.
550 if (memcmp(RuleIdentifier.data()+1, "verlapping_and", 14) != 0)
551 break;
552 return 167; // "overlapping_and"
553 case 'z': // 1 string to match.
554 if (memcmp(RuleIdentifier.data()+1, "ext_trunc_fold", 14) != 0)
555 break;
556 return 146; // "zext_trunc_fold"
557 }
558 break;
559 case 16: // 22 strings to match.
560 switch (RuleIdentifier[0]) {
561 default: break;
562 case 'A': // 1 string to match.
563 if (memcmp(RuleIdentifier.data()+1, "MinusZeroMinusB", 15) != 0)
564 break;
565 return 11; // "AMinusZeroMinusB"
566 case 'G': // 3 strings to match.
567 if (memcmp(RuleIdentifier.data()+1, "_F", 2) != 0)
568 break;
569 switch (RuleIdentifier[3]) {
570 default: break;
571 case 'D': // 1 string to match.
572 if (memcmp(RuleIdentifier.data()+4, "IV_fneg_fneg", 12) != 0)
573 break;
574 return 203; // "G_FDIV_fneg_fneg"
575 case 'M': // 2 strings to match.
576 switch (RuleIdentifier[4]) {
577 default: break;
578 case 'A': // 1 string to match.
579 if (memcmp(RuleIdentifier.data()+5, "D_fneg_fneg", 11) != 0)
580 break;
581 return 204; // "G_FMAD_fneg_fneg"
582 case 'U': // 1 string to match.
583 if (memcmp(RuleIdentifier.data()+5, "L_fneg_fneg", 11) != 0)
584 break;
585 return 202; // "G_FMUL_fneg_fneg"
586 }
587 break;
588 }
589 break;
590 case 'a': // 3 strings to match.
591 switch (RuleIdentifier[1]) {
592 default: break;
593 case 'n': // 1 string to match.
594 if (memcmp(RuleIdentifier.data()+2, "yext_of_anyext", 14) != 0)
595 break;
596 return 55; // "anyext_of_anyext"
597 case 'v': // 2 strings to match.
598 if (memcmp(RuleIdentifier.data()+2, "gfloor_", 7) != 0)
599 break;
600 switch (RuleIdentifier[9]) {
601 default: break;
602 case 's': // 1 string to match.
603 if (memcmp(RuleIdentifier.data()+10, "_match", 6) != 0)
604 break;
605 return 275; // "avgfloor_s_match"
606 case 'u': // 1 string to match.
607 if (memcmp(RuleIdentifier.data()+10, "_match", 6) != 0)
608 break;
609 return 274; // "avgfloor_u_match"
610 }
611 break;
612 }
613 break;
614 case 'c': // 1 string to match.
615 if (memcmp(RuleIdentifier.data()+1, "ommute_shift_or", 15) != 0)
616 break;
617 return 189; // "commute_shift_or"
618 case 'n': // 5 strings to match.
619 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_", 12) != 0)
620 break;
621 switch (RuleIdentifier[13]) {
622 default: break;
623 case 'a': // 2 strings to match.
624 switch (RuleIdentifier[14]) {
625 default: break;
626 case 'd': // 1 string to match.
627 if (RuleIdentifier[15] != 'd')
628 break;
629 return 63; // "narrow_binop_add"
630 case 'n': // 1 string to match.
631 if (RuleIdentifier[15] != 'd')
632 break;
633 return 66; // "narrow_binop_and"
634 }
635 break;
636 case 'm': // 1 string to match.
637 if (memcmp(RuleIdentifier.data()+14, "ul", 2) != 0)
638 break;
639 return 65; // "narrow_binop_mul"
640 case 's': // 1 string to match.
641 if (memcmp(RuleIdentifier.data()+14, "ub", 2) != 0)
642 break;
643 return 64; // "narrow_binop_sub"
644 case 'x': // 1 string to match.
645 if (memcmp(RuleIdentifier.data()+14, "or", 2) != 0)
646 break;
647 return 68; // "narrow_binop_xor"
648 }
649 break;
650 case 'o': // 1 string to match.
651 if (memcmp(RuleIdentifier.data()+1, "r_and_xor_to_or", 15) != 0)
652 break;
653 return 231; // "or_and_xor_to_or"
654 case 's': // 5 strings to match.
655 switch (RuleIdentifier[1]) {
656 default: break;
657 case 'e': // 3 strings to match.
658 if (memcmp(RuleIdentifier.data()+2, "lect_", 5) != 0)
659 break;
660 switch (RuleIdentifier[7]) {
661 default: break;
662 case 'o': // 1 string to match.
663 if (memcmp(RuleIdentifier.data()+8, "f_anyext", 8) != 0)
664 break;
665 return 60; // "select_of_anyext"
666 case 't': // 1 string to match.
667 if (memcmp(RuleIdentifier.data()+8, "o_minmax", 8) != 0)
668 break;
669 return 225; // "select_to_minmax"
670 case 'u': // 1 string to match.
671 if (memcmp(RuleIdentifier.data()+8, "ndef_cmp", 8) != 0)
672 break;
673 return 130; // "select_undef_cmp"
674 }
675 break;
676 case 'u': // 2 strings to match.
677 if (memcmp(RuleIdentifier.data()+2, "b_o", 3) != 0)
678 break;
679 switch (RuleIdentifier[5]) {
680 default: break;
681 case 'f': // 1 string to match.
682 if (memcmp(RuleIdentifier.data()+6, "_mul_const", 10) != 0)
683 break;
684 return 271; // "sub_of_mul_const"
685 case 'n': // 1 string to match.
686 if (memcmp(RuleIdentifier.data()+6, "e_from_sub", 10) != 0)
687 break;
688 return 268; // "sub_one_from_sub"
689 }
690 break;
691 }
692 break;
693 case 't': // 2 strings to match.
694 if (memcmp(RuleIdentifier.data()+1, "runcate_of_", 11) != 0)
695 break;
696 switch (RuleIdentifier[12]) {
697 default: break;
698 case 's': // 1 string to match.
699 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
700 break;
701 return 49; // "truncate_of_sext"
702 case 'z': // 1 string to match.
703 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
704 break;
705 return 48; // "truncate_of_zext"
706 }
707 break;
708 case 'u': // 1 string to match.
709 if (memcmp(RuleIdentifier.data()+1, "ndef_to_fp_zero", 15) != 0)
710 break;
711 return 76; // "undef_to_fp_zero"
712 }
713 break;
714 case 17: // 19 strings to match.
715 switch (RuleIdentifier[0]) {
716 default: break;
717 case 'A': // 2 strings to match.
718 if (memcmp(RuleIdentifier.data()+1, "PlusBMinus", 10) != 0)
719 break;
720 switch (RuleIdentifier[11]) {
721 default: break;
722 case 'A': // 1 string to match.
723 if (memcmp(RuleIdentifier.data()+12, "plusC", 5) != 0)
724 break;
725 return 8; // "APlusBMinusAplusC"
726 case 'C': // 1 string to match.
727 if (memcmp(RuleIdentifier.data()+12, "PlusA", 5) != 0)
728 break;
729 return 10; // "APlusBMinusCPlusA"
730 }
731 break;
732 case 'a': // 3 strings to match.
733 switch (RuleIdentifier[1]) {
734 default: break;
735 case 'd': // 1 string to match.
736 if (memcmp(RuleIdentifier.data()+2, "d_p2i_to_ptradd", 15) != 0)
737 break;
738 return 22; // "add_p2i_to_ptradd"
739 case 'n': // 2 strings to match.
740 switch (RuleIdentifier[2]) {
741 default: break;
742 case 'd': // 1 string to match.
743 if (memcmp(RuleIdentifier.data()+3, "_xor_or_to_and", 14) != 0)
744 break;
745 return 233; // "and_xor_or_to_and"
746 case 'y': // 1 string to match.
747 if (memcmp(RuleIdentifier.data()+3, "ext_trunc_fold", 14) != 0)
748 break;
749 return 97; // "anyext_trunc_fold"
750 }
751 break;
752 }
753 break;
754 case 'c': // 5 strings to match.
755 switch (RuleIdentifier[1]) {
756 default: break;
757 case 'a': // 2 strings to match.
758 if (memcmp(RuleIdentifier.data()+2, "nonicalize_", 11) != 0)
759 break;
760 switch (RuleIdentifier[13]) {
761 default: break;
762 case 'f': // 1 string to match.
763 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
764 break;
765 return 119; // "canonicalize_fcmp"
766 case 'i': // 1 string to match.
767 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
768 break;
769 return 118; // "canonicalize_icmp"
770 }
771 break;
772 case 'o': // 3 strings to match.
773 switch (RuleIdentifier[2]) {
774 default: break;
775 case 'm': // 2 strings to match.
776 switch (RuleIdentifier[3]) {
777 default: break;
778 case 'b': // 1 string to match.
779 if (memcmp(RuleIdentifier.data()+4, "ine_or_of_and", 13) != 0)
780 break;
781 return 278; // "combine_or_of_and"
782 case 'm': // 1 string to match.
783 if (memcmp(RuleIdentifier.data()+4, "ute_shift_add", 13) != 0)
784 break;
785 return 188; // "commute_shift_add"
786 }
787 break;
788 case 'n': // 1 string to match.
789 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fma", 14) != 0)
790 break;
791 return 196; // "constant_fold_fma"
792 }
793 break;
794 }
795 break;
796 case 'd': // 1 string to match.
797 if (memcmp(RuleIdentifier.data()+1, "iv_rem_to_divrem", 16) != 0)
798 break;
799 return 178; // "div_rem_to_divrem"
800 case 'e': // 1 string to match.
801 if (memcmp(RuleIdentifier.data()+1, "rase_undef_store", 16) != 0)
802 break;
803 return 86; // "erase_undef_store"
804 case 'p': // 1 string to match.
805 if (memcmp(RuleIdentifier.data()+1, "tr_add_with_zero", 16) != 0)
806 break;
807 return 174; // "ptr_add_with_zero"
808 case 's': // 4 strings to match.
809 switch (RuleIdentifier[1]) {
810 default: break;
811 case 'e': // 2 strings to match.
812 if (memcmp(RuleIdentifier.data()+2, "lect_", 5) != 0)
813 break;
814 switch (RuleIdentifier[7]) {
815 default: break;
816 case 't': // 1 string to match.
817 if (memcmp(RuleIdentifier.data()+8, "o_iminmax", 9) != 0)
818 break;
819 return 134; // "select_to_iminmax"
820 case 'z': // 1 string to match.
821 if (memcmp(RuleIdentifier.data()+8, "ero_false", 9) != 0)
822 break;
823 return 136; // "select_zero_false"
824 }
825 break;
826 case 'h': // 1 string to match.
827 if (memcmp(RuleIdentifier.data()+2, "ift_immed_chain", 15) != 0)
828 break;
829 return 175; // "shift_immed_chain"
830 case 'r': // 1 string to match.
831 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
832 break;
833 return 216; // "srem_pow2_to_mask"
834 }
835 break;
836 case 'u': // 2 strings to match.
837 switch (RuleIdentifier[1]) {
838 default: break;
839 case 'n': // 1 string to match.
840 if (memcmp(RuleIdentifier.data()+2, "def_to_int_zero", 15) != 0)
841 break;
842 return 77; // "undef_to_int_zero"
843 case 'r': // 1 string to match.
844 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
845 break;
846 return 145; // "urem_pow2_to_mask"
847 }
848 break;
849 }
850 break;
851 case 18: // 12 strings to match.
852 switch (RuleIdentifier[0]) {
853 default: break;
854 case 'A': // 3 strings to match.
855 switch (RuleIdentifier[1]) {
856 default: break;
857 case 'M': // 2 strings to match.
858 if (memcmp(RuleIdentifier.data()+2, "inusBPlus", 9) != 0)
859 break;
860 switch (RuleIdentifier[11]) {
861 default: break;
862 case 'B': // 1 string to match.
863 if (memcmp(RuleIdentifier.data()+12, "MinusC", 6) != 0)
864 break;
865 return 7; // "AMinusBPlusBMinusC"
866 case 'C': // 1 string to match.
867 if (memcmp(RuleIdentifier.data()+12, "MinusA", 6) != 0)
868 break;
869 return 6; // "AMinusBPlusCMinusA"
870 }
871 break;
872 case 'P': // 1 string to match.
873 if (memcmp(RuleIdentifier.data()+2, "lusBMinusCMinusB", 16) != 0)
874 break;
875 return 0; // "APlusBMinusCMinusB"
876 }
877 break;
878 case 'b': // 1 string to match.
879 if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
880 break;
881 return 93; // "binop_left_to_zero"
882 case 'c': // 3 strings to match.
883 if (RuleIdentifier[1] != 'o')
884 break;
885 switch (RuleIdentifier[2]) {
886 default: break;
887 case 'm': // 1 string to match.
888 if (memcmp(RuleIdentifier.data()+3, "bine_minmax_nan", 15) != 0)
889 break;
890 return 171; // "combine_minmax_nan"
891 case 'n': // 2 strings to match.
892 if (memcmp(RuleIdentifier.data()+3, "stant_fold_f", 12) != 0)
893 break;
894 switch (RuleIdentifier[15]) {
895 default: break;
896 case 'a': // 1 string to match.
897 if (memcmp(RuleIdentifier.data()+16, "bs", 2) != 0)
898 break;
899 return 152; // "constant_fold_fabs"
900 case 'n': // 1 string to match.
901 if (memcmp(RuleIdentifier.data()+16, "eg", 2) != 0)
902 break;
903 return 151; // "constant_fold_fneg"
904 }
905 break;
906 }
907 break;
908 case 'e': // 1 string to match.
909 if (memcmp(RuleIdentifier.data()+1, "xpand_const_fpowi", 17) != 0)
910 break;
911 return 172; // "expand_const_fpowi"
912 case 'f': // 1 string to match.
913 if (memcmp(RuleIdentifier.data()+1, "ptrunc_fpext_fold", 17) != 0)
914 break;
915 return 107; // "fptrunc_fpext_fold"
916 case 's': // 2 strings to match.
917 if (RuleIdentifier[1] != 'e')
918 break;
919 switch (RuleIdentifier[2]) {
920 default: break;
921 case 'l': // 1 string to match.
922 if (memcmp(RuleIdentifier.data()+3, "ect_of_truncate", 15) != 0)
923 break;
924 return 61; // "select_of_truncate"
925 case 'x': // 1 string to match.
926 if (memcmp(RuleIdentifier.data()+3, "t_inreg_of_load", 15) != 0)
927 break;
928 return 127; // "sext_inreg_of_load"
929 }
930 break;
931 case 't': // 1 string to match.
932 if (memcmp(RuleIdentifier.data()+1, "runcate_of_anyext", 17) != 0)
933 break;
934 return 50; // "truncate_of_anyext"
935 }
936 break;
937 case 19: // 18 strings to match.
938 switch (RuleIdentifier[0]) {
939 default: break;
940 case 'A': // 1 string to match.
941 if (memcmp(RuleIdentifier.data()+1, "MinusBMinusCMinusC", 18) != 0)
942 break;
943 return 1; // "AMinusBMinusCMinusC"
944 case 'b': // 1 string to match.
945 if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
946 break;
947 return 94; // "binop_right_to_zero"
948 case 'c': // 7 strings to match.
949 if (memcmp(RuleIdentifier.data()+1, "onst", 4) != 0)
950 break;
951 switch (RuleIdentifier[5]) {
952 default: break;
953 case '_': // 1 string to match.
954 if (memcmp(RuleIdentifier.data()+6, "ptradd_to_i2p", 13) != 0)
955 break;
956 return 166; // "const_ptradd_to_i2p"
957 case 'a': // 6 strings to match.
958 if (memcmp(RuleIdentifier.data()+6, "nt_fold_", 8) != 0)
959 break;
960 switch (RuleIdentifier[14]) {
961 default: break;
962 case 'b': // 1 string to match.
963 if (memcmp(RuleIdentifier.data()+15, "inop", 4) != 0)
964 break;
965 return 194; // "constant_fold_binop"
966 case 'f': // 5 strings to match.
967 switch (RuleIdentifier[15]) {
968 default: break;
969 case 'c': // 1 string to match.
970 if (memcmp(RuleIdentifier.data()+16, "eil", 3) != 0)
971 break;
972 return 157; // "constant_fold_fceil"
973 case 'l': // 1 string to match.
974 if (memcmp(RuleIdentifier.data()+16, "og2", 3) != 0)
975 break;
976 return 154; // "constant_fold_flog2"
977 case 'p': // 1 string to match.
978 if (memcmp(RuleIdentifier.data()+16, "ext", 3) != 0)
979 break;
980 return 156; // "constant_fold_fpext"
981 case 'r': // 1 string to match.
982 if (memcmp(RuleIdentifier.data()+16, "int", 3) != 0)
983 break;
984 return 162; // "constant_fold_frint"
985 case 's': // 1 string to match.
986 if (memcmp(RuleIdentifier.data()+16, "qrt", 3) != 0)
987 break;
988 return 153; // "constant_fold_fsqrt"
989 }
990 break;
991 }
992 break;
993 }
994 break;
995 case 'e': // 1 string to match.
996 if (memcmp(RuleIdentifier.data()+1, "xtend_through_phis", 18) != 0)
997 break;
998 return 111; // "extend_through_phis"
999 case 'i': // 1 string to match.
1000 if (memcmp(RuleIdentifier.data()+1, "nteger_of_truncate", 18) != 0)
1001 break;
1002 return 69; // "integer_of_truncate"
1003 case 'm': // 1 string to match.
1004 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_zero", 18) != 0)
1005 break;
1006 return 254; // "merge_of_x_and_zero"
1007 case 'p': // 1 string to match.
1008 if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
1009 break;
1010 return 117; // "ptr_add_immed_chain"
1011 case 'r': // 2 strings to match.
1012 switch (RuleIdentifier[1]) {
1013 default: break;
1014 case 'e': // 1 string to match.
1015 if (memcmp(RuleIdentifier.data()+2, "assoc_comm_binops", 17) != 0)
1016 break;
1017 return 116; // "reassoc_comm_binops"
1018 case 'i': // 1 string to match.
1019 if (memcmp(RuleIdentifier.data()+2, "ght_identity_zero", 17) != 0)
1020 break;
1021 return 90; // "right_identity_zero"
1022 }
1023 break;
1024 case 's': // 2 strings to match.
1025 if (memcmp(RuleIdentifier.data()+1, "implify_", 8) != 0)
1026 break;
1027 switch (RuleIdentifier[9]) {
1028 default: break;
1029 case 'a': // 1 string to match.
1030 if (memcmp(RuleIdentifier.data()+10, "dd_to_sub", 9) != 0)
1031 break;
1032 return 112; // "simplify_add_to_sub"
1033 case 'n': // 1 string to match.
1034 if (memcmp(RuleIdentifier.data()+10, "eg_minmax", 9) != 0)
1035 break;
1036 return 237; // "simplify_neg_minmax"
1037 }
1038 break;
1039 case 'u': // 1 string to match.
1040 if (memcmp(RuleIdentifier.data()+1, "nary_undef_to_zero", 18) != 0)
1041 break;
1042 return 81; // "unary_undef_to_zero"
1043 }
1044 break;
1045 case 20: // 9 strings to match.
1046 switch (RuleIdentifier[0]) {
1047 default: break;
1048 case 'a': // 1 string to match.
1049 if (memcmp(RuleIdentifier.data()+1, "nd_or_disjoint_mask", 19) != 0)
1050 break;
1051 return 206; // "and_or_disjoint_mask"
1052 case 'b': // 1 string to match.
1053 if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold", 19) != 0)
1054 break;
1055 return 105; // "bitcast_bitcast_fold"
1056 case 'c': // 1 string to match.
1057 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_ffloor", 19) != 0)
1058 break;
1059 return 158; // "constant_fold_ffloor"
1060 case 'm': // 1 string to match.
1061 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_undef", 19) != 0)
1062 break;
1063 return 253; // "merge_of_x_and_undef"
1064 case 'o': // 1 string to match.
1065 if (memcmp(RuleIdentifier.data()+1, "r_and_xor_to_xor_or", 19) != 0)
1066 break;
1067 return 232; // "or_and_xor_to_xor_or"
1068 case 'r': // 2 strings to match.
1069 if (memcmp(RuleIdentifier.data()+1, "edu", 3) != 0)
1070 break;
1071 switch (RuleIdentifier[4]) {
1072 default: break;
1073 case 'c': // 1 string to match.
1074 if (memcmp(RuleIdentifier.data()+5, "e_shl_of_extend", 15) != 0)
1075 break;
1076 return 128; // "reduce_shl_of_extend"
1077 case 'n': // 1 string to match.
1078 if (memcmp(RuleIdentifier.data()+5, "dant_sext_inreg", 15) != 0)
1079 break;
1080 return 138; // "redundant_sext_inreg"
1081 }
1082 break;
1083 case 'u': // 2 strings to match.
1084 if (RuleIdentifier[1] != 'n')
1085 break;
1086 switch (RuleIdentifier[2]) {
1087 default: break;
1088 case 'a': // 1 string to match.
1089 if (memcmp(RuleIdentifier.data()+3, "ry_undef_to_undef", 17) != 0)
1090 break;
1091 return 82; // "unary_undef_to_undef"
1092 case 'm': // 1 string to match.
1093 if (memcmp(RuleIdentifier.data()+3, "erge_zext_to_zext", 17) != 0)
1094 break;
1095 return 252; // "unmerge_zext_to_zext"
1096 }
1097 break;
1098 }
1099 break;
1100 case 21: // 12 strings to match.
1101 switch (RuleIdentifier[0]) {
1102 default: break;
1103 case 'a': // 1 string to match.
1104 if (memcmp(RuleIdentifier.data()+1, "nd_xor_or_to_xor_and", 20) != 0)
1105 break;
1106 return 234; // "and_xor_or_to_xor_and"
1107 case 'c': // 4 strings to match.
1108 if (RuleIdentifier[1] != 'o')
1109 break;
1110 switch (RuleIdentifier[2]) {
1111 default: break;
1112 case 'm': // 2 strings to match.
1113 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1114 break;
1115 switch (RuleIdentifier[8]) {
1116 default: break;
1117 case 'b': // 1 string to match.
1118 if (memcmp(RuleIdentifier.data()+9, "uild_unmerge", 12) != 0)
1119 break;
1120 return 255; // "combine_build_unmerge"
1121 case 'c': // 1 string to match.
1122 if (memcmp(RuleIdentifier.data()+9, "oncat_vector", 12) != 0)
1123 break;
1124 return 238; // "combine_concat_vector"
1125 }
1126 break;
1127 case 'n': // 2 strings to match.
1128 if (memcmp(RuleIdentifier.data()+3, "stant_fold_", 11) != 0)
1129 break;
1130 switch (RuleIdentifier[14]) {
1131 default: break;
1132 case 'c': // 1 string to match.
1133 if (memcmp(RuleIdentifier.data()+15, "ast_op", 6) != 0)
1134 break;
1135 return 197; // "constant_fold_cast_op"
1136 case 'f': // 1 string to match.
1137 if (memcmp(RuleIdentifier.data()+15, "ptrunc", 6) != 0)
1138 break;
1139 return 155; // "constant_fold_fptrunc"
1140 }
1141 break;
1142 }
1143 break;
1144 case 'f': // 1 string to match.
1145 if (memcmp(RuleIdentifier.data()+1, "div_repeated_divison", 20) != 0)
1146 break;
1147 return 223; // "fdiv_repeated_divison"
1148 case 'i': // 1 string to match.
1149 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_elt_oob", 20) != 0)
1150 break;
1151 return 29; // "insert_vector_elt_oob"
1152 case 'l': // 1 string to match.
1153 if (memcmp(RuleIdentifier.data()+1, "shr_of_trunc_of_lshr", 20) != 0)
1154 break;
1155 return 262; // "lshr_of_trunc_of_lshr"
1156 case 'r': // 1 string to match.
1157 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
1158 break;
1159 return 100; // "right_identity_one_fp"
1160 case 's': // 1 string to match.
1161 if (memcmp(RuleIdentifier.data()+1, "elect_same_val_equiv", 20) != 0)
1162 break;
1163 return 89; // "select_same_val_equiv"
1164 case 'u': // 2 strings to match.
1165 if (RuleIdentifier[1] != 'n')
1166 break;
1167 switch (RuleIdentifier[2]) {
1168 default: break;
1169 case 'd': // 1 string to match.
1170 if (memcmp(RuleIdentifier.data()+3, "ef_to_negative_one", 18) != 0)
1171 break;
1172 return 78; // "undef_to_negative_one"
1173 case 'm': // 1 string to match.
1174 if (memcmp(RuleIdentifier.data()+3, "erge_dead_to_trunc", 18) != 0)
1175 break;
1176 return 251; // "unmerge_dead_to_trunc"
1177 }
1178 break;
1179 }
1180 break;
1181 case 22: // 12 strings to match.
1182 switch (RuleIdentifier[0]) {
1183 default: break;
1184 case 'c': // 2 strings to match.
1185 if (RuleIdentifier[1] != 'o')
1186 break;
1187 switch (RuleIdentifier[2]) {
1188 default: break;
1189 case 'm': // 1 string to match.
1190 if (memcmp(RuleIdentifier.data()+3, "bine_shuffle_concat", 19) != 0)
1191 break;
1192 return 242; // "combine_shuffle_concat"
1193 case 'n': // 1 string to match.
1194 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fp_binop", 19) != 0)
1195 break;
1196 return 195; // "constant_fold_fp_binop"
1197 }
1198 break;
1199 case 'f': // 4 strings to match.
1200 switch (RuleIdentifier[1]) {
1201 default: break;
1202 case 'o': // 1 string to match.
1203 if (memcmp(RuleIdentifier.data()+2, "ld_binop_into_select", 20) != 0)
1204 break;
1205 return 215; // "fold_binop_into_select"
1206 case 'u': // 3 strings to match.
1207 if (memcmp(RuleIdentifier.data()+2, "nnel_shift_", 11) != 0)
1208 break;
1209 switch (RuleIdentifier[13]) {
1210 default: break;
1211 case 'l': // 1 string to match.
1212 if (memcmp(RuleIdentifier.data()+14, "eft_zero", 8) != 0)
1213 break;
1214 return 182; // "funnel_shift_left_zero"
1215 case 'o': // 1 string to match.
1216 if (memcmp(RuleIdentifier.data()+14, "vershift", 8) != 0)
1217 break;
1218 return 183; // "funnel_shift_overshift"
1219 case 't': // 1 string to match.
1220 if (memcmp(RuleIdentifier.data()+14, "o_rotate", 8) != 0)
1221 break;
1222 return 180; // "funnel_shift_to_rotate"
1223 }
1224 break;
1225 }
1226 break;
1227 case 'i': // 1 string to match.
1228 if (memcmp(RuleIdentifier.data()+1, "cmp_to_lhs_known_bits", 21) != 0)
1229 break;
1230 return 121; // "icmp_to_lhs_known_bits"
1231 case 'm': // 1 string to match.
1232 if (memcmp(RuleIdentifier.data()+1, "atch_subo_no_overflow", 21) != 0)
1233 break;
1234 return 257; // "match_subo_no_overflow"
1235 case 'p': // 1 string to match.
1236 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_any_op", 21) != 0)
1237 break;
1238 return 83; // "propagate_undef_any_op"
1239 case 'r': // 1 string to match.
1240 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_int", 21) != 0)
1241 break;
1242 return 99; // "right_identity_one_int"
1243 case 's': // 1 string to match.
1244 if (memcmp(RuleIdentifier.data()+1, "hl_ashr_to_sext_inreg", 21) != 0)
1245 break;
1246 return 125; // "shl_ashr_to_sext_inreg"
1247 case 't': // 1 string to match.
1248 if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold", 21) != 0)
1249 break;
1250 return 103; // "trunc_buildvector_fold"
1251 }
1252 break;
1253 case 23: // 7 strings to match.
1254 switch (RuleIdentifier[0]) {
1255 default: break;
1256 case 'b': // 1 string to match.
1257 if (memcmp(RuleIdentifier.data()+1, "uildvector_of_truncate", 22) != 0)
1258 break;
1259 return 62; // "buildvector_of_truncate"
1260 case 'f': // 1 string to match.
1261 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_right_zero", 22) != 0)
1262 break;
1263 return 181; // "funnel_shift_right_zero"
1264 case 'i': // 2 strings to match.
1265 if (memcmp(RuleIdentifier.data()+1, "tof_const_zero_fold_", 20) != 0)
1266 break;
1267 switch (RuleIdentifier[21]) {
1268 default: break;
1269 case 's': // 1 string to match.
1270 if (RuleIdentifier[22] != 'i')
1271 break;
1272 return 164; // "itof_const_zero_fold_si"
1273 case 'u': // 1 string to match.
1274 if (RuleIdentifier[22] != 'i')
1275 break;
1276 return 165; // "itof_const_zero_fold_ui"
1277 }
1278 break;
1279 case 'p': // 1 string to match.
1280 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_all_ops", 22) != 0)
1281 break;
1282 return 84; // "propagate_undef_all_ops"
1283 case 's': // 1 string to match.
1284 if (memcmp(RuleIdentifier.data()+1, "elect_same_val_trivial", 22) != 0)
1285 break;
1286 return 88; // "select_same_val_trivial"
1287 case 't': // 1 string to match.
1288 if (memcmp(RuleIdentifier.data()+1, "runcusatu_to_fptouisat", 22) != 0)
1289 break;
1290 return 261; // "truncusatu_to_fptouisat"
1291 }
1292 break;
1293 case 24: // 11 strings to match.
1294 switch (RuleIdentifier[0]) {
1295 default: break;
1296 case 'b': // 1 string to match.
1297 if (memcmp(RuleIdentifier.data()+1, "inop_left_undef_to_zero", 23) != 0)
1298 break;
1299 return 79; // "binop_left_undef_to_zero"
1300 case 'c': // 4 strings to match.
1301 switch (RuleIdentifier[1]) {
1302 default: break;
1303 case 'o': // 1 string to match.
1304 if (memcmp(RuleIdentifier.data()+2, "nstant_fold_fnearbyint", 22) != 0)
1305 break;
1306 return 163; // "constant_fold_fnearbyint"
1307 case 't': // 3 strings to match.
1308 switch (RuleIdentifier[2]) {
1309 default: break;
1310 case 'l': // 2 strings to match.
1311 if (memcmp(RuleIdentifier.data()+3, "z_", 2) != 0)
1312 break;
1313 switch (RuleIdentifier[5]) {
1314 default: break;
1315 case 't': // 1 string to match.
1316 if (memcmp(RuleIdentifier.data()+6, "o_ctlz_zero_poison", 18) != 0)
1317 break;
1318 return 265; // "ctlz_to_ctlz_zero_poison"
1319 case 'z': // 1 string to match.
1320 if (memcmp(RuleIdentifier.data()+6, "ero_poison_to_ctls", 18) != 0)
1321 break;
1322 return 264; // "ctlz_zero_poison_to_ctls"
1323 }
1324 break;
1325 case 't': // 1 string to match.
1326 if (memcmp(RuleIdentifier.data()+3, "z_to_cttz_zero_poison", 21) != 0)
1327 break;
1328 return 266; // "cttz_to_cttz_zero_poison"
1329 }
1330 break;
1331 }
1332 break;
1333 case 'm': // 1 string to match.
1334 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element", 23) != 0)
1335 break;
1336 return 28; // "match_extract_of_element"
1337 case 'n': // 1 string to match.
1338 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_feeding_and", 23) != 0)
1339 break;
1340 return 129; // "narrow_binop_feeding_and"
1341 case 's': // 3 strings to match.
1342 if (RuleIdentifier[1] != 'e')
1343 break;
1344 switch (RuleIdentifier[2]) {
1345 default: break;
1346 case 'l': // 1 string to match.
1347 if (memcmp(RuleIdentifier.data()+3, "ect_constant_cmp_true", 21) != 0)
1348 break;
1349 return 132; // "select_constant_cmp_true"
1350 case 'x': // 2 strings to match.
1351 if (memcmp(RuleIdentifier.data()+3, "t_inreg_", 8) != 0)
1352 break;
1353 switch (RuleIdentifier[11]) {
1354 default: break;
1355 case 'o': // 1 string to match.
1356 if (memcmp(RuleIdentifier.data()+12, "f_sext_inreg", 12) != 0)
1357 break;
1358 return 58; // "sext_inreg_of_sext_inreg"
1359 case 't': // 1 string to match.
1360 if (memcmp(RuleIdentifier.data()+12, "o_zext_inreg", 12) != 0)
1361 break;
1362 return 147; // "sext_inreg_to_zext_inreg"
1363 }
1364 break;
1365 }
1366 break;
1367 case 'x': // 1 string to match.
1368 if (memcmp(RuleIdentifier.data()+1, "or_of_and_with_same_reg", 23) != 0)
1369 break;
1370 return 173; // "xor_of_and_with_same_reg"
1371 }
1372 break;
1373 case 25: // 10 strings to match.
1374 switch (RuleIdentifier[0]) {
1375 default: break;
1376 case 'b': // 3 strings to match.
1377 switch (RuleIdentifier[1]) {
1378 default: break;
1379 case 'i': // 2 strings to match.
1380 if (memcmp(RuleIdentifier.data()+2, "tfield_extract_from_", 20) != 0)
1381 break;
1382 switch (RuleIdentifier[22]) {
1383 default: break;
1384 case 'a': // 1 string to match.
1385 if (memcmp(RuleIdentifier.data()+23, "nd", 2) != 0)
1386 break;
1387 return 191; // "bitfield_extract_from_and"
1388 case 's': // 1 string to match.
1389 if (memcmp(RuleIdentifier.data()+23, "hr", 2) != 0)
1390 break;
1391 return 192; // "bitfield_extract_from_shr"
1392 }
1393 break;
1394 case 'u': // 1 string to match.
1395 if (memcmp(RuleIdentifier.data()+2, "ildvector_identity_fold", 23) != 0)
1396 break;
1397 return 102; // "buildvector_identity_fold"
1398 }
1399 break;
1400 case 'c': // 1 string to match.
1401 if (memcmp(RuleIdentifier.data()+1, "ombine_shuffle_undef_rhs", 24) != 0)
1402 break;
1403 return 243; // "combine_shuffle_undef_rhs"
1404 case 'e': // 1 string to match.
1405 if (memcmp(RuleIdentifier.data()+1, "xtract_vec_elt_build_vec", 24) != 0)
1406 break;
1407 return 71; // "extract_vec_elt_build_vec"
1408 case 'n': // 1 string to match.
1409 if (memcmp(RuleIdentifier.data()+1, "eg_and_one_to_sext_inreg", 24) != 0)
1410 break;
1411 return 126; // "neg_and_one_to_sext_inreg"
1412 case 'r': // 3 strings to match.
1413 switch (RuleIdentifier[1]) {
1414 default: break;
1415 case 'e': // 2 strings to match.
1416 if (memcmp(RuleIdentifier.data()+2, "dundant_", 8) != 0)
1417 break;
1418 switch (RuleIdentifier[10]) {
1419 default: break;
1420 case 'a': // 1 string to match.
1421 if (memcmp(RuleIdentifier.data()+11, "ext_sext_inreg", 14) != 0)
1422 break;
1423 return 140; // "redundant_aext_sext_inreg"
1424 case 'z': // 1 string to match.
1425 if (memcmp(RuleIdentifier.data()+11, "ext_sext_inreg", 14) != 0)
1426 break;
1427 return 139; // "redundant_zext_sext_inreg"
1428 }
1429 break;
1430 case 'i': // 1 string to match.
1431 if (memcmp(RuleIdentifier.data()+2, "ght_identity_neg_one_fp", 23) != 0)
1432 break;
1433 return 110; // "right_identity_neg_one_fp"
1434 }
1435 break;
1436 case 's': // 1 string to match.
1437 if (memcmp(RuleIdentifier.data()+1, "elect_constant_cmp_false", 24) != 0)
1438 break;
1439 return 131; // "select_constant_cmp_false"
1440 }
1441 break;
1442 case 26: // 6 strings to match.
1443 switch (RuleIdentifier[0]) {
1444 default: break;
1445 case 'b': // 2 strings to match.
1446 if (RuleIdentifier[1] != 'i')
1447 break;
1448 switch (RuleIdentifier[2]) {
1449 default: break;
1450 case 'n': // 1 string to match.
1451 if (memcmp(RuleIdentifier.data()+3, "op_right_undef_to_undef", 23) != 0)
1452 break;
1453 return 80; // "binop_right_undef_to_undef"
1454 case 't': // 1 string to match.
1455 if (memcmp(RuleIdentifier.data()+3, "cast_bitcast_to_bitcast", 23) != 0)
1456 break;
1457 return 106; // "bitcast_bitcast_to_bitcast"
1458 }
1459 break;
1460 case 'c': // 2 strings to match.
1461 if (RuleIdentifier[1] != 'o')
1462 break;
1463 switch (RuleIdentifier[2]) {
1464 default: break;
1465 case 'm': // 1 string to match.
1466 if (memcmp(RuleIdentifier.data()+3, "mute_fp_constant_to_rhs", 23) != 0)
1467 break;
1468 return 228; // "commute_fp_constant_to_rhs"
1469 case 'n': // 1 string to match.
1470 if (memcmp(RuleIdentifier.data()+3, "stant_fold_unary_int_op", 23) != 0)
1471 break;
1472 return 198; // "constant_fold_unary_int_op"
1473 }
1474 break;
1475 case 'f': // 1 string to match.
1476 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_from_or_shift", 25) != 0)
1477 break;
1478 return 179; // "funnel_shift_from_or_shift"
1479 case 'r': // 1 string to match.
1480 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp", 25) != 0)
1481 break;
1482 return 108; // "right_identity_neg_zero_fp"
1483 }
1484 break;
1485 case 27: // 7 strings to match.
1486 switch (RuleIdentifier[0]) {
1487 default: break;
1488 case 'c': // 2 strings to match.
1489 if (memcmp(RuleIdentifier.data()+1, "om", 2) != 0)
1490 break;
1491 switch (RuleIdentifier[3]) {
1492 default: break;
1493 case 'b': // 1 string to match.
1494 if (memcmp(RuleIdentifier.data()+4, "ine_use_vector_truncate", 23) != 0)
1495 break;
1496 return 245; // "combine_use_vector_truncate"
1497 case 'm': // 1 string to match.
1498 if (memcmp(RuleIdentifier.data()+4, "ute_int_constant_to_rhs", 23) != 0)
1499 break;
1500 return 227; // "commute_int_constant_to_rhs"
1501 }
1502 break;
1503 case 'd': // 1 string to match.
1504 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_or_combine", 26) != 0)
1505 break;
1506 return 123; // "double_icmp_zero_or_combine"
1507 case 'r': // 1 string to match.
1508 if (memcmp(RuleIdentifier.data()+1, "edundant_binop_in_equality", 26) != 0)
1509 break;
1510 return 124; // "redundant_binop_in_equality"
1511 case 's': // 1 string to match.
1512 if (memcmp(RuleIdentifier.data()+1, "elect_constant_cmp_general", 26) != 0)
1513 break;
1514 return 133; // "select_constant_cmp_general"
1515 case 't': // 1 string to match.
1516 if (memcmp(RuleIdentifier.data()+1, "runc_lshr_buildvector_fold", 26) != 0)
1517 break;
1518 return 104; // "trunc_lshr_buildvector_fold"
1519 case 'u': // 1 string to match.
1520 if (memcmp(RuleIdentifier.data()+1, "nmerge_anyext_build_vector", 26) != 0)
1521 break;
1522 return 246; // "unmerge_anyext_build_vector"
1523 }
1524 break;
1525 case 28: // 5 strings to match.
1526 switch (RuleIdentifier[0]) {
1527 default: break;
1528 case 'd': // 1 string to match.
1529 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_and_combine", 27) != 0)
1530 break;
1531 return 122; // "double_icmp_zero_and_combine"
1532 case 'e': // 1 string to match.
1533 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_undef", 27) != 0)
1534 break;
1535 return 25; // "extract_vector_element_undef"
1536 case 'o': // 1 string to match.
1537 if (memcmp(RuleIdentifier.data()+1, "pt_brcond_by_inverting_cond", 27) != 0)
1538 break;
1539 return 150; // "opt_brcond_by_inverting_cond"
1540 case 'p': // 1 string to match.
1541 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_shuffle_mask", 27) != 0)
1542 break;
1543 return 85; // "propagate_undef_shuffle_mask"
1544 case 's': // 1 string to match.
1545 if (memcmp(RuleIdentifier.data()+1, "hift_of_shifted_logic_chain", 27) != 0)
1546 break;
1547 return 176; // "shift_of_shifted_logic_chain"
1548 }
1549 break;
1550 case 29: // 6 strings to match.
1551 switch (RuleIdentifier[0]) {
1552 default: break;
1553 case 'b': // 1 string to match.
1554 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_shr_and", 28) != 0)
1555 break;
1556 return 193; // "bitfield_extract_from_shr_and"
1557 case 'c': // 4 strings to match.
1558 if (RuleIdentifier[1] != 'o')
1559 break;
1560 switch (RuleIdentifier[2]) {
1561 default: break;
1562 case 'm': // 2 strings to match.
1563 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1564 break;
1565 switch (RuleIdentifier[8]) {
1566 default: break;
1567 case 'e': // 1 string to match.
1568 if (memcmp(RuleIdentifier.data()+9, "xtracted_vector_load", 20) != 0)
1569 break;
1570 return 75; // "combine_extracted_vector_load"
1571 case 's': // 1 string to match.
1572 if (memcmp(RuleIdentifier.data()+9, "huffle_disjoint_mask", 20) != 0)
1573 break;
1574 return 244; // "combine_shuffle_disjoint_mask"
1575 }
1576 break;
1577 case 'n': // 2 strings to match.
1578 if (memcmp(RuleIdentifier.data()+3, "stant_fold_intrinsic_", 21) != 0)
1579 break;
1580 switch (RuleIdentifier[24]) {
1581 default: break;
1582 case 'r': // 1 string to match.
1583 if (memcmp(RuleIdentifier.data()+25, "ound", 4) != 0)
1584 break;
1585 return 160; // "constant_fold_intrinsic_round"
1586 case 't': // 1 string to match.
1587 if (memcmp(RuleIdentifier.data()+25, "runc", 4) != 0)
1588 break;
1589 return 159; // "constant_fold_intrinsic_trunc"
1590 }
1591 break;
1592 }
1593 break;
1594 case 'i': // 1 string to match.
1595 if (memcmp(RuleIdentifier.data()+1, "cmp_to_true_false_known_bits", 28) != 0)
1596 break;
1597 return 120; // "icmp_to_true_false_known_bits"
1598 }
1599 break;
1600 case 30: // 2 strings to match.
1601 switch (RuleIdentifier[0]) {
1602 default: break;
1603 case 'f': // 1 string to match.
1604 if (memcmp(RuleIdentifier.data()+1, "reeze_of_non_undef_non_poison", 29) != 0)
1605 break;
1606 return 46; // "freeze_of_non_undef_non_poison"
1607 case 'r': // 1 string to match.
1608 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp_nsz", 29) != 0)
1609 break;
1610 return 109; // "right_identity_neg_zero_fp_nsz"
1611 }
1612 break;
1613 case 31: // 2 strings to match.
1614 if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_", 22) != 0)
1615 break;
1616 switch (RuleIdentifier[22]) {
1617 default: break;
1618 case 'e': // 1 string to match.
1619 if (memcmp(RuleIdentifier.data()+23, "lt_undef", 8) != 0)
1620 break;
1621 return 27; // "insert_vector_element_elt_undef"
1622 case 'i': // 1 string to match.
1623 if (memcmp(RuleIdentifier.data()+23, "dx_undef", 8) != 0)
1624 break;
1625 return 26; // "insert_vector_element_idx_undef"
1626 }
1627 break;
1628 case 32: // 5 strings to match.
1629 switch (RuleIdentifier[0]) {
1630 default: break;
1631 case 'b': // 1 string to match.
1632 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_sext_inreg", 31) != 0)
1633 break;
1634 return 190; // "bitfield_extract_from_sext_inreg"
1635 case 'c': // 2 strings to match.
1636 if (memcmp(RuleIdentifier.data()+1, "ombine_f", 8) != 0)
1637 break;
1638 switch (RuleIdentifier[9]) {
1639 default: break;
1640 case 'a': // 1 string to match.
1641 if (memcmp(RuleIdentifier.data()+10, "dd_fmul_to_fmad_or_fma", 22) != 0)
1642 break;
1643 return 207; // "combine_fadd_fmul_to_fmad_or_fma"
1644 case 's': // 1 string to match.
1645 if (memcmp(RuleIdentifier.data()+10, "ub_fmul_to_fmad_or_fma", 22) != 0)
1646 break;
1647 return 211; // "combine_fsub_fmul_to_fmad_or_fma"
1648 }
1649 break;
1650 case 'e': // 1 string to match.
1651 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_not_const", 31) != 0)
1652 break;
1653 return 30; // "extract_vector_element_not_const"
1654 case 'r': // 1 string to match.
1655 if (memcmp(RuleIdentifier.data()+1, "edundant_neg_operands_fadd_fsub", 31) != 0)
1656 break;
1657 return 201; // "redundant_neg_operands_fadd_fsub"
1658 }
1659 break;
1660 case 33: // 3 strings to match.
1661 switch (RuleIdentifier[0]) {
1662 default: break;
1663 case 'c': // 1 string to match.
1664 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_intrinsic_roundeven", 32) != 0)
1665 break;
1666 return 161; // "constant_fold_intrinsic_roundeven"
1667 case 'r': // 2 strings to match.
1668 if (memcmp(RuleIdentifier.data()+1, "edundant_", 9) != 0)
1669 break;
1670 switch (RuleIdentifier[10]) {
1671 default: break;
1672 case 'a': // 1 string to match.
1673 if (memcmp(RuleIdentifier.data()+11, "ext_unmerge_sext_inreg", 22) != 0)
1674 break;
1675 return 142; // "redundant_aext_unmerge_sext_inreg"
1676 case 'z': // 1 string to match.
1677 if (memcmp(RuleIdentifier.data()+11, "ext_unmerge_sext_inreg", 22) != 0)
1678 break;
1679 return 141; // "redundant_zext_unmerge_sext_inreg"
1680 }
1681 break;
1682 }
1683 break;
1684 case 34: // 1 string to match.
1685 if (memcmp(RuleIdentifier.data()+0, "extract_all_elts_from_build_vector", 34) != 0)
1686 break;
1687 return 72; // "extract_all_elts_from_build_vector"
1688 case 35: // 1 string to match.
1689 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_build_vector", 35) != 0)
1690 break;
1691 return 32; // "extract_vector_element_build_vector"
1692 case 36: // 3 strings to match.
1693 switch (RuleIdentifier[0]) {
1694 default: break;
1695 case 'c': // 2 strings to match.
1696 if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
1697 break;
1698 switch (RuleIdentifier[8]) {
1699 default: break;
1700 case 'f': // 1 string to match.
1701 if (memcmp(RuleIdentifier.data()+9, "add_fma_fmul_to_fmad_or_fma", 27) != 0)
1702 break;
1703 return 209; // "combine_fadd_fma_fmul_to_fmad_or_fma"
1704 case 'i': // 1 string to match.
1705 if (memcmp(RuleIdentifier.data()+9, "nsert_vec_elts_build_vector", 27) != 0)
1706 break;
1707 return 70; // "combine_insert_vec_elts_build_vector"
1708 }
1709 break;
1710 case 'i': // 1 string to match.
1711 if (memcmp(RuleIdentifier.data()+1, "nsert_extract_vec_elt_out_of_bounds", 35) != 0)
1712 break;
1713 return 87; // "insert_extract_vec_elt_out_of_bounds"
1714 }
1715 break;
1716 case 37: // 3 strings to match.
1717 switch (RuleIdentifier[0]) {
1718 default: break;
1719 case 'c': // 1 string to match.
1720 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fneg_fmul_to_fmad_or_fma", 36) != 0)
1721 break;
1722 return 212; // "combine_fsub_fneg_fmul_to_fmad_or_fma"
1723 case 'e': // 1 string to match.
1724 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_shuffle_vector", 36) != 0)
1725 break;
1726 return 40; // "extract_vector_element_shuffle_vector"
1727 case 'h': // 1 string to match.
1728 if (memcmp(RuleIdentifier.data()+1, "oist_logic_op_with_same_opcode_hands", 36) != 0)
1729 break;
1730 return 113; // "hoist_logic_op_with_same_opcode_hands"
1731 }
1732 break;
1733 case 38: // 2 strings to match.
1734 if (memcmp(RuleIdentifier.data()+0, "combine_f", 9) != 0)
1735 break;
1736 switch (RuleIdentifier[9]) {
1737 default: break;
1738 case 'a': // 1 string to match.
1739 if (memcmp(RuleIdentifier.data()+10, "dd_fpext_fmul_to_fmad_or_fma", 28) != 0)
1740 break;
1741 return 208; // "combine_fadd_fpext_fmul_to_fmad_or_fma"
1742 case 's': // 1 string to match.
1743 if (memcmp(RuleIdentifier.data()+10, "ub_fpext_fmul_to_fmad_or_fma", 28) != 0)
1744 break;
1745 return 213; // "combine_fsub_fpext_fmul_to_fmad_or_fma"
1746 }
1747 break;
1748 case 40: // 1 string to match.
1749 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_different_indices", 40) != 0)
1750 break;
1751 return 31; // "extract_vector_element_different_indices"
1752 case 42: // 9 strings to match.
1753 switch (RuleIdentifier[0]) {
1754 default: break;
1755 case 'c': // 1 string to match.
1756 if (memcmp(RuleIdentifier.data()+1, "ombine_fadd_fpext_fma_fmul_to_fmad_or_fma", 41) != 0)
1757 break;
1758 return 210; // "combine_fadd_fpext_fma_fmul_to_fmad_or_fma"
1759 case 'e': // 7 strings to match.
1760 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_build_vector_trunc", 40) != 0)
1761 break;
1762 switch (RuleIdentifier[41]) {
1763 default: break;
1764 case '2': // 1 string to match.
1765 return 33; // "extract_vector_element_build_vector_trunc2"
1766 case '3': // 1 string to match.
1767 return 34; // "extract_vector_element_build_vector_trunc3"
1768 case '4': // 1 string to match.
1769 return 35; // "extract_vector_element_build_vector_trunc4"
1770 case '5': // 1 string to match.
1771 return 36; // "extract_vector_element_build_vector_trunc5"
1772 case '6': // 1 string to match.
1773 return 37; // "extract_vector_element_build_vector_trunc6"
1774 case '7': // 1 string to match.
1775 return 38; // "extract_vector_element_build_vector_trunc7"
1776 case '8': // 1 string to match.
1777 return 39; // "extract_vector_element_build_vector_trunc8"
1778 }
1779 break;
1780 case 'f': // 1 string to match.
1781 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_left", 41) != 0)
1782 break;
1783 return 184; // "funnel_shift_or_shift_to_funnel_shift_left"
1784 }
1785 break;
1786 case 43: // 2 strings to match.
1787 switch (RuleIdentifier[0]) {
1788 default: break;
1789 case 'c': // 1 string to match.
1790 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fpext_fneg_fmul_to_fmad_or_fma", 42) != 0)
1791 break;
1792 return 214; // "combine_fsub_fpext_fneg_fmul_to_fmad_or_fma"
1793 case 'f': // 1 string to match.
1794 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_right", 42) != 0)
1795 break;
1796 return 185; // "funnel_shift_or_shift_to_funnel_shift_right"
1797 }
1798 break;
1799 case 44: // 1 string to match.
1800 if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_extract_vector_element", 44) != 0)
1801 break;
1802 return 41; // "insert_vector_element_extract_vector_element"
1803 case 46: // 1 string to match.
1804 if (memcmp(RuleIdentifier.data()+0, "push_freeze_to_prevent_poison_from_propagating", 46) != 0)
1805 break;
1806 return 47; // "push_freeze_to_prevent_poison_from_propagating"
1807 }
1808#endif // ifndef NDEBUG
1809
1810 return std::nullopt;
1811}
1812static std::optional<std::pair<uint64_t, uint64_t>> getRuleRangeForIdentifier(StringRef RuleIdentifier) {
1813 std::pair<StringRef, StringRef> RangePair = RuleIdentifier.split('-');
1814 if (!RangePair.second.empty()) {
1815 const auto First = getRuleIdxForIdentifier(RangePair.first);
1816 const auto Last = getRuleIdxForIdentifier(RangePair.second);
1817 if (!First || !Last)
1818 return std::nullopt;
1819 if (First >= Last)
1820 report_fatal_error("Beginning of range should be before end of range");
1821 return {{*First, *Last + 1}};
1822 }
1823 if (RangePair.first == "*") {
1824 return {{0, 279}};
1825 }
1826 const auto I = getRuleIdxForIdentifier(RangePair.first);
1827 if (!I)
1828 return std::nullopt;
1829 return {{*I, *I + 1}};
1830}
1831
1832bool RISCVPreLegalizerCombinerImplRuleConfig::setRuleEnabled(StringRef RuleIdentifier) {
1833 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1834 if (!MaybeRange)
1835 return false;
1836 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1837 DisabledRules.reset(I);
1838 return true;
1839}
1840
1841bool RISCVPreLegalizerCombinerImplRuleConfig::setRuleDisabled(StringRef RuleIdentifier) {
1842 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1843 if (!MaybeRange)
1844 return false;
1845 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1846 DisabledRules.set(I);
1847 return true;
1848}
1849
1850static std::vector<std::string> RISCVPreLegalizerCombinerOption;
1851static cl::list<std::string> RISCVPreLegalizerCombinerDisableOption(
1852 "riscvprelegalizercombiner-disable-rule",
1853 cl::desc("Disable one or more combiner rules temporarily in the RISCVPreLegalizerCombiner pass"),
1854 cl::CommaSeparated,
1855 cl::Hidden,
1856 cl::cat(GICombinerOptionCategory),
1857 cl::callback([](const std::string &Str) {
1858 RISCVPreLegalizerCombinerOption.push_back(Str);
1859 }));
1860static cl::list<std::string> RISCVPreLegalizerCombinerOnlyEnableOption(
1861 "riscvprelegalizercombiner-only-enable-rule",
1862 cl::desc("Disable all rules in the RISCVPreLegalizerCombiner pass then re-enable the specified ones"),
1863 cl::Hidden,
1864 cl::cat(GICombinerOptionCategory),
1865 cl::callback([](const std::string &CommaSeparatedArg) {
1866 StringRef Str = CommaSeparatedArg;
1867 RISCVPreLegalizerCombinerOption.push_back("*");
1868 do {
1869 auto X = Str.split(",");
1870 RISCVPreLegalizerCombinerOption.push_back(("!" + X.first).str());
1871 Str = X.second;
1872 } while (!Str.empty());
1873 }));
1874
1875
1876bool RISCVPreLegalizerCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
1877 return !DisabledRules.test(RuleID);
1878}
1879bool RISCVPreLegalizerCombinerImplRuleConfig::parseCommandLineOption() {
1880 for (StringRef Identifier : RISCVPreLegalizerCombinerOption) {
1881 bool Enabled = Identifier.consume_front("!");
1882 if (Enabled && !setRuleEnabled(Identifier))
1883 return false;
1884 if (!Enabled && !setRuleDisabled(Identifier))
1885 return false;
1886 }
1887 return true;
1888}
1889
1890
1891#endif // GET_GICOMBINER_TYPES
1892
1893#ifdef GET_GICOMBINER_TYPES
1894
1895const unsigned MAX_SUBTARGET_PREDICATES = 0;
1896using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
1897
1898#endif // GET_GICOMBINER_TYPES
1899
1900#ifdef GET_GICOMBINER_CLASS_MEMBERS
1901
1902 bool canMatchOpcode(unsigned Opc) const override;
1903 uint32_t getRootFlagsToDrop() const override;
1904
1905#endif // GET_GICOMBINER_CLASS_MEMBERS
1906
1907#ifdef GET_GICOMBINER_CLASS_MEMBERS
1908
1909PredicateBitset AvailableModuleFeatures;
1910mutable PredicateBitset AvailableFunctionFeatures;
1911PredicateBitset getAvailableFeatures() const {
1912 return AvailableModuleFeatures | AvailableFunctionFeatures;
1913}
1914PredicateBitset
1915computeAvailableModuleFeatures(const RISCVSubtarget *Subtarget) const;
1916PredicateBitset
1917computeAvailableFunctionFeatures(const RISCVSubtarget *Subtarget,
1918 const MachineFunction *MF) const;
1919void setupGeneratedPerFunctionState(MachineFunction &MF) override;
1920
1921#endif // GET_GICOMBINER_CLASS_MEMBERS
1922
1923#ifdef GET_GICOMBINER_CLASS_MEMBERS
1924
1925 mutable MatcherState State;
1926 typedef ComplexRendererFns(RISCVPreLegalizerCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
1927 typedef void(RISCVPreLegalizerCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
1928 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
1929 static RISCVPreLegalizerCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
1930 static RISCVPreLegalizerCombinerImpl::CustomRendererFn CustomRenderers[];
1931 bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
1932 bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
1933 bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
1934 const uint8_t *getMatchTable() const override;
1935 bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
1936 bool testMOPredicate_MO(unsigned PredicateID, const MachineOperand &MO, const MatcherState &State) const override;
1937 bool testSimplePredicate(unsigned PredicateID) const override;
1938 bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
1939
1940#endif // GET_GICOMBINER_CLASS_MEMBERS
1941
1942#ifdef GET_GICOMBINER_IMPL
1943
1944// LLT Objects.
1945enum {
1946 GILLT_s1,
1947};
1948const static size_t NumTypeObjects = 1;
1949const static LLT TypeObjects[] = {
1950 LLT::scalar(1),
1951};
1952
1953// Bits for subtarget features that participate in instruction matching.
1954enum SubtargetFeatureBits : uint8_t {
1955};
1956
1957PredicateBitset RISCVPreLegalizerCombinerImpl::
1958computeAvailableModuleFeatures(const RISCVSubtarget *Subtarget) const {
1959 PredicateBitset Features{};
1960 return Features;
1961}
1962
1963void RISCVPreLegalizerCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) {
1964 AvailableFunctionFeatures = computeAvailableFunctionFeatures((const RISCVSubtarget *)&MF.getSubtarget(), &MF);
1965}
1966PredicateBitset RISCVPreLegalizerCombinerImpl::
1967computeAvailableFunctionFeatures(const RISCVSubtarget *Subtarget, const MachineFunction *MF) const {
1968 PredicateBitset Features{};
1969 return Features;
1970}
1971
1972// Feature bitsets.
1973enum {
1974 GIFBS_Invalid,
1975};
1976constexpr static PredicateBitset FeatureBitsets[] {
1977 {}, // GIFBS_Invalid
1978};
1979
1980// ComplexPattern predicates.
1981enum {
1982 GICP_Invalid,
1983};
1984// See constructor for table contents
1985
1986RISCVPreLegalizerCombinerImpl::ComplexMatcherMemFn
1987RISCVPreLegalizerCombinerImpl::ComplexPredicateFns[] = {
1988 nullptr, // GICP_Invalid
1989};
1990
1991enum {
1992 GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
1993 GICXXPred_MI_Predicate_GICombiner1,
1994 GICXXPred_MI_Predicate_GICombiner2,
1995 GICXXPred_MI_Predicate_GICombiner3,
1996 GICXXPred_MI_Predicate_GICombiner4,
1997 GICXXPred_MI_Predicate_GICombiner5,
1998 GICXXPred_MI_Predicate_GICombiner6,
1999 GICXXPred_MI_Predicate_GICombiner7,
2000 GICXXPred_MI_Predicate_GICombiner8,
2001 GICXXPred_MI_Predicate_GICombiner9,
2002 GICXXPred_MI_Predicate_GICombiner10,
2003 GICXXPred_MI_Predicate_GICombiner11,
2004 GICXXPred_MI_Predicate_GICombiner12,
2005 GICXXPred_MI_Predicate_GICombiner13,
2006 GICXXPred_MI_Predicate_GICombiner14,
2007 GICXXPred_MI_Predicate_GICombiner15,
2008 GICXXPred_MI_Predicate_GICombiner16,
2009 GICXXPred_MI_Predicate_GICombiner17,
2010 GICXXPred_MI_Predicate_GICombiner18,
2011 GICXXPred_MI_Predicate_GICombiner19,
2012 GICXXPred_MI_Predicate_GICombiner20,
2013 GICXXPred_MI_Predicate_GICombiner21,
2014 GICXXPred_MI_Predicate_GICombiner22,
2015 GICXXPred_MI_Predicate_GICombiner23,
2016 GICXXPred_MI_Predicate_GICombiner24,
2017 GICXXPred_MI_Predicate_GICombiner25,
2018 GICXXPred_MI_Predicate_GICombiner26,
2019 GICXXPred_MI_Predicate_GICombiner27,
2020 GICXXPred_MI_Predicate_GICombiner28,
2021 GICXXPred_MI_Predicate_GICombiner29,
2022 GICXXPred_MI_Predicate_GICombiner30,
2023 GICXXPred_MI_Predicate_GICombiner31,
2024};
2025bool RISCVPreLegalizerCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
2026 switch (PredicateID) {
2027 case GICXXPred_MI_Predicate_GICombiner0: {
2028 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg());
2029 }
2030 case GICXXPred_MI_Predicate_GICombiner1: {
2031 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg());
2032 }
2033 case GICXXPred_MI_Predicate_GICombiner2: {
2034 return MRI.getType(State.MIs[1]->getOperand(1).getReg()).getScalarSizeInBits() ==
2035 MRI.getType(State.MIs[0]->getOperand(0).getReg()).getScalarSizeInBits();
2036 }
2037 case GICXXPred_MI_Predicate_GICombiner3: {
2038 return isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI);
2039 }
2040 case GICXXPred_MI_Predicate_GICombiner4: {
2041 return isGuaranteedNotToBeUndefOrPoison(State.MIs[0]->getOperand(1).getReg(), MRI);
2042 }
2043 case GICXXPred_MI_Predicate_GICombiner5: {
2044 return Helper.matchUndefShuffleVectorMask(*State.MIs[0]);
2045 }
2046 case GICXXPred_MI_Predicate_GICombiner6: {
2047 return Helper.matchSelectSameVal(*State.MIs[0]);
2048 }
2049 case GICXXPred_MI_Predicate_GICombiner7: {
2050 return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());
2051 }
2052 case GICXXPred_MI_Predicate_GICombiner8: {
2053 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
2054 }
2055 case GICXXPred_MI_Predicate_GICombiner9: {
2056 return MRI.getType(State.MIs[1]->getOperand(1).getReg()) != MRI.getType(State.MIs[0]->getOperand(0).getReg());
2057 }
2058 case GICXXPred_MI_Predicate_GICombiner10: {
2059 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
2060 }
2061 case GICXXPred_MI_Predicate_GICombiner11: {
2062 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 0.0);
2063 }
2064 case GICXXPred_MI_Predicate_GICombiner12: {
2065 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0);
2066 }
2067 case GICXXPred_MI_Predicate_GICombiner13: {
2068 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_EQ &&
2069 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
2070 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
2071 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
2072 }
2073 case GICXXPred_MI_Predicate_GICombiner14: {
2074 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_NE &&
2075 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
2076 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
2077 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
2078 }
2079 case GICXXPred_MI_Predicate_GICombiner15: {
2080 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
2081 Helper.isLegalOrBeforeLegalizer({
2082 TargetOpcode::G_SEXT_INREG,
2083 {MRI.getType(State.MIs[1]->getOperand(1).getReg())},
2084 {},
2085 {1}
2086 });
2087 }
2088 case GICXXPred_MI_Predicate_GICombiner16: {
2089 return !isConstantOrConstantSplatVector(State.MIs[0]->getOperand(1).getReg(), MRI) &&
2090 MRI.getType(State.MIs[0]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg()) &&
2091 VT->computeNumSignBits(State.MIs[0]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg()).getScalarSizeInBits();
2092 }
2093 case GICXXPred_MI_Predicate_GICombiner17: {
2094 return Helper.matchRedundantSExtInReg(*State.MIs[0]);
2095 }
2096 case GICXXPred_MI_Predicate_GICombiner18: {
2097 LLT SrcTy = MRI.getType(State.MIs[1]->getOperand(1).getReg());
2098 return State.MIs[0]->getOperand(2).getImm() <= SrcTy.getScalarSizeInBits() &&
2099 VT->computeNumSignBits(State.MIs[1]->getOperand(1).getReg()) >=
2100 (SrcTy.getScalarSizeInBits() - State.MIs[0]->getOperand(2).getImm() + 1);
2101 llvm_unreachable("GICombiner18 should have returned");
2102 }
2103 case GICXXPred_MI_Predicate_GICombiner19: {
2104 return Helper.matchPtrAddZero(*State.MIs[0]);
2105 }
2106 case GICXXPred_MI_Predicate_GICombiner20: {
2107 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_LSHR,
2108 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
2109 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
2110 }
2111 case GICXXPred_MI_Predicate_GICombiner21: {
2112 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_SHL,
2113 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
2114 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
2115 }
2116 case GICXXPred_MI_Predicate_GICombiner22: {
2117 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
2118 isConstantOrConstantSplatVector(State.MIs[1]->getOperand(2).getReg(), MRI) &&
2119 isConstantOrConstantSplatVector(State.MIs[0]->getOperand(2).getReg(), MRI) &&
2120 Helper.isDesirableToCommuteWithShift(*State.MIs[0]);
2121 }
2122 case GICXXPred_MI_Predicate_GICombiner23: {
2123 return Helper.matchTruncUSatU(*State.MIs[0], *State.MIs[1]);
2124 }
2125 case GICXXPred_MI_Predicate_GICombiner24: {
2126 return Helper.matchTruncUSatUToFPTOUISat(*State.MIs[0], *State.MIs[1]);
2127 }
2128 case GICXXPred_MI_Predicate_GICombiner25: {
2129 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
2130 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
2131 }
2132 case GICXXPred_MI_Predicate_GICombiner26: {
2133 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
2134 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
2135 }
2136 case GICXXPred_MI_Predicate_GICombiner27: {
2137 return MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(2).getReg()) &&
2138 MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg());
2139 }
2140 case GICXXPred_MI_Predicate_GICombiner28: {
2141 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[2]->getOperand(1).getReg(), State.MIs[3]->getOperand(1).getReg(), TargetOpcode::G_UAVGFLOOR);
2142 }
2143 case GICXXPred_MI_Predicate_GICombiner29: {
2144 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[2]->getOperand(1).getReg(), State.MIs[3]->getOperand(1).getReg(), TargetOpcode::G_SAVGFLOOR);
2145 }
2146 case GICXXPred_MI_Predicate_GICombiner30: {
2147 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[3]->getOperand(1).getReg(), State.MIs[4]->getOperand(1).getReg(), TargetOpcode::G_UAVGCEIL);
2148 }
2149 case GICXXPred_MI_Predicate_GICombiner31: {
2150 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[3]->getOperand(1).getReg(), State.MIs[4]->getOperand(1).getReg(), TargetOpcode::G_SAVGCEIL);
2151 }
2152 }
2153 llvm_unreachable("Unknown predicate");
2154 return false;
2155}
2156bool RISCVPreLegalizerCombinerImpl::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
2157 llvm_unreachable("Unknown predicate");
2158 return false;
2159}
2160bool RISCVPreLegalizerCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
2161 llvm_unreachable("Unknown predicate");
2162 return false;
2163}
2164bool RISCVPreLegalizerCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
2165 llvm_unreachable("Unknown predicate");
2166 return false;
2167}
2168bool RISCVPreLegalizerCombinerImpl::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
2169 llvm_unreachable("Unknown predicate");
2170 return false;
2171}
2172enum {
2173 GICXXPred_Simple_IsRule0Enabled = GICXXPred_Invalid + 1,
2174 GICXXPred_Simple_IsRule1Enabled,
2175 GICXXPred_Simple_IsRule2Enabled,
2176 GICXXPred_Simple_IsRule3Enabled,
2177 GICXXPred_Simple_IsRule4Enabled,
2178 GICXXPred_Simple_IsRule5Enabled,
2179 GICXXPred_Simple_IsRule6Enabled,
2180 GICXXPred_Simple_IsRule7Enabled,
2181 GICXXPred_Simple_IsRule8Enabled,
2182 GICXXPred_Simple_IsRule9Enabled,
2183 GICXXPred_Simple_IsRule10Enabled,
2184 GICXXPred_Simple_IsRule11Enabled,
2185 GICXXPred_Simple_IsRule12Enabled,
2186 GICXXPred_Simple_IsRule13Enabled,
2187 GICXXPred_Simple_IsRule14Enabled,
2188 GICXXPred_Simple_IsRule15Enabled,
2189 GICXXPred_Simple_IsRule16Enabled,
2190 GICXXPred_Simple_IsRule17Enabled,
2191 GICXXPred_Simple_IsRule18Enabled,
2192 GICXXPred_Simple_IsRule19Enabled,
2193 GICXXPred_Simple_IsRule20Enabled,
2194 GICXXPred_Simple_IsRule21Enabled,
2195 GICXXPred_Simple_IsRule22Enabled,
2196 GICXXPred_Simple_IsRule23Enabled,
2197 GICXXPred_Simple_IsRule24Enabled,
2198 GICXXPred_Simple_IsRule25Enabled,
2199 GICXXPred_Simple_IsRule26Enabled,
2200 GICXXPred_Simple_IsRule27Enabled,
2201 GICXXPred_Simple_IsRule28Enabled,
2202 GICXXPred_Simple_IsRule29Enabled,
2203 GICXXPred_Simple_IsRule30Enabled,
2204 GICXXPred_Simple_IsRule31Enabled,
2205 GICXXPred_Simple_IsRule32Enabled,
2206 GICXXPred_Simple_IsRule33Enabled,
2207 GICXXPred_Simple_IsRule34Enabled,
2208 GICXXPred_Simple_IsRule35Enabled,
2209 GICXXPred_Simple_IsRule36Enabled,
2210 GICXXPred_Simple_IsRule37Enabled,
2211 GICXXPred_Simple_IsRule38Enabled,
2212 GICXXPred_Simple_IsRule39Enabled,
2213 GICXXPred_Simple_IsRule40Enabled,
2214 GICXXPred_Simple_IsRule41Enabled,
2215 GICXXPred_Simple_IsRule42Enabled,
2216 GICXXPred_Simple_IsRule43Enabled,
2217 GICXXPred_Simple_IsRule44Enabled,
2218 GICXXPred_Simple_IsRule45Enabled,
2219 GICXXPred_Simple_IsRule46Enabled,
2220 GICXXPred_Simple_IsRule47Enabled,
2221 GICXXPred_Simple_IsRule48Enabled,
2222 GICXXPred_Simple_IsRule49Enabled,
2223 GICXXPred_Simple_IsRule50Enabled,
2224 GICXXPred_Simple_IsRule51Enabled,
2225 GICXXPred_Simple_IsRule52Enabled,
2226 GICXXPred_Simple_IsRule53Enabled,
2227 GICXXPred_Simple_IsRule54Enabled,
2228 GICXXPred_Simple_IsRule55Enabled,
2229 GICXXPred_Simple_IsRule56Enabled,
2230 GICXXPred_Simple_IsRule57Enabled,
2231 GICXXPred_Simple_IsRule58Enabled,
2232 GICXXPred_Simple_IsRule59Enabled,
2233 GICXXPred_Simple_IsRule60Enabled,
2234 GICXXPred_Simple_IsRule61Enabled,
2235 GICXXPred_Simple_IsRule62Enabled,
2236 GICXXPred_Simple_IsRule63Enabled,
2237 GICXXPred_Simple_IsRule64Enabled,
2238 GICXXPred_Simple_IsRule65Enabled,
2239 GICXXPred_Simple_IsRule66Enabled,
2240 GICXXPred_Simple_IsRule67Enabled,
2241 GICXXPred_Simple_IsRule68Enabled,
2242 GICXXPred_Simple_IsRule69Enabled,
2243 GICXXPred_Simple_IsRule70Enabled,
2244 GICXXPred_Simple_IsRule71Enabled,
2245 GICXXPred_Simple_IsRule72Enabled,
2246 GICXXPred_Simple_IsRule73Enabled,
2247 GICXXPred_Simple_IsRule74Enabled,
2248 GICXXPred_Simple_IsRule75Enabled,
2249 GICXXPred_Simple_IsRule76Enabled,
2250 GICXXPred_Simple_IsRule77Enabled,
2251 GICXXPred_Simple_IsRule78Enabled,
2252 GICXXPred_Simple_IsRule79Enabled,
2253 GICXXPred_Simple_IsRule80Enabled,
2254 GICXXPred_Simple_IsRule81Enabled,
2255 GICXXPred_Simple_IsRule82Enabled,
2256 GICXXPred_Simple_IsRule83Enabled,
2257 GICXXPred_Simple_IsRule84Enabled,
2258 GICXXPred_Simple_IsRule85Enabled,
2259 GICXXPred_Simple_IsRule86Enabled,
2260 GICXXPred_Simple_IsRule87Enabled,
2261 GICXXPred_Simple_IsRule88Enabled,
2262 GICXXPred_Simple_IsRule89Enabled,
2263 GICXXPred_Simple_IsRule90Enabled,
2264 GICXXPred_Simple_IsRule91Enabled,
2265 GICXXPred_Simple_IsRule92Enabled,
2266 GICXXPred_Simple_IsRule93Enabled,
2267 GICXXPred_Simple_IsRule94Enabled,
2268 GICXXPred_Simple_IsRule95Enabled,
2269 GICXXPred_Simple_IsRule96Enabled,
2270 GICXXPred_Simple_IsRule97Enabled,
2271 GICXXPred_Simple_IsRule98Enabled,
2272 GICXXPred_Simple_IsRule99Enabled,
2273 GICXXPred_Simple_IsRule100Enabled,
2274 GICXXPred_Simple_IsRule101Enabled,
2275 GICXXPred_Simple_IsRule102Enabled,
2276 GICXXPred_Simple_IsRule103Enabled,
2277 GICXXPred_Simple_IsRule104Enabled,
2278 GICXXPred_Simple_IsRule105Enabled,
2279 GICXXPred_Simple_IsRule106Enabled,
2280 GICXXPred_Simple_IsRule107Enabled,
2281 GICXXPred_Simple_IsRule108Enabled,
2282 GICXXPred_Simple_IsRule109Enabled,
2283 GICXXPred_Simple_IsRule110Enabled,
2284 GICXXPred_Simple_IsRule111Enabled,
2285 GICXXPred_Simple_IsRule112Enabled,
2286 GICXXPred_Simple_IsRule113Enabled,
2287 GICXXPred_Simple_IsRule114Enabled,
2288 GICXXPred_Simple_IsRule115Enabled,
2289 GICXXPred_Simple_IsRule116Enabled,
2290 GICXXPred_Simple_IsRule117Enabled,
2291 GICXXPred_Simple_IsRule118Enabled,
2292 GICXXPred_Simple_IsRule119Enabled,
2293 GICXXPred_Simple_IsRule120Enabled,
2294 GICXXPred_Simple_IsRule121Enabled,
2295 GICXXPred_Simple_IsRule122Enabled,
2296 GICXXPred_Simple_IsRule123Enabled,
2297 GICXXPred_Simple_IsRule124Enabled,
2298 GICXXPred_Simple_IsRule125Enabled,
2299 GICXXPred_Simple_IsRule126Enabled,
2300 GICXXPred_Simple_IsRule127Enabled,
2301 GICXXPred_Simple_IsRule128Enabled,
2302 GICXXPred_Simple_IsRule129Enabled,
2303 GICXXPred_Simple_IsRule130Enabled,
2304 GICXXPred_Simple_IsRule131Enabled,
2305 GICXXPred_Simple_IsRule132Enabled,
2306 GICXXPred_Simple_IsRule133Enabled,
2307 GICXXPred_Simple_IsRule134Enabled,
2308 GICXXPred_Simple_IsRule135Enabled,
2309 GICXXPred_Simple_IsRule136Enabled,
2310 GICXXPred_Simple_IsRule137Enabled,
2311 GICXXPred_Simple_IsRule138Enabled,
2312 GICXXPred_Simple_IsRule139Enabled,
2313 GICXXPred_Simple_IsRule140Enabled,
2314 GICXXPred_Simple_IsRule141Enabled,
2315 GICXXPred_Simple_IsRule142Enabled,
2316 GICXXPred_Simple_IsRule143Enabled,
2317 GICXXPred_Simple_IsRule144Enabled,
2318 GICXXPred_Simple_IsRule145Enabled,
2319 GICXXPred_Simple_IsRule146Enabled,
2320 GICXXPred_Simple_IsRule147Enabled,
2321 GICXXPred_Simple_IsRule148Enabled,
2322 GICXXPred_Simple_IsRule149Enabled,
2323 GICXXPred_Simple_IsRule150Enabled,
2324 GICXXPred_Simple_IsRule151Enabled,
2325 GICXXPred_Simple_IsRule152Enabled,
2326 GICXXPred_Simple_IsRule153Enabled,
2327 GICXXPred_Simple_IsRule154Enabled,
2328 GICXXPred_Simple_IsRule155Enabled,
2329 GICXXPred_Simple_IsRule156Enabled,
2330 GICXXPred_Simple_IsRule157Enabled,
2331 GICXXPred_Simple_IsRule158Enabled,
2332 GICXXPred_Simple_IsRule159Enabled,
2333 GICXXPred_Simple_IsRule160Enabled,
2334 GICXXPred_Simple_IsRule161Enabled,
2335 GICXXPred_Simple_IsRule162Enabled,
2336 GICXXPred_Simple_IsRule163Enabled,
2337 GICXXPred_Simple_IsRule164Enabled,
2338 GICXXPred_Simple_IsRule165Enabled,
2339 GICXXPred_Simple_IsRule166Enabled,
2340 GICXXPred_Simple_IsRule167Enabled,
2341 GICXXPred_Simple_IsRule168Enabled,
2342 GICXXPred_Simple_IsRule169Enabled,
2343 GICXXPred_Simple_IsRule170Enabled,
2344 GICXXPred_Simple_IsRule171Enabled,
2345 GICXXPred_Simple_IsRule172Enabled,
2346 GICXXPred_Simple_IsRule173Enabled,
2347 GICXXPred_Simple_IsRule174Enabled,
2348 GICXXPred_Simple_IsRule175Enabled,
2349 GICXXPred_Simple_IsRule176Enabled,
2350 GICXXPred_Simple_IsRule177Enabled,
2351 GICXXPred_Simple_IsRule178Enabled,
2352 GICXXPred_Simple_IsRule179Enabled,
2353 GICXXPred_Simple_IsRule180Enabled,
2354 GICXXPred_Simple_IsRule181Enabled,
2355 GICXXPred_Simple_IsRule182Enabled,
2356 GICXXPred_Simple_IsRule183Enabled,
2357 GICXXPred_Simple_IsRule184Enabled,
2358 GICXXPred_Simple_IsRule185Enabled,
2359 GICXXPred_Simple_IsRule186Enabled,
2360 GICXXPred_Simple_IsRule187Enabled,
2361 GICXXPred_Simple_IsRule188Enabled,
2362 GICXXPred_Simple_IsRule189Enabled,
2363 GICXXPred_Simple_IsRule190Enabled,
2364 GICXXPred_Simple_IsRule191Enabled,
2365 GICXXPred_Simple_IsRule192Enabled,
2366 GICXXPred_Simple_IsRule193Enabled,
2367 GICXXPred_Simple_IsRule194Enabled,
2368 GICXXPred_Simple_IsRule195Enabled,
2369 GICXXPred_Simple_IsRule196Enabled,
2370 GICXXPred_Simple_IsRule197Enabled,
2371 GICXXPred_Simple_IsRule198Enabled,
2372 GICXXPred_Simple_IsRule199Enabled,
2373 GICXXPred_Simple_IsRule200Enabled,
2374 GICXXPred_Simple_IsRule201Enabled,
2375 GICXXPred_Simple_IsRule202Enabled,
2376 GICXXPred_Simple_IsRule203Enabled,
2377 GICXXPred_Simple_IsRule204Enabled,
2378 GICXXPred_Simple_IsRule205Enabled,
2379 GICXXPred_Simple_IsRule206Enabled,
2380 GICXXPred_Simple_IsRule207Enabled,
2381 GICXXPred_Simple_IsRule208Enabled,
2382 GICXXPred_Simple_IsRule209Enabled,
2383 GICXXPred_Simple_IsRule210Enabled,
2384 GICXXPred_Simple_IsRule211Enabled,
2385 GICXXPred_Simple_IsRule212Enabled,
2386 GICXXPred_Simple_IsRule213Enabled,
2387 GICXXPred_Simple_IsRule214Enabled,
2388 GICXXPred_Simple_IsRule215Enabled,
2389 GICXXPred_Simple_IsRule216Enabled,
2390 GICXXPred_Simple_IsRule217Enabled,
2391 GICXXPred_Simple_IsRule218Enabled,
2392 GICXXPred_Simple_IsRule219Enabled,
2393 GICXXPred_Simple_IsRule220Enabled,
2394 GICXXPred_Simple_IsRule221Enabled,
2395 GICXXPred_Simple_IsRule222Enabled,
2396 GICXXPred_Simple_IsRule223Enabled,
2397 GICXXPred_Simple_IsRule224Enabled,
2398 GICXXPred_Simple_IsRule225Enabled,
2399 GICXXPred_Simple_IsRule226Enabled,
2400 GICXXPred_Simple_IsRule227Enabled,
2401 GICXXPred_Simple_IsRule228Enabled,
2402 GICXXPred_Simple_IsRule229Enabled,
2403 GICXXPred_Simple_IsRule230Enabled,
2404 GICXXPred_Simple_IsRule231Enabled,
2405 GICXXPred_Simple_IsRule232Enabled,
2406 GICXXPred_Simple_IsRule233Enabled,
2407 GICXXPred_Simple_IsRule234Enabled,
2408 GICXXPred_Simple_IsRule235Enabled,
2409 GICXXPred_Simple_IsRule236Enabled,
2410 GICXXPred_Simple_IsRule237Enabled,
2411 GICXXPred_Simple_IsRule238Enabled,
2412 GICXXPred_Simple_IsRule239Enabled,
2413 GICXXPred_Simple_IsRule240Enabled,
2414 GICXXPred_Simple_IsRule241Enabled,
2415 GICXXPred_Simple_IsRule242Enabled,
2416 GICXXPred_Simple_IsRule243Enabled,
2417 GICXXPred_Simple_IsRule244Enabled,
2418 GICXXPred_Simple_IsRule245Enabled,
2419 GICXXPred_Simple_IsRule246Enabled,
2420 GICXXPred_Simple_IsRule247Enabled,
2421 GICXXPred_Simple_IsRule248Enabled,
2422 GICXXPred_Simple_IsRule249Enabled,
2423 GICXXPred_Simple_IsRule250Enabled,
2424 GICXXPred_Simple_IsRule251Enabled,
2425 GICXXPred_Simple_IsRule252Enabled,
2426 GICXXPred_Simple_IsRule253Enabled,
2427 GICXXPred_Simple_IsRule254Enabled,
2428 GICXXPred_Simple_IsRule255Enabled,
2429 GICXXPred_Simple_IsRule256Enabled,
2430 GICXXPred_Simple_IsRule257Enabled,
2431 GICXXPred_Simple_IsRule258Enabled,
2432 GICXXPred_Simple_IsRule259Enabled,
2433 GICXXPred_Simple_IsRule260Enabled,
2434 GICXXPred_Simple_IsRule261Enabled,
2435 GICXXPred_Simple_IsRule262Enabled,
2436 GICXXPred_Simple_IsRule263Enabled,
2437 GICXXPred_Simple_IsRule264Enabled,
2438 GICXXPred_Simple_IsRule265Enabled,
2439 GICXXPred_Simple_IsRule266Enabled,
2440 GICXXPred_Simple_IsRule267Enabled,
2441 GICXXPred_Simple_IsRule268Enabled,
2442 GICXXPred_Simple_IsRule269Enabled,
2443 GICXXPred_Simple_IsRule270Enabled,
2444 GICXXPred_Simple_IsRule271Enabled,
2445 GICXXPred_Simple_IsRule272Enabled,
2446 GICXXPred_Simple_IsRule273Enabled,
2447 GICXXPred_Simple_IsRule274Enabled,
2448 GICXXPred_Simple_IsRule275Enabled,
2449 GICXXPred_Simple_IsRule276Enabled,
2450 GICXXPred_Simple_IsRule277Enabled,
2451 GICXXPred_Simple_IsRule278Enabled,
2452};
2453
2454bool RISCVPreLegalizerCombinerImpl::testSimplePredicate(unsigned Predicate) const {
2455 return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1);
2456}
2457// Custom renderers.
2458enum {
2459 GICR_Invalid,
2460};
2461RISCVPreLegalizerCombinerImpl::CustomRendererFn
2462RISCVPreLegalizerCombinerImpl::CustomRenderers[] = {
2463 nullptr, // GICR_Invalid
2464};
2465
2466bool RISCVPreLegalizerCombinerImpl::canMatchOpcode(unsigned Opc) const {
2467 switch (Opc) {
2468 case TargetOpcode::G_FCMP:
2469 case TargetOpcode::G_FMA:
2470 case TargetOpcode::G_FMAD:
2471 case TargetOpcode::G_FSHL:
2472 case TargetOpcode::G_FSHR:
2473 case TargetOpcode::G_ICMP:
2474 case TargetOpcode::G_INSERT_VECTOR_ELT:
2475 case TargetOpcode::G_SELECT:
2476 case TargetOpcode::G_SHUFFLE_VECTOR:
2477 case TargetOpcode::G_ADD:
2478 case TargetOpcode::G_AND:
2479 case TargetOpcode::G_ASHR:
2480 case TargetOpcode::G_EXTRACT_VECTOR_ELT:
2481 case TargetOpcode::G_FADD:
2482 case TargetOpcode::G_FCOPYSIGN:
2483 case TargetOpcode::G_FDIV:
2484 case TargetOpcode::G_FMAXIMUM:
2485 case TargetOpcode::G_FMAXIMUMNUM:
2486 case TargetOpcode::G_FMAXNUM:
2487 case TargetOpcode::G_FMINIMUM:
2488 case TargetOpcode::G_FMINIMUMNUM:
2489 case TargetOpcode::G_FMINNUM:
2490 case TargetOpcode::G_FMUL:
2491 case TargetOpcode::G_FPOWI:
2492 case TargetOpcode::G_FREM:
2493 case TargetOpcode::G_FSUB:
2494 case TargetOpcode::G_LSHR:
2495 case TargetOpcode::G_MERGE_VALUES:
2496 case TargetOpcode::G_MUL:
2497 case TargetOpcode::G_OR:
2498 case TargetOpcode::G_PTR_ADD:
2499 case TargetOpcode::G_ROTL:
2500 case TargetOpcode::G_ROTR:
2501 case TargetOpcode::G_SDIV:
2502 case TargetOpcode::G_SEXT_INREG:
2503 case TargetOpcode::G_SHL:
2504 case TargetOpcode::G_SREM:
2505 case TargetOpcode::G_SUB:
2506 case TargetOpcode::G_UDIV:
2507 case TargetOpcode::G_UMULH:
2508 case TargetOpcode::G_UREM:
2509 case TargetOpcode::G_XOR:
2510 case TargetOpcode::COPY:
2511 case TargetOpcode::G_ABS:
2512 case TargetOpcode::G_ANYEXT:
2513 case TargetOpcode::G_BITCAST:
2514 case TargetOpcode::G_BITREVERSE:
2515 case TargetOpcode::G_BSWAP:
2516 case TargetOpcode::G_BUILD_VECTOR:
2517 case TargetOpcode::G_CONCAT_VECTORS:
2518 case TargetOpcode::G_CTLZ:
2519 case TargetOpcode::G_CTLZ_ZERO_POISON:
2520 case TargetOpcode::G_CTPOP:
2521 case TargetOpcode::G_CTTZ:
2522 case TargetOpcode::G_CTTZ_ZERO_POISON:
2523 case TargetOpcode::G_FABS:
2524 case TargetOpcode::G_FCANONICALIZE:
2525 case TargetOpcode::G_FCEIL:
2526 case TargetOpcode::G_FFLOOR:
2527 case TargetOpcode::G_FLOG2:
2528 case TargetOpcode::G_FNEARBYINT:
2529 case TargetOpcode::G_FNEG:
2530 case TargetOpcode::G_FPEXT:
2531 case TargetOpcode::G_FPTOSI:
2532 case TargetOpcode::G_FPTOUI:
2533 case TargetOpcode::G_FPTRUNC:
2534 case TargetOpcode::G_FREEZE:
2535 case TargetOpcode::G_FRINT:
2536 case TargetOpcode::G_FSQRT:
2537 case TargetOpcode::G_INTRINSIC_ROUND:
2538 case TargetOpcode::G_INTRINSIC_ROUNDEVEN:
2539 case TargetOpcode::G_INTRINSIC_TRUNC:
2540 case TargetOpcode::G_INTTOPTR:
2541 case TargetOpcode::G_PHI:
2542 case TargetOpcode::G_PTRTOINT:
2543 case TargetOpcode::G_SEXT:
2544 case TargetOpcode::G_SITOFP:
2545 case TargetOpcode::G_TRUNC:
2546 case TargetOpcode::G_TRUNC_USAT_U:
2547 case TargetOpcode::G_UITOFP:
2548 case TargetOpcode::G_ZEXT:
2549 case TargetOpcode::G_BR:
2550 case TargetOpcode::G_BUILD_VECTOR_TRUNC:
2551 case TargetOpcode::G_FMAXNUM_IEEE:
2552 case TargetOpcode::G_FMINNUM_IEEE:
2553 case TargetOpcode::G_LOAD:
2554 case TargetOpcode::G_SADDE:
2555 case TargetOpcode::G_SADDO:
2556 case TargetOpcode::G_SADDSAT:
2557 case TargetOpcode::G_SEXTLOAD:
2558 case TargetOpcode::G_SMAX:
2559 case TargetOpcode::G_SMIN:
2560 case TargetOpcode::G_SMULFIX:
2561 case TargetOpcode::G_SMULFIXSAT:
2562 case TargetOpcode::G_SMULH:
2563 case TargetOpcode::G_SMULO:
2564 case TargetOpcode::G_SSHLSAT:
2565 case TargetOpcode::G_SSUBE:
2566 case TargetOpcode::G_SSUBO:
2567 case TargetOpcode::G_STORE:
2568 case TargetOpcode::G_UADDE:
2569 case TargetOpcode::G_UADDO:
2570 case TargetOpcode::G_UADDSAT:
2571 case TargetOpcode::G_UMAX:
2572 case TargetOpcode::G_UMIN:
2573 case TargetOpcode::G_UMULFIX:
2574 case TargetOpcode::G_UMULFIXSAT:
2575 case TargetOpcode::G_UMULO:
2576 case TargetOpcode::G_UNMERGE_VALUES:
2577 case TargetOpcode::G_USHLSAT:
2578 case TargetOpcode::G_USUBE:
2579 case TargetOpcode::G_USUBO:
2580 case TargetOpcode::G_ZEXTLOAD:
2581 return true;
2582 default:
2583 return false;
2584 }
2585}
2586
2587uint32_t RISCVPreLegalizerCombinerImpl::getRootFlagsToDrop() const {
2588 return MachineInstr::getPoisonGeneratingFlags();
2589}
2590
2591bool RISCVPreLegalizerCombinerImpl::tryCombineAll(MachineInstr &I) const {
2592 const PredicateBitset AvailableFeatures = getAvailableFeatures();
2593 State.MIs.clear();
2594 State.MIs.push_back(&I);
2595 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), Helper.getTII(), MRI, Helper.getTRI(), Helper.getRBI(), AvailableFeatures, /*CoverageInfo*/ nullptr)) {
2596 return true;
2597 }
2598
2599 return false;
2600}
2601
2602enum {
2603 GICXXCustomAction_GICombiner0 = GICXXCustomAction_Invalid + 1,
2604 GICXXCustomAction_GICombiner1,
2605 GICXXCustomAction_GICombiner2,
2606 GICXXCustomAction_GICombiner3,
2607 GICXXCustomAction_GICombiner4,
2608 GICXXCustomAction_GICombiner5,
2609 GICXXCustomAction_GICombiner6,
2610 GICXXCustomAction_GICombiner7,
2611 GICXXCustomAction_GICombiner8,
2612 GICXXCustomAction_GICombiner9,
2613 GICXXCustomAction_GICombiner10,
2614 GICXXCustomAction_GICombiner11,
2615 GICXXCustomAction_GICombiner12,
2616 GICXXCustomAction_GICombiner13,
2617 GICXXCustomAction_GICombiner14,
2618 GICXXCustomAction_GICombiner15,
2619 GICXXCustomAction_GICombiner16,
2620 GICXXCustomAction_GICombiner17,
2621 GICXXCustomAction_GICombiner18,
2622 GICXXCustomAction_GICombiner19,
2623 GICXXCustomAction_GICombiner20,
2624 GICXXCustomAction_GICombiner21,
2625 GICXXCustomAction_GICombiner22,
2626 GICXXCustomAction_GICombiner23,
2627 GICXXCustomAction_GICombiner24,
2628 GICXXCustomAction_GICombiner25,
2629 GICXXCustomAction_GICombiner26,
2630 GICXXCustomAction_GICombiner27,
2631 GICXXCustomAction_GICombiner28,
2632 GICXXCustomAction_GICombiner29,
2633 GICXXCustomAction_GICombiner30,
2634 GICXXCustomAction_GICombiner31,
2635 GICXXCustomAction_GICombiner32,
2636 GICXXCustomAction_GICombiner33,
2637 GICXXCustomAction_GICombiner34,
2638 GICXXCustomAction_GICombiner35,
2639 GICXXCustomAction_GICombiner36,
2640 GICXXCustomAction_GICombiner37,
2641 GICXXCustomAction_GICombiner38,
2642 GICXXCustomAction_GICombiner39,
2643 GICXXCustomAction_GICombiner40,
2644 GICXXCustomAction_GICombiner41,
2645 GICXXCustomAction_GICombiner42,
2646 GICXXCustomAction_GICombiner43,
2647 GICXXCustomAction_GICombiner44,
2648 GICXXCustomAction_GICombiner45,
2649 GICXXCustomAction_GICombiner46,
2650 GICXXCustomAction_GICombiner47,
2651 GICXXCustomAction_GICombiner48,
2652 GICXXCustomAction_GICombiner49,
2653 GICXXCustomAction_GICombiner50,
2654 GICXXCustomAction_GICombiner51,
2655 GICXXCustomAction_GICombiner52,
2656 GICXXCustomAction_GICombiner53,
2657 GICXXCustomAction_GICombiner54,
2658 GICXXCustomAction_GICombiner55,
2659 GICXXCustomAction_GICombiner56,
2660 GICXXCustomAction_GICombiner57,
2661 GICXXCustomAction_GICombiner58,
2662 GICXXCustomAction_GICombiner59,
2663 GICXXCustomAction_GICombiner60,
2664 GICXXCustomAction_GICombiner61,
2665 GICXXCustomAction_GICombiner62,
2666 GICXXCustomAction_GICombiner63,
2667 GICXXCustomAction_GICombiner64,
2668 GICXXCustomAction_GICombiner65,
2669 GICXXCustomAction_GICombiner66,
2670 GICXXCustomAction_GICombiner67,
2671 GICXXCustomAction_GICombiner68,
2672 GICXXCustomAction_GICombiner69,
2673 GICXXCustomAction_GICombiner70,
2674 GICXXCustomAction_GICombiner71,
2675 GICXXCustomAction_GICombiner72,
2676 GICXXCustomAction_GICombiner73,
2677 GICXXCustomAction_GICombiner74,
2678 GICXXCustomAction_GICombiner75,
2679 GICXXCustomAction_GICombiner76,
2680 GICXXCustomAction_GICombiner77,
2681 GICXXCustomAction_GICombiner78,
2682 GICXXCustomAction_GICombiner79,
2683 GICXXCustomAction_GICombiner80,
2684 GICXXCustomAction_GICombiner81,
2685 GICXXCustomAction_GICombiner82,
2686 GICXXCustomAction_GICombiner83,
2687 GICXXCustomAction_GICombiner84,
2688 GICXXCustomAction_GICombiner85,
2689 GICXXCustomAction_GICombiner86,
2690 GICXXCustomAction_GICombiner87,
2691 GICXXCustomAction_GICombiner88,
2692 GICXXCustomAction_GICombiner89,
2693 GICXXCustomAction_GICombiner90,
2694 GICXXCustomAction_GICombiner91,
2695 GICXXCustomAction_GICombiner92,
2696 GICXXCustomAction_GICombiner93,
2697 GICXXCustomAction_GICombiner94,
2698 GICXXCustomAction_GICombiner95,
2699 GICXXCustomAction_GICombiner96,
2700 GICXXCustomAction_GICombiner97,
2701 GICXXCustomAction_GICombiner98,
2702 GICXXCustomAction_GICombiner99,
2703 GICXXCustomAction_GICombiner100,
2704 GICXXCustomAction_GICombiner101,
2705 GICXXCustomAction_GICombiner102,
2706 GICXXCustomAction_GICombiner103,
2707 GICXXCustomAction_GICombiner104,
2708 GICXXCustomAction_GICombiner105,
2709 GICXXCustomAction_GICombiner106,
2710 GICXXCustomAction_GICombiner107,
2711 GICXXCustomAction_GICombiner108,
2712 GICXXCustomAction_GICombiner109,
2713 GICXXCustomAction_GICombiner110,
2714 GICXXCustomAction_GICombiner111,
2715 GICXXCustomAction_GICombiner112,
2716 GICXXCustomAction_GICombiner113,
2717 GICXXCustomAction_GICombiner114,
2718 GICXXCustomAction_GICombiner115,
2719 GICXXCustomAction_GICombiner116,
2720 GICXXCustomAction_GICombiner117,
2721 GICXXCustomAction_GICombiner118,
2722 GICXXCustomAction_GICombiner119,
2723 GICXXCustomAction_GICombiner120,
2724 GICXXCustomAction_GICombiner121,
2725 GICXXCustomAction_GICombiner122,
2726 GICXXCustomAction_GICombiner123,
2727 GICXXCustomAction_GICombiner124,
2728 GICXXCustomAction_GICombiner125,
2729 GICXXCustomAction_GICombiner126,
2730 GICXXCustomAction_GICombiner127,
2731 GICXXCustomAction_GICombiner128,
2732 GICXXCustomAction_GICombiner129,
2733 GICXXCustomAction_GICombiner130,
2734 GICXXCustomAction_GICombiner131,
2735 GICXXCustomAction_GICombiner132,
2736 GICXXCustomAction_GICombiner133,
2737 GICXXCustomAction_GICombiner134,
2738 GICXXCustomAction_GICombiner135,
2739 GICXXCustomAction_GICombiner136,
2740 GICXXCustomAction_GICombiner137,
2741 GICXXCustomAction_GICombiner138,
2742 GICXXCustomAction_GICombiner139,
2743 GICXXCustomAction_GICombiner140,
2744 GICXXCustomAction_GICombiner141,
2745 GICXXCustomAction_GICombiner142,
2746 GICXXCustomAction_GICombiner143,
2747 GICXXCustomAction_GICombiner144,
2748 GICXXCustomAction_GICombiner145,
2749 GICXXCustomAction_GICombiner146,
2750 GICXXCustomAction_GICombiner147,
2751 GICXXCustomAction_GICombiner148,
2752};
2753bool RISCVPreLegalizerCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const {
2754 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
2755 switch(ApplyID) {
2756 case GICXXCustomAction_GICombiner0:{
2757 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2758 // Match Patterns
2759 if(![&](){return Helper.matchFoldAPlusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2760 return false;
2761 }
2762 // Apply Patterns
2763 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2764 return true;
2765 }
2766 case GICXXCustomAction_GICombiner1:{
2767 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2768 // Match Patterns
2769 if(![&](){return Helper.matchFoldC2MinusAPlusC1(*State.MIs[0], GIMatchData_matchinfo);}()) {
2770 return false;
2771 }
2772 // Apply Patterns
2773 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2774 return true;
2775 }
2776 case GICXXCustomAction_GICombiner2:{
2777 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2778 // Match Patterns
2779 if(![&](){return Helper.matchFoldAMinusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2780 return false;
2781 }
2782 // Apply Patterns
2783 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2784 return true;
2785 }
2786 case GICXXCustomAction_GICombiner3:{
2787 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2788 // Match Patterns
2789 if(![&](){return Helper.matchFoldC1Minus2MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2790 return false;
2791 }
2792 // Apply Patterns
2793 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2794 return true;
2795 }
2796 case GICXXCustomAction_GICombiner4:{
2797 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2798 // Match Patterns
2799 if(![&](){return Helper.matchFoldAMinusC1PlusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2800 return false;
2801 }
2802 // Apply Patterns
2803 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2804 return true;
2805 }
2806 case GICXXCustomAction_GICombiner5:{
2807 // Match Patterns
2808 if(![&](){return Helper.matchCombineCopy(*State.MIs[0]);}()) {
2809 return false;
2810 }
2811 // Apply Patterns
2812 Helper.applyCombineCopy(*State.MIs[0]);
2813 return true;
2814 }
2815 case GICXXCustomAction_GICombiner6:{
2816 unsigned GIMatchData_matchinfo;
2817 // Match Patterns
2818 if(![&](){return Helper.matchCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);}()) {
2819 return false;
2820 }
2821 // Apply Patterns
2822 Helper.applyCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);
2823 return true;
2824 }
2825 case GICXXCustomAction_GICombiner7:{
2826 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2827 // Match Patterns
2828 if(![&](){return Helper.matchCombineSubToAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2829 return false;
2830 }
2831 // Apply Patterns
2832 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2833 return true;
2834 }
2835 case GICXXCustomAction_GICombiner8:{
2836 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2837 // Match Patterns
2838 if(![&](){return Helper.matchExtractVectorElement(*State.MIs[0], GIMatchData_matchinfo);}()) {
2839 return false;
2840 }
2841 // Apply Patterns
2842 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2843 return true;
2844 }
2845 case GICXXCustomAction_GICombiner9:{
2846 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2847 // Match Patterns
2848 if(![&](){return Helper.matchInsertVectorElementOOB(*State.MIs[0], GIMatchData_matchinfo);}()) {
2849 return false;
2850 }
2851 // Apply Patterns
2852 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2853 return true;
2854 }
2855 case GICXXCustomAction_GICombiner10:{
2856 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2857 // Match Patterns
2858 if(![&](){return Helper.matchExtractVectorElementWithDifferentIndices(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2859 return false;
2860 }
2861 // Apply Patterns
2862 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2863 return true;
2864 }
2865 case GICXXCustomAction_GICombiner11:{
2866 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2867 // Match Patterns
2868 if(![&](){return Helper.matchExtractVectorElementWithBuildVector(*State.MIs[0], *State.MIs[1],
2869 GIMatchData_matchinfo);}()) {
2870 return false;
2871 }
2872 // Apply Patterns
2873 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2874 return true;
2875 }
2876 case GICXXCustomAction_GICombiner12:{
2877 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2878 // Match Patterns
2879 if(![&](){return Helper.matchExtractVectorElementWithBuildVectorTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2880 return false;
2881 }
2882 // Apply Patterns
2883 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2884 return true;
2885 }
2886 case GICXXCustomAction_GICombiner13:{
2887 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2888 // Match Patterns
2889 if(![&](){return Helper.matchExtractVectorElementWithShuffleVector(*State.MIs[0], *State.MIs[1],
2890 GIMatchData_matchinfo);}()) {
2891 return false;
2892 }
2893 // Apply Patterns
2894 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2895 return true;
2896 }
2897 case GICXXCustomAction_GICombiner14:{
2898 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2899 // Match Patterns
2900 if(![&](){return Helper.matchAddOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2901 return false;
2902 }
2903 // Apply Patterns
2904 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2905 return true;
2906 }
2907 case GICXXCustomAction_GICombiner15:{
2908 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2909 // Match Patterns
2910 if(![&](){return Helper.matchMulOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2911 return false;
2912 }
2913 // Apply Patterns
2914 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2915 return true;
2916 }
2917 case GICXXCustomAction_GICombiner16:{
2918 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2919 // Match Patterns
2920 if(![&](){return Helper.matchShlOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2921 return false;
2922 }
2923 // Apply Patterns
2924 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2925 return true;
2926 }
2927 case GICXXCustomAction_GICombiner17:{
2928 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2929 // Match Patterns
2930 if(![&](){return Helper.matchSubOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2931 return false;
2932 }
2933 // Apply Patterns
2934 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2935 return true;
2936 }
2937 case GICXXCustomAction_GICombiner18:{
2938 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2939 // Match Patterns
2940 if(![&](){return !isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI) && Helper.matchFreezeOfSingleMaybePoisonOperand(*State.MIs[0], GIMatchData_matchinfo);}()) {
2941 return false;
2942 }
2943 // Apply Patterns
2944 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2945 return true;
2946 }
2947 case GICXXCustomAction_GICombiner19:{
2948 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2949 // Match Patterns
2950 if(![&](){return Helper.matchTruncateOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2951 return false;
2952 }
2953 // Apply Patterns
2954 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2955 return true;
2956 }
2957 case GICXXCustomAction_GICombiner20:{
2958 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2959 // Match Patterns
2960 if(![&](){return Helper.matchExtOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2961 return false;
2962 }
2963 // Apply Patterns
2964 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2965 return true;
2966 }
2967 case GICXXCustomAction_GICombiner21:{
2968 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2969 // Match Patterns
2970 if(![&](){return Helper.matchRedundantSextInReg(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2971 return false;
2972 }
2973 // Apply Patterns
2974 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2975 return true;
2976 }
2977 case GICXXCustomAction_GICombiner22:{
2978 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2979 // Match Patterns
2980 if(![&](){return Helper.matchCastOfSelect(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2981 return false;
2982 }
2983 // Apply Patterns
2984 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2985 return true;
2986 }
2987 case GICXXCustomAction_GICombiner23:{
2988 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2989 // Match Patterns
2990 if(![&](){return Helper.matchCastOfBuildVector(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2991 return false;
2992 }
2993 // Apply Patterns
2994 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2995 return true;
2996 }
2997 case GICXXCustomAction_GICombiner24:{
2998 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2999 // Match Patterns
3000 if(![&](){return Helper.matchNarrowBinop(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3001 return false;
3002 }
3003 // Apply Patterns
3004 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3005 return true;
3006 }
3007 case GICXXCustomAction_GICombiner25:{
3008 APInt GIMatchData_matchinfo;
3009 // Match Patterns
3010 if(![&](){return Helper.matchCastOfInteger(*State.MIs[0], GIMatchData_matchinfo);}()) {
3011 return false;
3012 }
3013 // Apply Patterns
3014 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3015 return true;
3016 }
3017 case GICXXCustomAction_GICombiner26:{
3018 SmallVector<Register> GIMatchData_info;
3019 // Match Patterns
3020 if(![&](){return Helper.matchCombineInsertVecElts(*State.MIs[0], GIMatchData_info);}()) {
3021 return false;
3022 }
3023 // Apply Patterns
3024 Helper.applyCombineInsertVecElts(*State.MIs[0], GIMatchData_info);
3025 return true;
3026 }
3027 case GICXXCustomAction_GICombiner27:{
3028 Register GIMatchData_matchinfo;
3029 // Match Patterns
3030 if(![&](){return Helper.matchExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);}()) {
3031 return false;
3032 }
3033 // Apply Patterns
3034 Helper.applyExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);
3035 return true;
3036 }
3037 case GICXXCustomAction_GICombiner28:{
3038 SmallVector<std::pair<Register, MachineInstr*>> GIMatchData_matchinfo;
3039 // Match Patterns
3040 if(![&](){return Helper.matchExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
3041 return false;
3042 }
3043 // Apply Patterns
3044 Helper.applyExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);
3045 return true;
3046 }
3047 case GICXXCustomAction_GICombiner29:{
3048 PreferredTuple GIMatchData_matchinfo;
3049 // Match Patterns
3050 if(![&](){return Helper.matchCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);}()) {
3051 return false;
3052 }
3053 // Apply Patterns
3054 Helper.applyCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);
3055 return true;
3056 }
3057 case GICXXCustomAction_GICombiner30:{
3058 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3059 // Match Patterns
3060 if(![&](){return Helper.matchCombineLoadWithAndMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
3061 return false;
3062 }
3063 // Apply Patterns
3064 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3065 return true;
3066 }
3067 case GICXXCustomAction_GICombiner31:{
3068 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3069 // Match Patterns
3070 if(![&](){return Helper.matchCombineExtractedVectorLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
3071 return false;
3072 }
3073 // Apply Patterns
3074 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3075 return true;
3076 }
3077 case GICXXCustomAction_GICombiner32:{
3078 // Apply Patterns
3079 Helper.replaceInstWithFConstant(*State.MIs[0]->getOperand(0).getParent(), 0.0);
3080 return true;
3081 }
3082 case GICXXCustomAction_GICombiner33:{
3083 // Apply Patterns
3084 Helper.replaceInstWithConstant(*State.MIs[0]->getOperand(0).getParent(), 0);
3085 return true;
3086 }
3087 case GICXXCustomAction_GICombiner34:{
3088 // Apply Patterns
3089 Helper.replaceInstWithConstant(*State.MIs[0]->getOperand(0).getParent(), -1);
3090 return true;
3091 }
3092 case GICXXCustomAction_GICombiner35:{
3093 // Apply Patterns
3094 Helper.replaceInstWithUndef(*State.MIs[0]->getOperand(0).getParent());
3095 return true;
3096 }
3097 case GICXXCustomAction_GICombiner36:{
3098 // Match Patterns
3099 if(![&](){return Helper.matchAllExplicitUsesAreUndef(*State.MIs[0]);}()) {
3100 return false;
3101 }
3102 // Apply Patterns
3103 Helper.replaceInstWithUndef(*State.MIs[0]);
3104 return true;
3105 }
3106 case GICXXCustomAction_GICombiner37:{
3107 // Match Patterns
3108 if(![&](){return Helper.matchUndefStore(*State.MIs[0]);}()) {
3109 return false;
3110 }
3111 // Apply Patterns
3112 Helper.eraseInst(*State.MIs[0]);
3113 return true;
3114 }
3115 case GICXXCustomAction_GICombiner38:{
3116 // Match Patterns
3117 if(![&](){return Helper.matchInsertExtractVecEltOutOfBounds(*State.MIs[0]);}()) {
3118 return false;
3119 }
3120 // Apply Patterns
3121 Helper.replaceInstWithUndef(*State.MIs[0]);
3122 return true;
3123 }
3124 case GICXXCustomAction_GICombiner39:{
3125 Register GIMatchData_info;
3126 // Match Patterns
3127 if(![&](){GIMatchData_info = State.MIs[1]->getOperand(1).getReg(); return true;}()) {
3128 return false;
3129 }
3130 // Apply Patterns
3131 Helper.applyCombineP2IToI2P(*State.MIs[0], GIMatchData_info);
3132 return true;
3133 }
3134 case GICXXCustomAction_GICombiner40:{
3135 Register GIMatchData_matchinfo;
3136 // Match Patterns
3137 if(![&](){return Helper.matchCombineAnyExtTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
3138 return false;
3139 }
3140 // Apply Patterns
3141 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3142 return true;
3143 }
3144 case GICXXCustomAction_GICombiner41:{
3145 Register GIMatchData_matchinfo;
3146 // Match Patterns
3147 if(![&](){return Helper.matchBuildVectorIdentityFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3148 return false;
3149 }
3150 // Apply Patterns
3151 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3152 return true;
3153 }
3154 case GICXXCustomAction_GICombiner42:{
3155 Register GIMatchData_matchinfo;
3156 // Match Patterns
3157 if(![&](){return Helper.matchTruncBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3158 return false;
3159 }
3160 // Apply Patterns
3161 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3162 return true;
3163 }
3164 case GICXXCustomAction_GICombiner43:{
3165 Register GIMatchData_matchinfo;
3166 // Match Patterns
3167 if(![&](){return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3168 return false;
3169 }
3170 // Apply Patterns
3171 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3172 return true;
3173 }
3174 case GICXXCustomAction_GICombiner44:{
3175 // Match Patterns
3176 if(![&](){return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());}()) {
3177 return false;
3178 }
3179 // Apply Patterns
3180 Helper.replaceSingleDefInstWithReg(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
3181 return true;
3182 }
3183 case GICXXCustomAction_GICombiner45:{
3184 MachineInstr* GIMatchData_matchinfo;
3185 // Match Patterns
3186 if(![&](){return Helper.matchExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);}()) {
3187 return false;
3188 }
3189 // Apply Patterns
3190 Helper.applyExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);
3191 return true;
3192 }
3193 case GICXXCustomAction_GICombiner46:{
3194 InstructionStepsMatchInfo GIMatchData_info;
3195 // Match Patterns
3196 if(![&](){return Helper.matchHoistLogicOpWithSameOpcodeHands(*State.MIs[0], GIMatchData_info);}()) {
3197 return false;
3198 }
3199 // Apply Patterns
3200 Helper.applyBuildInstructionSteps(*State.MIs[0], GIMatchData_info);
3201 return true;
3202 }
3203 case GICXXCustomAction_GICombiner47:{
3204 std::optional<int64_t> GIMatchData_matchinfo;
3205 // Match Patterns
3206 if(![&](){return Helper.matchShiftsTooBig(*State.MIs[0], GIMatchData_matchinfo);}()) {
3207 return false;
3208 }
3209 // Apply Patterns
3210 if (GIMatchData_matchinfo) {
3211 Helper.replaceInstWithConstant(*State.MIs[0], *GIMatchData_matchinfo);
3212 } else {
3213 Helper.replaceInstWithUndef(*State.MIs[0]);
3214 }
3215 return true;
3216 }
3217 case GICXXCustomAction_GICombiner48:{
3218 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3219 // Match Patterns
3220 if(![&](){return Helper.matchReassocPtrAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3221 return false;
3222 }
3223 // Apply Patterns
3224 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3225 return true;
3226 }
3227 case GICXXCustomAction_GICombiner49:{
3228 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3229 // Match Patterns
3230 if(![&](){return Helper.matchReassocCommBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3231 return false;
3232 }
3233 // Apply Patterns
3234 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3235 return true;
3236 }
3237 case GICXXCustomAction_GICombiner50:{
3238 PtrAddChain GIMatchData_matchinfo;
3239 // Match Patterns
3240 if(![&](){return Helper.matchPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
3241 return false;
3242 }
3243 // Apply Patterns
3244 Helper.applyPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);
3245 return true;
3246 }
3247 case GICXXCustomAction_GICombiner51:{
3248 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3249 // Match Patterns
3250 if(![&](){return Helper.matchCanonicalizeICmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3251 return false;
3252 }
3253 // Apply Patterns
3254 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3255 return true;
3256 }
3257 case GICXXCustomAction_GICombiner52:{
3258 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3259 // Match Patterns
3260 if(![&](){return Helper.matchCanonicalizeFCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3261 return false;
3262 }
3263 // Apply Patterns
3264 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3265 return true;
3266 }
3267 case GICXXCustomAction_GICombiner53:{
3268 int64_t GIMatchData_matchinfo;
3269 // Match Patterns
3270 if(![&](){return Helper.matchICmpToTrueFalseKnownBits(*State.MIs[0], GIMatchData_matchinfo);}()) {
3271 return false;
3272 }
3273 // Apply Patterns
3274 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3275 return true;
3276 }
3277 case GICXXCustomAction_GICombiner54:{
3278 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3279 // Match Patterns
3280 if(![&](){return Helper.matchICmpToLHSKnownBits(*State.MIs[0], GIMatchData_info);}()) {
3281 return false;
3282 }
3283 // Apply Patterns
3284 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3285 return true;
3286 }
3287 case GICXXCustomAction_GICombiner55:{
3288 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3289 // Match Patterns
3290 if(![&](){return Helper.matchRedundantBinOpInEquality(*State.MIs[0], GIMatchData_info);}()) {
3291 return false;
3292 }
3293 // Apply Patterns
3294 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3295 return true;
3296 }
3297 case GICXXCustomAction_GICombiner56:{
3298 std::tuple<Register, int64_t> GIMatchData_info;
3299 // Match Patterns
3300 if(![&](){return Helper.matchAshrShlToSextInreg(*State.MIs[0], GIMatchData_info);}()) {
3301 return false;
3302 }
3303 // Apply Patterns
3304 Helper.applyAshShlToSextInreg(*State.MIs[0], GIMatchData_info);
3305 return true;
3306 }
3307 case GICXXCustomAction_GICombiner57:{
3308 std::tuple<Register, unsigned> GIMatchData_matchinfo;
3309 // Match Patterns
3310 if(![&](){return Helper.matchSextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
3311 return false;
3312 }
3313 // Apply Patterns
3314 Helper.applySextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);
3315 return true;
3316 }
3317 case GICXXCustomAction_GICombiner58:{
3318 RegisterImmPair GIMatchData_matchinfo;
3319 // Match Patterns
3320 if(![&](){return Helper.matchCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);}()) {
3321 return false;
3322 }
3323 // Apply Patterns
3324 Helper.applyCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);
3325 return true;
3326 }
3327 case GICXXCustomAction_GICombiner59:{
3328 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3329 // Match Patterns
3330 if(![&](){return Helper.matchNarrowBinopFeedingAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3331 return false;
3332 }
3333 // Apply Patterns
3334 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3335 return true;
3336 }
3337 case GICXXCustomAction_GICombiner60:{
3338 unsigned GIMatchData_matchinfo;
3339 // Match Patterns
3340 if(![&](){return Helper.matchConstantSelectCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3341 return false;
3342 }
3343 // Apply Patterns
3344 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_matchinfo);
3345 return true;
3346 }
3347 case GICXXCustomAction_GICombiner61:{
3348 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3349 // Match Patterns
3350 if(![&](){return Helper.matchSelectIMinMax(State.MIs[0]->getOperand(0), GIMatchData_info);}()) {
3351 return false;
3352 }
3353 // Apply Patterns
3354 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_info);
3355 return true;
3356 }
3357 case GICXXCustomAction_GICombiner62:{
3358 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3359 // Match Patterns
3360 if(![&](){return Helper.matchSelect(*State.MIs[0], GIMatchData_matchinfo);}()) {
3361 return false;
3362 }
3363 // Apply Patterns
3364 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3365 return true;
3366 }
3367 case GICXXCustomAction_GICombiner63:{
3368 // Match Patterns
3369 if(![&](){LLT SrcTy = MRI.getType(State.MIs[3]->getOperand(1).getReg());
3370 return State.MIs[0]->getOperand(2).getImm() <= SrcTy.getScalarSizeInBits() &&
3371 MRI.getType(State.MIs[1]->getOperand(1).getReg()).getScalarType() ==
3372 MRI.getType(State.MIs[2]->getOperand(2).getReg()).getScalarType() &&
3373 VT->computeNumSignBits(State.MIs[3]->getOperand(1).getReg()) >=
3374 (SrcTy.getScalarSizeInBits() - State.MIs[0]->getOperand(2).getImm() + 1);}()) {
3375 return false;
3376 }
3377 // Apply Patterns
3378 auto SExt1 = Helper.getBuilder().buildSExt(MRI.getType(State.MIs[2]->getOperand(2).getReg()), State.MIs[3]->getOperand(1).getReg());
3379 auto Unmerge = Helper.getBuilder().buildUnmerge(MRI.getType(State.MIs[1]->getOperand(1).getReg()), SExt1);
3380 unsigned UnmergeDef = State.MIs[1]->getOperand(1).getReg() == State.MIs[2]->getOperand(0).getReg() ? 0 : 1;
3381 Helper.getBuilder().buildSExt(State.MIs[0]->getOperand(0).getReg(), Unmerge.getReg(UnmergeDef));
3382 State.MIs[0]->eraseFromParent();
3383 return true;
3384 }
3385 case GICXXCustomAction_GICombiner64:{
3386 Register GIMatchData_matchinfo;
3387 // Match Patterns
3388 if(![&](){return Helper.matchRedundantAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3389 return false;
3390 }
3391 // Apply Patterns
3392 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3393 return true;
3394 }
3395 case GICXXCustomAction_GICombiner65:{
3396 Register GIMatchData_matchinfo;
3397 // Match Patterns
3398 if(![&](){return Helper.matchRedundantOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
3399 return false;
3400 }
3401 // Apply Patterns
3402 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3403 return true;
3404 }
3405 case GICXXCustomAction_GICombiner66:{
3406 // Match Patterns
3407 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(State.MIs[0]->getOperand(2));}()) {
3408 return false;
3409 }
3410 // Apply Patterns
3411 Helper.applySimplifyURemByPow2(*State.MIs[0]);
3412 return true;
3413 }
3414 case GICXXCustomAction_GICombiner67:{
3415 Register GIMatchData_matchinfo;
3416 // Match Patterns
3417 if(![&](){return Helper.matchCombineZextTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
3418 return false;
3419 }
3420 // Apply Patterns
3421 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3422 return true;
3423 }
3424 case GICXXCustomAction_GICombiner68:{
3425 // Match Patterns
3426 if(![&](){unsigned BitWidth = MRI.getType(State.MIs[0]->getOperand(1).getReg()).getScalarSizeInBits();
3427 return Helper.getValueTracking()->maskedValueIsZero(State.MIs[0]->getOperand(1).getReg(),
3428 APInt::getOneBitSet(BitWidth, State.MIs[0]->getOperand(2).getImm() - 1));}()) {
3429 return false;
3430 }
3431 // Apply Patterns
3432 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
3433 Helper.getBuilder().buildZExtInReg(State.MIs[0]->getOperand(0), State.MIs[0]->getOperand(1), State.MIs[0]->getOperand(2).getImm());
3434 State.MIs[0]->eraseFromParent();
3435 return true;
3436 }
3437 case GICXXCustomAction_GICombiner69:{
3438 std::pair<MachineInstr*, LLT> GIMatchData_matchinfo;
3439 // Match Patterns
3440 if(![&](){return Helper.matchCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
3441 return false;
3442 }
3443 // Apply Patterns
3444 Helper.applyCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);
3445 return true;
3446 }
3447 case GICXXCustomAction_GICombiner70:{
3448 SmallVector<Register> GIMatchData_info;
3449 // Match Patterns
3450 if(![&](){return Helper.matchNotCmp(*State.MIs[0], GIMatchData_info);}()) {
3451 return false;
3452 }
3453 // Apply Patterns
3454 Helper.applyNotCmp(*State.MIs[0], GIMatchData_info);
3455 return true;
3456 }
3457 case GICXXCustomAction_GICombiner71:{
3458 MachineInstr * GIMatchData_matchinfo;
3459 // Match Patterns
3460 if(![&](){return Helper.matchOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);}()) {
3461 return false;
3462 }
3463 // Apply Patterns
3464 Helper.applyOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);
3465 return true;
3466 }
3467 case GICXXCustomAction_GICombiner72:{
3468 // Apply Patterns
3469 Helper.applyCombineConstantFoldFpUnary(*State.MIs[0], State.MIs[1]->getOperand(1).getFPImm());
3470 return true;
3471 }
3472 case GICXXCustomAction_GICombiner73:{
3473 APInt GIMatchData_info;
3474 // Match Patterns
3475 if(![&](){LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
3476 APInt NewCst = State.MIs[2]->getOperand(1).getCImm()->getValue().zextOrTrunc(
3477 DstTy.getSizeInBits());
3478 NewCst += State.MIs[3]->getOperand(1).getCImm()->getValue().sextOrTrunc(
3479 DstTy.getSizeInBits());
3480 GIMatchData_info = NewCst;
3481 return true;}()) {
3482 return false;
3483 }
3484 // Apply Patterns
3485 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
3486 Helper.getBuilder().buildConstant(State.MIs[0]->getOperand(0), GIMatchData_info);
3487 State.MIs[0]->eraseFromParent();
3488 return true;
3489 }
3490 case GICXXCustomAction_GICombiner74:{
3491 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3492 // Match Patterns
3493 if(![&](){return Helper.matchOverlappingAnd(*State.MIs[0], GIMatchData_info);}()) {
3494 return false;
3495 }
3496 // Apply Patterns
3497 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3498 return true;
3499 }
3500 case GICXXCustomAction_GICombiner75:{
3501 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3502 // Match Patterns
3503 if(![&](){return Helper.matchMulOBy2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3504 return false;
3505 }
3506 // Apply Patterns
3507 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3508 return true;
3509 }
3510 case GICXXCustomAction_GICombiner76:{
3511 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3512 // Match Patterns
3513 if(![&](){return Helper.matchMulOBy0(*State.MIs[0], GIMatchData_matchinfo);}()) {
3514 return false;
3515 }
3516 // Apply Patterns
3517 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3518 return true;
3519 }
3520 case GICXXCustomAction_GICombiner77:{
3521 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3522 // Match Patterns
3523 if(![&](){return Helper.matchAddEToAddO(*State.MIs[0], GIMatchData_matchinfo);}()) {
3524 return false;
3525 }
3526 // Apply Patterns
3527 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3528 return true;
3529 }
3530 case GICXXCustomAction_GICombiner78:{
3531 unsigned GIMatchData_info;
3532 // Match Patterns
3533 if(![&](){return Helper.matchCombineFMinMaxNaN(*State.MIs[0], GIMatchData_info);}()) {
3534 return false;
3535 }
3536 // Apply Patterns
3537 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_info);
3538 return true;
3539 }
3540 case GICXXCustomAction_GICombiner79:{
3541 // Match Patterns
3542 if(![&](){return Helper.matchFPowIExpansion(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());}()) {
3543 return false;
3544 }
3545 // Apply Patterns
3546 Helper.applyExpandFPowI(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());
3547 return true;
3548 }
3549 case GICXXCustomAction_GICombiner80:{
3550 std::pair<Register, Register> GIMatchData_matchinfo;
3551 // Match Patterns
3552 if(![&](){return Helper.matchXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3553 return false;
3554 }
3555 // Apply Patterns
3556 Helper.applyXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);
3557 return true;
3558 }
3559 case GICXXCustomAction_GICombiner81:{
3560 RegisterImmPair GIMatchData_matchinfo;
3561 // Match Patterns
3562 if(![&](){return Helper.matchShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
3563 return false;
3564 }
3565 // Apply Patterns
3566 Helper.applyShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);
3567 return true;
3568 }
3569 case GICXXCustomAction_GICombiner82:{
3570 ShiftOfShiftedLogic GIMatchData_matchinfo;
3571 // Match Patterns
3572 if(![&](){return Helper.matchShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);}()) {
3573 return false;
3574 }
3575 // Apply Patterns
3576 Helper.applyShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);
3577 return true;
3578 }
3579 case GICXXCustomAction_GICombiner83:{
3580 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3581 // Match Patterns
3582 if(![&](){return Helper.matchLoadOrCombine(*State.MIs[0], GIMatchData_info);}()) {
3583 return false;
3584 }
3585 // Apply Patterns
3586 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3587 return true;
3588 }
3589 case GICXXCustomAction_GICombiner84:{
3590 MachineInstr * GIMatchData_matchinfo;
3591 // Match Patterns
3592 if(![&](){return Helper.matchCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);}()) {
3593 return false;
3594 }
3595 // Apply Patterns
3596 Helper.applyCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);
3597 return true;
3598 }
3599 case GICXXCustomAction_GICombiner85:{
3600 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3601 // Match Patterns
3602 if(![&](){return Helper.matchOrShiftToFunnelShift(*State.MIs[0], false, GIMatchData_info);}()) {
3603 return false;
3604 }
3605 // Apply Patterns
3606 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3607 return true;
3608 }
3609 case GICXXCustomAction_GICombiner86:{
3610 // Match Patterns
3611 if(![&](){return Helper.matchFunnelShiftToRotate(*State.MIs[0]);}()) {
3612 return false;
3613 }
3614 // Apply Patterns
3615 Helper.applyFunnelShiftToRotate(*State.MIs[0]);
3616 return true;
3617 }
3618 case GICXXCustomAction_GICombiner87:{
3619 // Match Patterns
3620 if(![&](){return Helper.matchConstantLargerBitWidth(*State.MIs[0], 3);}()) {
3621 return false;
3622 }
3623 // Apply Patterns
3624 Helper.applyFunnelShiftConstantModulo(*State.MIs[0]);
3625 return true;
3626 }
3627 case GICXXCustomAction_GICombiner88:{
3628 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3629 // Match Patterns
3630 if(![&](){return Helper.matchBitfieldExtractFromSExtInReg(*State.MIs[0], GIMatchData_info);}()) {
3631 return false;
3632 }
3633 // Apply Patterns
3634 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3635 return true;
3636 }
3637 case GICXXCustomAction_GICombiner89:{
3638 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3639 // Match Patterns
3640 if(![&](){return Helper.matchBitfieldExtractFromAnd(*State.MIs[0], GIMatchData_info);}()) {
3641 return false;
3642 }
3643 // Apply Patterns
3644 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3645 return true;
3646 }
3647 case GICXXCustomAction_GICombiner90:{
3648 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3649 // Match Patterns
3650 if(![&](){return Helper.matchBitfieldExtractFromShr(*State.MIs[0], GIMatchData_info);}()) {
3651 return false;
3652 }
3653 // Apply Patterns
3654 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3655 return true;
3656 }
3657 case GICXXCustomAction_GICombiner91:{
3658 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3659 // Match Patterns
3660 if(![&](){return Helper.matchBitfieldExtractFromShrAnd(*State.MIs[0], GIMatchData_info);}()) {
3661 return false;
3662 }
3663 // Apply Patterns
3664 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3665 return true;
3666 }
3667 case GICXXCustomAction_GICombiner92:{
3668 APInt GIMatchData_matchinfo;
3669 // Match Patterns
3670 if(![&](){return Helper.matchConstantFoldBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3671 return false;
3672 }
3673 // Apply Patterns
3674 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3675 return true;
3676 }
3677 case GICXXCustomAction_GICombiner93:{
3678 ConstantFP* GIMatchData_matchinfo;
3679 // Match Patterns
3680 if(![&](){return Helper.matchConstantFoldFPBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3681 return false;
3682 }
3683 // Apply Patterns
3684 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3685 return true;
3686 }
3687 case GICXXCustomAction_GICombiner94:{
3688 ConstantFP* GIMatchData_matchinfo;
3689 // Match Patterns
3690 if(![&](){return Helper.matchConstantFoldFMA(*State.MIs[0], GIMatchData_matchinfo);}()) {
3691 return false;
3692 }
3693 // Apply Patterns
3694 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3695 return true;
3696 }
3697 case GICXXCustomAction_GICombiner95:{
3698 APInt GIMatchData_matchinfo;
3699 // Match Patterns
3700 if(![&](){return Helper.matchConstantFoldCastOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3701 return false;
3702 }
3703 // Apply Patterns
3704 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3705 return true;
3706 }
3707 case GICXXCustomAction_GICombiner96:{
3708 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3709 // Match Patterns
3710 if(![&](){return Helper.matchConstantFoldUnaryIntOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3711 return false;
3712 }
3713 // Apply Patterns
3714 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3715 return true;
3716 }
3717 case GICXXCustomAction_GICombiner97:{
3718 // Match Patterns
3719 if(![&](){return Helper.matchUMulHToLShr(*State.MIs[0]);}()) {
3720 return false;
3721 }
3722 // Apply Patterns
3723 Helper.applyUMulHToLShr(*State.MIs[0]);
3724 return true;
3725 }
3726 case GICXXCustomAction_GICombiner98:{
3727 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3728 // Match Patterns
3729 if(![&](){return Helper.matchRedundantNegOperands(*State.MIs[0], GIMatchData_matchinfo);}()) {
3730 return false;
3731 }
3732 // Apply Patterns
3733 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3734 return true;
3735 }
3736 case GICXXCustomAction_GICombiner99:{
3737 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3738 // Match Patterns
3739 if(![&](){return Helper.matchAndOrDisjointMask(*State.MIs[0], GIMatchData_info);}()) {
3740 return false;
3741 }
3742 // Apply Patterns
3743 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_info);
3744 return true;
3745 }
3746 case GICXXCustomAction_GICombiner100:{
3747 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3748 // Match Patterns
3749 if(![&](){return Helper.matchCombineFAddFMulToFMadOrFMA(*State.MIs[0],
3750 GIMatchData_info);}()) {
3751 return false;
3752 }
3753 // Apply Patterns
3754 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3755 return true;
3756 }
3757 case GICXXCustomAction_GICombiner101:{
3758 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3759 // Match Patterns
3760 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMA(*State.MIs[0],
3761 GIMatchData_info);}()) {
3762 return false;
3763 }
3764 // Apply Patterns
3765 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3766 return true;
3767 }
3768 case GICXXCustomAction_GICombiner102:{
3769 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3770 // Match Patterns
3771 if(![&](){return Helper.matchCombineFAddFMAFMulToFMadOrFMA(*State.MIs[0],
3772 GIMatchData_info);}()) {
3773 return false;
3774 }
3775 // Apply Patterns
3776 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3777 return true;
3778 }
3779 case GICXXCustomAction_GICombiner103:{
3780 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3781 // Match Patterns
3782 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMAAggressive(
3783 *State.MIs[0], GIMatchData_info);}()) {
3784 return false;
3785 }
3786 // Apply Patterns
3787 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3788 return true;
3789 }
3790 case GICXXCustomAction_GICombiner104:{
3791 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3792 // Match Patterns
3793 if(![&](){return Helper.matchCombineFSubFMulToFMadOrFMA(*State.MIs[0],
3794 GIMatchData_info);}()) {
3795 return false;
3796 }
3797 // Apply Patterns
3798 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3799 return true;
3800 }
3801 case GICXXCustomAction_GICombiner105:{
3802 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3803 // Match Patterns
3804 if(![&](){return Helper.matchCombineFSubFNegFMulToFMadOrFMA(*State.MIs[0],
3805 GIMatchData_info);}()) {
3806 return false;
3807 }
3808 // Apply Patterns
3809 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3810 return true;
3811 }
3812 case GICXXCustomAction_GICombiner106:{
3813 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3814 // Match Patterns
3815 if(![&](){return Helper.matchCombineFSubFpExtFMulToFMadOrFMA(*State.MIs[0],
3816 GIMatchData_info);}()) {
3817 return false;
3818 }
3819 // Apply Patterns
3820 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3821 return true;
3822 }
3823 case GICXXCustomAction_GICombiner107:{
3824 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3825 // Match Patterns
3826 if(![&](){return Helper.matchCombineFSubFpExtFNegFMulToFMadOrFMA(
3827 *State.MIs[0], GIMatchData_info);}()) {
3828 return false;
3829 }
3830 // Apply Patterns
3831 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3832 return true;
3833 }
3834 case GICXXCustomAction_GICombiner108:{
3835 unsigned GIMatchData_select_op_no;
3836 // Match Patterns
3837 if(![&](){return Helper.matchFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);}()) {
3838 return false;
3839 }
3840 // Apply Patterns
3841 Helper.applyFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);
3842 return true;
3843 }
3844 case GICXXCustomAction_GICombiner109:{
3845 // Match Patterns
3846 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(State.MIs[0]->getOperand(2),
3847 /*OrNegative=*/true);}()) {
3848 return false;
3849 }
3850 // Apply Patterns
3851 Helper.applySimplifySRemByPow2(*State.MIs[0]);
3852 return true;
3853 }
3854 case GICXXCustomAction_GICombiner110:{
3855 // Match Patterns
3856 if(![&](){return Helper.matchUDivOrURemByConst(*State.MIs[0]);}()) {
3857 return false;
3858 }
3859 // Apply Patterns
3860 Helper.applyUDivOrURemByConst(*State.MIs[0]);
3861 return true;
3862 }
3863 case GICXXCustomAction_GICombiner111:{
3864 // Match Patterns
3865 if(![&](){return Helper.matchSDivOrSRemByConst(*State.MIs[0]);}()) {
3866 return false;
3867 }
3868 // Apply Patterns
3869 Helper.applySDivOrSRemByConst(*State.MIs[0]);
3870 return true;
3871 }
3872 case GICXXCustomAction_GICombiner112:{
3873 // Match Patterns
3874 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/false);}()) {
3875 return false;
3876 }
3877 // Apply Patterns
3878 Helper.applyUDivByPow2(*State.MIs[0]);
3879 return true;
3880 }
3881 case GICXXCustomAction_GICombiner113:{
3882 // Match Patterns
3883 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/true);}()) {
3884 return false;
3885 }
3886 // Apply Patterns
3887 Helper.applySDivByPow2(*State.MIs[0]);
3888 return true;
3889 }
3890 case GICXXCustomAction_GICombiner114:{
3891 SmallVector<MachineInstr *> GIMatchData_matchinfo;
3892 // Match Patterns
3893 if(![&](){return Helper.matchRepeatedFPDivisor(*State.MIs[0], GIMatchData_matchinfo);}()) {
3894 return false;
3895 }
3896 // Apply Patterns
3897 Helper.applyRepeatedFPDivisor(GIMatchData_matchinfo);
3898 return true;
3899 }
3900 case GICXXCustomAction_GICombiner115:{
3901 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3902 // Match Patterns
3903 if(![&](){return Helper.matchSubAddSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3904 return false;
3905 }
3906 // Apply Patterns
3907 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3908 return true;
3909 }
3910 case GICXXCustomAction_GICombiner116:{
3911 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3912 // Match Patterns
3913 if(![&](){return Helper.matchSimplifySelectToMinMax(*State.MIs[0], GIMatchData_info);}()) {
3914 return false;
3915 }
3916 // Apply Patterns
3917 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3918 return true;
3919 }
3920 case GICXXCustomAction_GICombiner117:{
3921 Register GIMatchData_matchinfo;
3922 // Match Patterns
3923 if(![&](){return Helper.matchFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3924 return false;
3925 }
3926 // Apply Patterns
3927 Helper.applyFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);
3928 return true;
3929 }
3930 case GICXXCustomAction_GICombiner118:{
3931 // Match Patterns
3932 if(![&](){return Helper.matchCommuteConstantToRHS(*State.MIs[0]);}()) {
3933 return false;
3934 }
3935 // Apply Patterns
3936 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
3937 return true;
3938 }
3939 case GICXXCustomAction_GICombiner119:{
3940 // Match Patterns
3941 if(![&](){return Helper.matchCommuteFPConstantToRHS(*State.MIs[0]);}()) {
3942 return false;
3943 }
3944 // Apply Patterns
3945 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
3946 return true;
3947 }
3948 case GICXXCustomAction_GICombiner120:{
3949 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3950 // Match Patterns
3951 if(![&](){return Helper.matchAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3952 return false;
3953 }
3954 // Apply Patterns
3955 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3956 return true;
3957 }
3958 case GICXXCustomAction_GICombiner121:{
3959 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3960 // Match Patterns
3961 if(![&](){return Helper.matchOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
3962 return false;
3963 }
3964 // Apply Patterns
3965 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3966 return true;
3967 }
3968 case GICXXCustomAction_GICombiner122:{
3969 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3970 // Match Patterns
3971 if(![&](){return Helper.matchSimplifyNegMinMax(*State.MIs[0], GIMatchData_matchinfo);}()) {
3972 return false;
3973 }
3974 // Apply Patterns
3975 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3976 return true;
3977 }
3978 case GICXXCustomAction_GICombiner123:{
3979 SmallVector<Register> GIMatchData_matchinfo;
3980 // Match Patterns
3981 if(![&](){return Helper.matchCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);}()) {
3982 return false;
3983 }
3984 // Apply Patterns
3985 Helper.applyCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);
3986 return true;
3987 }
3988 case GICXXCustomAction_GICombiner124:{
3989 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3990 // Match Patterns
3991 if(![&](){return Helper.matchSextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3992 return false;
3993 }
3994 // Apply Patterns
3995 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3996 return true;
3997 }
3998 case GICXXCustomAction_GICombiner125:{
3999 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4000 // Match Patterns
4001 if(![&](){return Helper.matchZextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4002 return false;
4003 }
4004 // Apply Patterns
4005 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4006 return true;
4007 }
4008 case GICXXCustomAction_GICombiner126:{
4009 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4010 // Match Patterns
4011 if(![&](){return Helper.matchNonNegZext(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4012 return false;
4013 }
4014 // Apply Patterns
4015 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4016 return true;
4017 }
4018 case GICXXCustomAction_GICombiner127:{
4019 SmallVector<Register> GIMatchData_matchinfo;
4020 // Match Patterns
4021 if(![&](){return Helper.matchCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);}()) {
4022 return false;
4023 }
4024 // Apply Patterns
4025 Helper.applyCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);
4026 return true;
4027 }
4028 case GICXXCustomAction_GICombiner128:{
4029 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4030 // Match Patterns
4031 if(![&](){return Helper.matchShuffleUndefRHS(*State.MIs[0], GIMatchData_matchinfo);}()) {
4032 return false;
4033 }
4034 // Apply Patterns
4035 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4036 return true;
4037 }
4038 case GICXXCustomAction_GICombiner129:{
4039 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4040 // Match Patterns
4041 if(![&](){return Helper.matchShuffleDisjointMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
4042 return false;
4043 }
4044 // Apply Patterns
4045 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4046 return true;
4047 }
4048 case GICXXCustomAction_GICombiner130:{
4049 Register GIMatchData_matchinfo;
4050 // Match Patterns
4051 if(![&](){return Helper.matchUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);}()) {
4052 return false;
4053 }
4054 // Apply Patterns
4055 Helper.applyUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);
4056 return true;
4057 }
4058 case GICXXCustomAction_GICombiner131:{
4059 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4060 // Match Patterns
4061 if(![&](){return Helper.matchUnmergeValuesAnyExtBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
4062 return false;
4063 }
4064 // Apply Patterns
4065 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4066 return true;
4067 }
4068 case GICXXCustomAction_GICombiner132:{
4069 SmallVector<Register> GIMatchData_info;
4070 // Match Patterns
4071 if(![&](){return Helper.matchCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);}()) {
4072 return false;
4073 }
4074 // Apply Patterns
4075 Helper.applyCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);
4076 return true;
4077 }
4078 case GICXXCustomAction_GICombiner133:{
4079 Register GIMatchData_src;
4080 // Match Patterns
4081 if(![&](){// Check if first source comes from G_UNMERGE_VALUES.
4082 Register FirstMergeSrc = getRemainingOperands(*State.MIs[0], 1)[0].getReg();
4083 MachineInstr *UnmergeMI = MRI.getVRegDef(FirstMergeSrc);
4084 if (!UnmergeMI || UnmergeMI->getOpcode() != TargetOpcode::G_UNMERGE_VALUES)
4085 return false;
4086
4087 // Check counts match.
4088 unsigned NumMergeSrcs = getRemainingOperands(*State.MIs[0], 1).size();
4089 unsigned NumUnmergeDefs = UnmergeMI->getNumDefs();
4090 if (NumMergeSrcs != NumUnmergeDefs)
4091 return false;
4092
4093 // Verify all merge sources match unmerge defs in order.
4094 for (unsigned I = 0; I < NumMergeSrcs; ++I) {
4095 Register MergeSrc = getRemainingOperands(*State.MIs[0], 1)[I].getReg();
4096 Register UnmergeDef = UnmergeMI->getOperand(I).getReg();
4097
4098 if (MergeSrc != UnmergeDef)
4099 return false;
4100
4101 if (!MRI.hasOneNonDBGUse(MergeSrc))
4102 return false;
4103 }
4104
4105 // Check size compatibility.
4106 GIMatchData_src = UnmergeMI->getOperand(NumUnmergeDefs).getReg();
4107 LLT SrcTy = MRI.getType(GIMatchData_src);
4108 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
4109 if (SrcTy.getSizeInBits() != DstTy.getSizeInBits())
4110 return false;
4111
4112 // Check bitcast legality.
4113 if (SrcTy != DstTy) {
4114 std::array<LLT, 2> Types = {{DstTy, SrcTy}};
4115 LegalityQuery Query(TargetOpcode::G_BITCAST, Types);
4116 if (!Helper.isLegalOrBeforeLegalizer(Query))
4117 return false;
4118 }
4119
4120 return true;}()) {
4121 return false;
4122 }
4123 // Apply Patterns
4124 LLT SrcTy = MRI.getType(GIMatchData_src);
4125 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
4126
4127 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
4128
4129 if (SrcTy == DstTy) {
4130 Helper.replaceRegWith(MRI, State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
4131 } else {
4132 Helper.getBuilder().buildBitcast(State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
4133 }
4134
4135 State.MIs[0]->eraseFromParent();
4136 return true;
4137 }
4138 case GICXXCustomAction_GICombiner134:{
4139 SmallVector<APInt, 8> GIMatchData_info;
4140 // Match Patterns
4141 if(![&](){return Helper.matchCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);}()) {
4142 return false;
4143 }
4144 // Apply Patterns
4145 Helper.applyCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);
4146 return true;
4147 }
4148 case GICXXCustomAction_GICombiner135:{
4149 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4150 // Match Patterns
4151 if(![&](){return Helper.matchCombineUnmergeUndef(*State.MIs[0], GIMatchData_info);}()) {
4152 return false;
4153 }
4154 // Apply Patterns
4155 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4156 return true;
4157 }
4158 case GICXXCustomAction_GICombiner136:{
4159 // Match Patterns
4160 if(![&](){return Helper.matchCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);}()) {
4161 return false;
4162 }
4163 // Apply Patterns
4164 Helper.applyCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);
4165 return true;
4166 }
4167 case GICXXCustomAction_GICombiner137:{
4168 // Match Patterns
4169 if(![&](){return Helper.matchCombineUnmergeZExtToZExt(*State.MIs[0]);}()) {
4170 return false;
4171 }
4172 // Apply Patterns
4173 Helper.applyCombineUnmergeZExtToZExt(*State.MIs[0]);
4174 return true;
4175 }
4176 case GICXXCustomAction_GICombiner138:{
4177 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4178 // Match Patterns
4179 if(![&](){return Helper.matchMergeXAndUndef(*State.MIs[0], GIMatchData_matchinfo);}()) {
4180 return false;
4181 }
4182 // Apply Patterns
4183 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4184 return true;
4185 }
4186 case GICXXCustomAction_GICombiner139:{
4187 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4188 // Match Patterns
4189 if(![&](){return Helper.matchMergeXAndZero(*State.MIs[0], GIMatchData_matchinfo);}()) {
4190 return false;
4191 }
4192 // Apply Patterns
4193 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4194 return true;
4195 }
4196 case GICXXCustomAction_GICombiner140:{
4197 Register GIMatchData_unmergeSrc;
4198 // Match Patterns
4199 if(![&](){return Helper.matchCombineBuildUnmerge(*State.MIs[0], MRI, GIMatchData_unmergeSrc);}()) {
4200 return false;
4201 }
4202 // Apply Patterns
4203 Helper.applyCombineBuildUnmerge(*State.MIs[0], MRI, B, GIMatchData_unmergeSrc);
4204 return true;
4205 }
4206 case GICXXCustomAction_GICombiner141:{
4207 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4208 // Match Patterns
4209 if(![&](){return Helper.matchAddOverflow(*State.MIs[0], GIMatchData_matchinfo);}()) {
4210 return false;
4211 }
4212 // Apply Patterns
4213 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4214 return true;
4215 }
4216 case GICXXCustomAction_GICombiner142:{
4217 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4218 // Match Patterns
4219 if(![&](){return Helper.matchSuboCarryOut(*State.MIs[0], GIMatchData_matchinfo);}()) {
4220 return false;
4221 }
4222 // Apply Patterns
4223 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4224 return true;
4225 }
4226 case GICXXCustomAction_GICombiner143:{
4227 Register GIMatchData_matchinfo;
4228 // Match Patterns
4229 if(![&](){return Helper.matchTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);}()) {
4230 return false;
4231 }
4232 // Apply Patterns
4233 Helper.applyTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);
4234 return true;
4235 }
4236 case GICXXCustomAction_GICombiner144:{
4237 Register GIMatchData_matchinfo;
4238 // Match Patterns
4239 if(![&](){return Helper.matchTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);}()) {
4240 return false;
4241 }
4242 // Apply Patterns
4243 Helper.applyTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);
4244 return true;
4245 }
4246 case GICXXCustomAction_GICombiner145:{
4247 LshrOfTruncOfLshr GIMatchData_matchinfo;
4248 // Match Patterns
4249 if(![&](){return Helper.matchLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo, *State.MIs[2]);}()) {
4250 return false;
4251 }
4252 // Apply Patterns
4253 Helper.applyLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo);
4254 return true;
4255 }
4256 case GICXXCustomAction_GICombiner146:{
4257 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4258 // Match Patterns
4259 if(![&](){return Helper.matchCtls(*State.MIs[0], GIMatchData_matchinfo);}()) {
4260 return false;
4261 }
4262 // Apply Patterns
4263 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4264 return true;
4265 }
4266 case GICXXCustomAction_GICombiner147:{
4267 // Match Patterns
4268 if(![&](){return Helper.matchCountZeroToZeroPoison(*State.MIs[0]);}()) {
4269 return false;
4270 }
4271 // Apply Patterns
4272 Helper.applyCountZeroToZeroPoison(*State.MIs[0]);
4273 return true;
4274 }
4275 case GICXXCustomAction_GICombiner148:{
4276 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4277 // Match Patterns
4278 if(![&](){return Helper.matchBinopWithNeg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4279 return false;
4280 }
4281 // Apply Patterns
4282 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4283 return true;
4284 }
4285 }
4286 llvm_unreachable("Unknown Apply Action");
4287}
4288#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
4289#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((Val) >> 8)
4290#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24)
4291#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)
4292#else
4293#define GIMT_Encode2(Val) uint8_t((Val) >> 8), uint8_t(Val)
4294#define GIMT_Encode4(Val) uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
4295#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)
4296#endif
4297const uint8_t *RISCVPreLegalizerCombinerImpl::getMatchTable() const {
4298 constexpr static uint8_t MatchTable0[] = {
4299 /* 0 */ GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(20), GIMT_Encode2(286), /*)*//*default:*//*Label 113*/ GIMT_Encode4(11159),
4300 /* 10 */ /*TargetOpcode::COPY*//*Label 0*/ GIMT_Encode4(1074), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4301 /* 150 */ /*TargetOpcode::G_ADD*//*Label 1*/ GIMT_Encode4(1086),
4302 /* 154 */ /*TargetOpcode::G_SUB*//*Label 2*/ GIMT_Encode4(2036),
4303 /* 158 */ /*TargetOpcode::G_MUL*//*Label 3*/ GIMT_Encode4(3048),
4304 /* 162 */ /*TargetOpcode::G_SDIV*//*Label 4*/ GIMT_Encode4(3285),
4305 /* 166 */ /*TargetOpcode::G_UDIV*//*Label 5*/ GIMT_Encode4(3387),
4306 /* 170 */ /*TargetOpcode::G_SREM*//*Label 6*/ GIMT_Encode4(3510),
4307 /* 174 */ /*TargetOpcode::G_UREM*//*Label 7*/ GIMT_Encode4(3606), GIMT_Encode4(0), GIMT_Encode4(0),
4308 /* 186 */ /*TargetOpcode::G_AND*//*Label 8*/ GIMT_Encode4(3723),
4309 /* 190 */ /*TargetOpcode::G_OR*//*Label 9*/ GIMT_Encode4(4181),
4310 /* 194 */ /*TargetOpcode::G_XOR*//*Label 10*/ GIMT_Encode4(5027), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4311 /* 226 */ /*TargetOpcode::G_PHI*//*Label 11*/ GIMT_Encode4(5269), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4312 /* 250 */ /*TargetOpcode::G_UNMERGE_VALUES*//*Label 12*/ GIMT_Encode4(5284), GIMT_Encode4(0),
4313 /* 258 */ /*TargetOpcode::G_MERGE_VALUES*//*Label 13*/ GIMT_Encode4(5351),
4314 /* 262 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 14*/ GIMT_Encode4(5428),
4315 /* 266 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 15*/ GIMT_Encode4(5493),
4316 /* 270 */ /*TargetOpcode::G_CONCAT_VECTORS*//*Label 16*/ GIMT_Encode4(5505),
4317 /* 274 */ /*TargetOpcode::G_PTRTOINT*//*Label 17*/ GIMT_Encode4(5520),
4318 /* 278 */ /*TargetOpcode::G_INTTOPTR*//*Label 18*/ GIMT_Encode4(5563),
4319 /* 282 */ /*TargetOpcode::G_BITCAST*//*Label 19*/ GIMT_Encode4(5618),
4320 /* 286 */ /*TargetOpcode::G_FREEZE*//*Label 20*/ GIMT_Encode4(5693), GIMT_Encode4(0), GIMT_Encode4(0),
4321 /* 298 */ /*TargetOpcode::G_INTRINSIC_TRUNC*//*Label 21*/ GIMT_Encode4(5757),
4322 /* 302 */ /*TargetOpcode::G_INTRINSIC_ROUND*//*Label 22*/ GIMT_Encode4(5779), GIMT_Encode4(0), GIMT_Encode4(0),
4323 /* 314 */ /*TargetOpcode::G_INTRINSIC_ROUNDEVEN*//*Label 23*/ GIMT_Encode4(5801), GIMT_Encode4(0), GIMT_Encode4(0),
4324 /* 326 */ /*TargetOpcode::G_LOAD*//*Label 24*/ GIMT_Encode4(5823),
4325 /* 330 */ /*TargetOpcode::G_SEXTLOAD*//*Label 25*/ GIMT_Encode4(5835),
4326 /* 334 */ /*TargetOpcode::G_ZEXTLOAD*//*Label 26*/ GIMT_Encode4(5847), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4327 /* 354 */ /*TargetOpcode::G_STORE*//*Label 27*/ GIMT_Encode4(5859), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4328 /* 502 */ /*TargetOpcode::G_ANYEXT*//*Label 28*/ GIMT_Encode4(5871),
4329 /* 506 */ /*TargetOpcode::G_TRUNC*//*Label 29*/ GIMT_Encode4(5999), GIMT_Encode4(0), GIMT_Encode4(0),
4330 /* 518 */ /*TargetOpcode::G_TRUNC_USAT_U*//*Label 30*/ GIMT_Encode4(6411), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4331 /* 538 */ /*TargetOpcode::G_SEXT*//*Label 31*/ GIMT_Encode4(6444),
4332 /* 542 */ /*TargetOpcode::G_SEXT_INREG*//*Label 32*/ GIMT_Encode4(6519),
4333 /* 546 */ /*TargetOpcode::G_ZEXT*//*Label 33*/ GIMT_Encode4(6741),
4334 /* 550 */ /*TargetOpcode::G_SHL*//*Label 34*/ GIMT_Encode4(6871),
4335 /* 554 */ /*TargetOpcode::G_LSHR*//*Label 35*/ GIMT_Encode4(7234),
4336 /* 558 */ /*TargetOpcode::G_ASHR*//*Label 36*/ GIMT_Encode4(7591),
4337 /* 562 */ /*TargetOpcode::G_FSHL*//*Label 37*/ GIMT_Encode4(7930),
4338 /* 566 */ /*TargetOpcode::G_FSHR*//*Label 38*/ GIMT_Encode4(7973),
4339 /* 570 */ /*TargetOpcode::G_ROTR*//*Label 39*/ GIMT_Encode4(8016),
4340 /* 574 */ /*TargetOpcode::G_ROTL*//*Label 40*/ GIMT_Encode4(8040),
4341 /* 578 */ /*TargetOpcode::G_ICMP*//*Label 41*/ GIMT_Encode4(8064),
4342 /* 582 */ /*TargetOpcode::G_FCMP*//*Label 42*/ GIMT_Encode4(8109), GIMT_Encode4(0), GIMT_Encode4(0),
4343 /* 594 */ /*TargetOpcode::G_SELECT*//*Label 43*/ GIMT_Encode4(8121),
4344 /* 598 */ /*TargetOpcode::G_UADDO*//*Label 44*/ GIMT_Encode4(8417),
4345 /* 602 */ /*TargetOpcode::G_UADDE*//*Label 45*/ GIMT_Encode4(8440),
4346 /* 606 */ /*TargetOpcode::G_USUBO*//*Label 46*/ GIMT_Encode4(8452),
4347 /* 610 */ /*TargetOpcode::G_USUBE*//*Label 47*/ GIMT_Encode4(8464),
4348 /* 614 */ /*TargetOpcode::G_SADDO*//*Label 48*/ GIMT_Encode4(8476),
4349 /* 618 */ /*TargetOpcode::G_SADDE*//*Label 49*/ GIMT_Encode4(8499),
4350 /* 622 */ /*TargetOpcode::G_SSUBO*//*Label 50*/ GIMT_Encode4(8511),
4351 /* 626 */ /*TargetOpcode::G_SSUBE*//*Label 51*/ GIMT_Encode4(8523),
4352 /* 630 */ /*TargetOpcode::G_UMULO*//*Label 52*/ GIMT_Encode4(8535),
4353 /* 634 */ /*TargetOpcode::G_SMULO*//*Label 53*/ GIMT_Encode4(8569),
4354 /* 638 */ /*TargetOpcode::G_UMULH*//*Label 54*/ GIMT_Encode4(8603),
4355 /* 642 */ /*TargetOpcode::G_SMULH*//*Label 55*/ GIMT_Encode4(8626),
4356 /* 646 */ /*TargetOpcode::G_UADDSAT*//*Label 56*/ GIMT_Encode4(8638),
4357 /* 650 */ /*TargetOpcode::G_SADDSAT*//*Label 57*/ GIMT_Encode4(8650), GIMT_Encode4(0), GIMT_Encode4(0),
4358 /* 662 */ /*TargetOpcode::G_USHLSAT*//*Label 58*/ GIMT_Encode4(8662),
4359 /* 666 */ /*TargetOpcode::G_SSHLSAT*//*Label 59*/ GIMT_Encode4(8685),
4360 /* 670 */ /*TargetOpcode::G_SMULFIX*//*Label 60*/ GIMT_Encode4(8708),
4361 /* 674 */ /*TargetOpcode::G_UMULFIX*//*Label 61*/ GIMT_Encode4(8720),
4362 /* 678 */ /*TargetOpcode::G_SMULFIXSAT*//*Label 62*/ GIMT_Encode4(8732),
4363 /* 682 */ /*TargetOpcode::G_UMULFIXSAT*//*Label 63*/ GIMT_Encode4(8744), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4364 /* 702 */ /*TargetOpcode::G_FADD*//*Label 64*/ GIMT_Encode4(8756),
4365 /* 706 */ /*TargetOpcode::G_FSUB*//*Label 65*/ GIMT_Encode4(8897),
4366 /* 710 */ /*TargetOpcode::G_FMUL*//*Label 66*/ GIMT_Encode4(8986),
4367 /* 714 */ /*TargetOpcode::G_FMA*//*Label 67*/ GIMT_Encode4(9106),
4368 /* 718 */ /*TargetOpcode::G_FMAD*//*Label 68*/ GIMT_Encode4(9163),
4369 /* 722 */ /*TargetOpcode::G_FDIV*//*Label 69*/ GIMT_Encode4(9220),
4370 /* 726 */ /*TargetOpcode::G_FREM*//*Label 70*/ GIMT_Encode4(9297), GIMT_Encode4(0), GIMT_Encode4(0),
4371 /* 738 */ /*TargetOpcode::G_FPOWI*//*Label 71*/ GIMT_Encode4(9320), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4372 /* 758 */ /*TargetOpcode::G_FLOG2*//*Label 72*/ GIMT_Encode4(9342), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4373 /* 774 */ /*TargetOpcode::G_FNEG*//*Label 73*/ GIMT_Encode4(9364),
4374 /* 778 */ /*TargetOpcode::G_FPEXT*//*Label 74*/ GIMT_Encode4(9415),
4375 /* 782 */ /*TargetOpcode::G_FPTRUNC*//*Label 75*/ GIMT_Encode4(9437),
4376 /* 786 */ /*TargetOpcode::G_FPTOSI*//*Label 76*/ GIMT_Encode4(9480),
4377 /* 790 */ /*TargetOpcode::G_FPTOUI*//*Label 77*/ GIMT_Encode4(9502),
4378 /* 794 */ /*TargetOpcode::G_SITOFP*//*Label 78*/ GIMT_Encode4(9524),
4379 /* 798 */ /*TargetOpcode::G_UITOFP*//*Label 79*/ GIMT_Encode4(9561), GIMT_Encode4(0), GIMT_Encode4(0),
4380 /* 810 */ /*TargetOpcode::G_FABS*//*Label 80*/ GIMT_Encode4(9598),
4381 /* 814 */ /*TargetOpcode::G_FCOPYSIGN*//*Label 81*/ GIMT_Encode4(9677), GIMT_Encode4(0),
4382 /* 822 */ /*TargetOpcode::G_FCANONICALIZE*//*Label 82*/ GIMT_Encode4(9689),
4383 /* 826 */ /*TargetOpcode::G_FMINNUM*//*Label 83*/ GIMT_Encode4(9719),
4384 /* 830 */ /*TargetOpcode::G_FMAXNUM*//*Label 84*/ GIMT_Encode4(9764),
4385 /* 834 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 85*/ GIMT_Encode4(9809),
4386 /* 838 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 86*/ GIMT_Encode4(9821),
4387 /* 842 */ /*TargetOpcode::G_FMINIMUM*//*Label 87*/ GIMT_Encode4(9833),
4388 /* 846 */ /*TargetOpcode::G_FMAXIMUM*//*Label 88*/ GIMT_Encode4(9878),
4389 /* 850 */ /*TargetOpcode::G_FMINIMUMNUM*//*Label 89*/ GIMT_Encode4(9923),
4390 /* 854 */ /*TargetOpcode::G_FMAXIMUMNUM*//*Label 90*/ GIMT_Encode4(9935), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4391 /* 890 */ /*TargetOpcode::G_PTR_ADD*//*Label 91*/ GIMT_Encode4(9947), GIMT_Encode4(0),
4392 /* 898 */ /*TargetOpcode::G_SMIN*//*Label 92*/ GIMT_Encode4(10072),
4393 /* 902 */ /*TargetOpcode::G_SMAX*//*Label 93*/ GIMT_Encode4(10106),
4394 /* 906 */ /*TargetOpcode::G_UMIN*//*Label 94*/ GIMT_Encode4(10140),
4395 /* 910 */ /*TargetOpcode::G_UMAX*//*Label 95*/ GIMT_Encode4(10174),
4396 /* 914 */ /*TargetOpcode::G_ABS*//*Label 96*/ GIMT_Encode4(10208), GIMT_Encode4(0), GIMT_Encode4(0),
4397 /* 926 */ /*TargetOpcode::G_BR*//*Label 97*/ GIMT_Encode4(10241), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4398 /* 946 */ /*TargetOpcode::G_INSERT_VECTOR_ELT*//*Label 98*/ GIMT_Encode4(10253),
4399 /* 950 */ /*TargetOpcode::G_EXTRACT_VECTOR_ELT*//*Label 99*/ GIMT_Encode4(10383),
4400 /* 954 */ /*TargetOpcode::G_SHUFFLE_VECTOR*//*Label 100*/ GIMT_Encode4(10760), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4401 /* 970 */ /*TargetOpcode::G_CTTZ*//*Label 101*/ GIMT_Encode4(10833),
4402 /* 974 */ /*TargetOpcode::G_CTTZ_ZERO_POISON*//*Label 102*/ GIMT_Encode4(10856),
4403 /* 978 */ /*TargetOpcode::G_CTLZ*//*Label 103*/ GIMT_Encode4(10868),
4404 /* 982 */ /*TargetOpcode::G_CTLZ_ZERO_POISON*//*Label 104*/ GIMT_Encode4(10902), GIMT_Encode4(0),
4405 /* 990 */ /*TargetOpcode::G_CTPOP*//*Label 105*/ GIMT_Encode4(10925),
4406 /* 994 */ /*TargetOpcode::G_BSWAP*//*Label 106*/ GIMT_Encode4(10937),
4407 /* 998 */ /*TargetOpcode::G_BITREVERSE*//*Label 107*/ GIMT_Encode4(10949), GIMT_Encode4(0), GIMT_Encode4(0),
4408 /* 1010 */ /*TargetOpcode::G_FCEIL*//*Label 108*/ GIMT_Encode4(11049), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4409 /* 1058 */ /*TargetOpcode::G_FSQRT*//*Label 109*/ GIMT_Encode4(11071),
4410 /* 1062 */ /*TargetOpcode::G_FFLOOR*//*Label 110*/ GIMT_Encode4(11093),
4411 /* 1066 */ /*TargetOpcode::G_FRINT*//*Label 111*/ GIMT_Encode4(11115),
4412 /* 1070 */ /*TargetOpcode::G_FNEARBYINT*//*Label 112*/ GIMT_Encode4(11137),
4413 /* 1074 */ // Label 0: @1074
4414 /* 1074 */ GIM_Try, /*On fail goto*//*Label 114*/ GIMT_Encode4(1085), // Rule ID 19 //
4415 /* 1079 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
4416 /* 1082 */ // MIs[0] d
4417 /* 1082 */ // No operand predicates
4418 /* 1082 */ // MIs[0] s
4419 /* 1082 */ // No operand predicates
4420 /* 1082 */ // Combiner Rule #19: copy_prop
4421 /* 1082 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
4422 /* 1085 */ // Label 114: @1085
4423 /* 1085 */ GIM_Reject,
4424 /* 1086 */ // Label 1: @1086
4425 /* 1086 */ GIM_Try, /*On fail goto*//*Label 115*/ GIMT_Encode4(1097), // Rule ID 272 //
4426 /* 1091 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
4427 /* 1094 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_ADD'
4428 /* 1094 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
4429 /* 1097 */ // Label 115: @1097
4430 /* 1097 */ GIM_Try, /*On fail goto*//*Label 116*/ GIMT_Encode4(1108), // Rule ID 332 //
4431 /* 1102 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
4432 /* 1105 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_ADD'
4433 /* 1105 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
4434 /* 1108 */ // Label 116: @1108
4435 /* 1108 */ GIM_Try, /*On fail goto*//*Label 117*/ GIMT_Encode4(1119), // Rule ID 369 //
4436 /* 1113 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
4437 /* 1116 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_ADD'
4438 /* 1116 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
4439 /* 1119 */ // Label 117: @1119
4440 /* 1119 */ GIM_Try, /*On fail goto*//*Label 118*/ GIMT_Encode4(1207), // Rule ID 439 //
4441 /* 1124 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule267Enabled),
4442 /* 1127 */ // MIs[0] dst
4443 /* 1127 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4444 /* 1131 */ // MIs[0] __add_shift_match_0.shl_neg
4445 /* 1131 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4446 /* 1135 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
4447 /* 1139 */ // MIs[1] __add_shift_match_0.neg_y
4448 /* 1139 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4449 /* 1143 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4450 /* 1147 */ // MIs[2] __add_shift_match_0.zero
4451 /* 1147 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
4452 /* 1151 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4453 /* 1155 */ // MIs[3] Operand 1
4454 /* 1155 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
4455 /* 1166 */ // MIs[2] y
4456 /* 1166 */ // No operand predicates
4457 /* 1166 */ // MIs[1] n
4458 /* 1166 */ // No operand predicates
4459 /* 1166 */ // MIs[0] x
4460 /* 1166 */ // No operand predicates
4461 /* 1166 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner26),
4462 /* 1170 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4463 /* 1172 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4464 /* 1175 */ // Combiner Rule #267: add_shift @ [__add_shift_match_0[1]]
4465 /* 1175 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
4466 /* 1178 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4467 /* 1183 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
4468 /* 1187 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
4469 /* 1191 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4470 /* 1195 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4471 /* 1199 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // x
4472 /* 1203 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4473 /* 1206 */ GIR_EraseRootFromParent_Done,
4474 /* 1207 */ // Label 118: @1207
4475 /* 1207 */ GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(1295), // Rule ID 438 //
4476 /* 1212 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule267Enabled),
4477 /* 1215 */ // MIs[0] dst
4478 /* 1215 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4479 /* 1219 */ // MIs[0] x
4480 /* 1219 */ // No operand predicates
4481 /* 1219 */ // MIs[0] __add_shift_match_0.shl_neg
4482 /* 1219 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4483 /* 1223 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
4484 /* 1227 */ // MIs[1] __add_shift_match_0.neg_y
4485 /* 1227 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4486 /* 1231 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4487 /* 1235 */ // MIs[2] __add_shift_match_0.zero
4488 /* 1235 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
4489 /* 1239 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4490 /* 1243 */ // MIs[3] Operand 1
4491 /* 1243 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
4492 /* 1254 */ // MIs[2] y
4493 /* 1254 */ // No operand predicates
4494 /* 1254 */ // MIs[1] n
4495 /* 1254 */ // No operand predicates
4496 /* 1254 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner25),
4497 /* 1258 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4498 /* 1260 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4499 /* 1263 */ // Combiner Rule #267: add_shift @ [__add_shift_match_0[0]]
4500 /* 1263 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
4501 /* 1266 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4502 /* 1271 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
4503 /* 1275 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
4504 /* 1279 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4505 /* 1283 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4506 /* 1287 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // x
4507 /* 1291 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4508 /* 1294 */ GIR_EraseRootFromParent_Done,
4509 /* 1295 */ // Label 119: @1295
4510 /* 1295 */ GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(1329), // Rule ID 2 //
4511 /* 1300 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
4512 /* 1303 */ // MIs[0] root
4513 /* 1303 */ // No operand predicates
4514 /* 1303 */ // MIs[0] sub
4515 /* 1303 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4516 /* 1307 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4517 /* 1311 */ // MIs[1] Operand 1
4518 /* 1311 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
4519 /* 1315 */ // MIs[1] A
4520 /* 1315 */ // No operand predicates
4521 /* 1315 */ // MIs[0] B
4522 /* 1315 */ // No operand predicates
4523 /* 1315 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4524 /* 1317 */ // Combiner Rule #2: ZeroMinusAPlusB
4525 /* 1317 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4526 /* 1320 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4527 /* 1322 */ GIR_RootToRootCopy, /*OpIdx*/2, // B
4528 /* 1324 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // A
4529 /* 1328 */ GIR_EraseRootFromParent_Done,
4530 /* 1329 */ // Label 120: @1329
4531 /* 1329 */ GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(1378), // Rule ID 160 //
4532 /* 1334 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
4533 /* 1337 */ // MIs[0] dst
4534 /* 1337 */ // No operand predicates
4535 /* 1337 */ // MIs[0] __simplify_add_to_sub_match_0.neg
4536 /* 1337 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4537 /* 1341 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4538 /* 1345 */ // MIs[1] __simplify_add_to_sub_match_0.zero
4539 /* 1345 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4540 /* 1349 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4541 /* 1353 */ // MIs[2] Operand 1
4542 /* 1353 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(0),
4543 /* 1364 */ // MIs[1] newrhs
4544 /* 1364 */ // No operand predicates
4545 /* 1364 */ // MIs[0] newlhs
4546 /* 1364 */ // No operand predicates
4547 /* 1364 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4548 /* 1366 */ // Combiner Rule #112: simplify_add_to_sub @ [__simplify_add_to_sub_match_0[0]]
4549 /* 1366 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4550 /* 1369 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
4551 /* 1371 */ GIR_RootToRootCopy, /*OpIdx*/2, // newlhs
4552 /* 1373 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // newrhs
4553 /* 1377 */ GIR_EraseRootFromParent_Done,
4554 /* 1378 */ // Label 121: @1378
4555 /* 1378 */ GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(1415), // Rule ID 18 //
4556 /* 1383 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
4557 /* 1386 */ // MIs[0] root
4558 /* 1386 */ // No operand predicates
4559 /* 1386 */ // MIs[0] sub
4560 /* 1386 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4561 /* 1390 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4562 /* 1394 */ // MIs[1] A
4563 /* 1394 */ // No operand predicates
4564 /* 1394 */ // MIs[1] c1
4565 /* 1394 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4566 /* 1398 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4567 /* 1402 */ // MIs[2] imm1
4568 /* 1402 */ // No operand predicates
4569 /* 1402 */ // MIs[0] c2
4570 /* 1402 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4571 /* 1406 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4572 /* 1410 */ // MIs[3] imm2
4573 /* 1410 */ // No operand predicates
4574 /* 1410 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4575 /* 1412 */ // Combiner Rule #18: AMinusC1PlusC2
4576 /* 1412 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
4577 /* 1415 */ // Label 122: @1415
4578 /* 1415 */ GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(1449), // Rule ID 5 //
4579 /* 1420 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
4580 /* 1423 */ // MIs[0] root
4581 /* 1423 */ // No operand predicates
4582 /* 1423 */ // MIs[0] sub
4583 /* 1423 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4584 /* 1427 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4585 /* 1431 */ // MIs[1] B
4586 /* 1431 */ // No operand predicates
4587 /* 1431 */ // MIs[1] A
4588 /* 1431 */ // No operand predicates
4589 /* 1431 */ // MIs[0] A
4590 /* 1431 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
4591 /* 1436 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4592 /* 1441 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4593 /* 1443 */ // Combiner Rule #5: BMinusAPlusA
4594 /* 1443 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4595 /* 1448 */ GIR_EraseRootFromParent_Done,
4596 /* 1449 */ // Label 123: @1449
4597 /* 1449 */ GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(1483), // Rule ID 148 //
4598 /* 1454 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
4599 /* 1457 */ // MIs[0] dst
4600 /* 1457 */ // No operand predicates
4601 /* 1457 */ // MIs[0] __add_sub_reg_match_0.tmp
4602 /* 1457 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4603 /* 1461 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4604 /* 1465 */ // MIs[1] src
4605 /* 1465 */ // No operand predicates
4606 /* 1465 */ // MIs[1] __add_sub_reg_match_0.x
4607 /* 1465 */ // No operand predicates
4608 /* 1465 */ // MIs[0] __add_sub_reg_match_0.x
4609 /* 1465 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
4610 /* 1470 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4611 /* 1475 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4612 /* 1477 */ // Combiner Rule #101: add_sub_reg @ [__add_sub_reg_match_0[1]]
4613 /* 1477 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4614 /* 1482 */ GIR_EraseRootFromParent_Done,
4615 /* 1483 */ // Label 124: @1483
4616 /* 1483 */ GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(1528), // Rule ID 7 //
4617 /* 1488 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
4618 /* 1491 */ // MIs[0] root
4619 /* 1491 */ // No operand predicates
4620 /* 1491 */ // MIs[0] sub1
4621 /* 1491 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4622 /* 1495 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4623 /* 1499 */ // MIs[1] A
4624 /* 1499 */ // No operand predicates
4625 /* 1499 */ // MIs[1] B
4626 /* 1499 */ // No operand predicates
4627 /* 1499 */ // MIs[0] sub2
4628 /* 1499 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4629 /* 1503 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4630 /* 1507 */ // MIs[2] B
4631 /* 1507 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
4632 /* 1512 */ // MIs[2] C
4633 /* 1512 */ // No operand predicates
4634 /* 1512 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4635 /* 1514 */ // Combiner Rule #7: AMinusBPlusBMinusC
4636 /* 1514 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4637 /* 1517 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4638 /* 1519 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
4639 /* 1523 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
4640 /* 1527 */ GIR_EraseRootFromParent_Done,
4641 /* 1528 */ // Label 125: @1528
4642 /* 1528 */ GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(1573), // Rule ID 6 //
4643 /* 1533 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
4644 /* 1536 */ // MIs[0] root
4645 /* 1536 */ // No operand predicates
4646 /* 1536 */ // MIs[0] sub1
4647 /* 1536 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4648 /* 1540 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4649 /* 1544 */ // MIs[1] A
4650 /* 1544 */ // No operand predicates
4651 /* 1544 */ // MIs[1] B
4652 /* 1544 */ // No operand predicates
4653 /* 1544 */ // MIs[0] sub2
4654 /* 1544 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4655 /* 1548 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4656 /* 1552 */ // MIs[2] C
4657 /* 1552 */ // No operand predicates
4658 /* 1552 */ // MIs[2] A
4659 /* 1552 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
4660 /* 1557 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4661 /* 1559 */ // Combiner Rule #6: AMinusBPlusCMinusA
4662 /* 1559 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4663 /* 1562 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4664 /* 1564 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
4665 /* 1568 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
4666 /* 1572 */ GIR_EraseRootFromParent_Done,
4667 /* 1573 */ // Label 126: @1573
4668 /* 1573 */ GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(1628), // Rule ID 22 //
4669 /* 1578 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
4670 /* 1581 */ // MIs[0] dst
4671 /* 1581 */ // No operand predicates
4672 /* 1581 */ // MIs[0] __add_p2i_to_ptradd_match_0.x
4673 /* 1581 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4674 /* 1585 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_PTRTOINT),
4675 /* 1589 */ // MIs[1] ptr
4676 /* 1589 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
4677 /* 1593 */ // MIs[0] other
4678 /* 1593 */ // No operand predicates
4679 /* 1593 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
4680 /* 1597 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4681 /* 1599 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4682 /* 1602 */ // Combiner Rule #22: add_p2i_to_ptradd @ [__add_p2i_to_ptradd_match_0[0]]
4683 /* 1602 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTR_ADD),
4684 /* 1605 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4685 /* 1610 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
4686 /* 1614 */ GIR_RootToRootCopy, /*OpIdx*/2, // other
4687 /* 1616 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTRTOINT),
4688 /* 1620 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4689 /* 1624 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4690 /* 1627 */ GIR_EraseRootFromParent_Done,
4691 /* 1628 */ // Label 127: @1628
4692 /* 1628 */ GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(1663), // Rule ID 46 //
4693 /* 1633 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
4694 /* 1636 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
4695 /* 1642 */ // MIs[0] root
4696 /* 1642 */ // No operand predicates
4697 /* 1642 */ // MIs[0] left
4698 /* 1642 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4699 /* 1646 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
4700 /* 1650 */ // MIs[1] imm1
4701 /* 1650 */ // No operand predicates
4702 /* 1650 */ // MIs[0] right
4703 /* 1650 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4704 /* 1654 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_VSCALE),
4705 /* 1658 */ // MIs[2] imm2
4706 /* 1658 */ // No operand predicates
4707 /* 1658 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4708 /* 1660 */ // Combiner Rule #42: add_of_vscale
4709 /* 1660 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
4710 /* 1663 */ // Label 128: @1663
4711 /* 1663 */ GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(1684), // Rule ID 104 //
4712 /* 1668 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
4713 /* 1671 */ // MIs[0] dst
4714 /* 1671 */ // No operand predicates
4715 /* 1671 */ // MIs[0] __propagate_undef_any_op_match_0.x
4716 /* 1671 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4717 /* 1675 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
4718 /* 1679 */ // MIs[0] __propagate_undef_any_op_match_0.y
4719 /* 1679 */ // No operand predicates
4720 /* 1679 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4721 /* 1681 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[0]]
4722 /* 1681 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
4723 /* 1684 */ // Label 129: @1684
4724 /* 1684 */ GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(1718), // Rule ID 3 //
4725 /* 1689 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
4726 /* 1692 */ // MIs[0] root
4727 /* 1692 */ // No operand predicates
4728 /* 1692 */ // MIs[0] A
4729 /* 1692 */ // No operand predicates
4730 /* 1692 */ // MIs[0] sub
4731 /* 1692 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4732 /* 1696 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4733 /* 1700 */ // MIs[1] Operand 1
4734 /* 1700 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
4735 /* 1704 */ // MIs[1] B
4736 /* 1704 */ // No operand predicates
4737 /* 1704 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4738 /* 1706 */ // Combiner Rule #3: APlusZeroMinusB
4739 /* 1706 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4740 /* 1709 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4741 /* 1711 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
4742 /* 1713 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
4743 /* 1717 */ GIR_EraseRootFromParent_Done,
4744 /* 1718 */ // Label 130: @1718
4745 /* 1718 */ GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(1767), // Rule ID 161 //
4746 /* 1723 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
4747 /* 1726 */ // MIs[0] dst
4748 /* 1726 */ // No operand predicates
4749 /* 1726 */ // MIs[0] newlhs
4750 /* 1726 */ // No operand predicates
4751 /* 1726 */ // MIs[0] __simplify_add_to_sub_match_0.neg
4752 /* 1726 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4753 /* 1730 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4754 /* 1734 */ // MIs[1] __simplify_add_to_sub_match_0.zero
4755 /* 1734 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4756 /* 1738 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4757 /* 1742 */ // MIs[2] Operand 1
4758 /* 1742 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(0),
4759 /* 1753 */ // MIs[1] newrhs
4760 /* 1753 */ // No operand predicates
4761 /* 1753 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4762 /* 1755 */ // Combiner Rule #112: simplify_add_to_sub @ [__simplify_add_to_sub_match_0[1]]
4763 /* 1755 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4764 /* 1758 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
4765 /* 1760 */ GIR_RootToRootCopy, /*OpIdx*/1, // newlhs
4766 /* 1762 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // newrhs
4767 /* 1766 */ GIR_EraseRootFromParent_Done,
4768 /* 1767 */ // Label 131: @1767
4769 /* 1767 */ GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(1801), // Rule ID 4 //
4770 /* 1772 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
4771 /* 1775 */ // MIs[0] root
4772 /* 1775 */ // No operand predicates
4773 /* 1775 */ // MIs[0] A
4774 /* 1775 */ // No operand predicates
4775 /* 1775 */ // MIs[0] sub
4776 /* 1775 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4777 /* 1779 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4778 /* 1783 */ // MIs[1] B
4779 /* 1783 */ // No operand predicates
4780 /* 1783 */ // MIs[1] A
4781 /* 1783 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4782 /* 1788 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4783 /* 1793 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4784 /* 1795 */ // Combiner Rule #4: APlusBMinusB
4785 /* 1795 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4786 /* 1800 */ GIR_EraseRootFromParent_Done,
4787 /* 1801 */ // Label 132: @1801
4788 /* 1801 */ GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(1835), // Rule ID 147 //
4789 /* 1806 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
4790 /* 1809 */ // MIs[0] dst
4791 /* 1809 */ // No operand predicates
4792 /* 1809 */ // MIs[0] __add_sub_reg_match_0.x
4793 /* 1809 */ // No operand predicates
4794 /* 1809 */ // MIs[0] __add_sub_reg_match_0.tmp
4795 /* 1809 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4796 /* 1813 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4797 /* 1817 */ // MIs[1] src
4798 /* 1817 */ // No operand predicates
4799 /* 1817 */ // MIs[1] __add_sub_reg_match_0.x
4800 /* 1817 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4801 /* 1822 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4802 /* 1827 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4803 /* 1829 */ // Combiner Rule #101: add_sub_reg @ [__add_sub_reg_match_0[0]]
4804 /* 1829 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4805 /* 1834 */ GIR_EraseRootFromParent_Done,
4806 /* 1835 */ // Label 133: @1835
4807 /* 1835 */ GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(1880), // Rule ID 8 //
4808 /* 1840 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
4809 /* 1843 */ // MIs[0] root
4810 /* 1843 */ // No operand predicates
4811 /* 1843 */ // MIs[0] A
4812 /* 1843 */ // No operand predicates
4813 /* 1843 */ // MIs[0] sub1
4814 /* 1843 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4815 /* 1847 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4816 /* 1851 */ // MIs[1] B
4817 /* 1851 */ // No operand predicates
4818 /* 1851 */ // MIs[1] add1
4819 /* 1851 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4820 /* 1855 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4821 /* 1859 */ // MIs[2] A
4822 /* 1859 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
4823 /* 1864 */ // MIs[2] C
4824 /* 1864 */ // No operand predicates
4825 /* 1864 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4826 /* 1866 */ // Combiner Rule #8: APlusBMinusAplusC
4827 /* 1866 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4828 /* 1869 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4829 /* 1871 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
4830 /* 1875 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
4831 /* 1879 */ GIR_EraseRootFromParent_Done,
4832 /* 1880 */ // Label 134: @1880
4833 /* 1880 */ GIM_Try, /*On fail goto*//*Label 135*/ GIMT_Encode4(1925), // Rule ID 10 //
4834 /* 1885 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
4835 /* 1888 */ // MIs[0] root
4836 /* 1888 */ // No operand predicates
4837 /* 1888 */ // MIs[0] A
4838 /* 1888 */ // No operand predicates
4839 /* 1888 */ // MIs[0] sub1
4840 /* 1888 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4841 /* 1892 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4842 /* 1896 */ // MIs[1] B
4843 /* 1896 */ // No operand predicates
4844 /* 1896 */ // MIs[1] add1
4845 /* 1896 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4846 /* 1900 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4847 /* 1904 */ // MIs[2] C
4848 /* 1904 */ // No operand predicates
4849 /* 1904 */ // MIs[2] A
4850 /* 1904 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4851 /* 1909 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4852 /* 1911 */ // Combiner Rule #10: APlusBMinusCPlusA
4853 /* 1911 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4854 /* 1914 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4855 /* 1916 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
4856 /* 1920 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
4857 /* 1924 */ GIR_EraseRootFromParent_Done,
4858 /* 1925 */ // Label 135: @1925
4859 /* 1925 */ GIM_Try, /*On fail goto*//*Label 136*/ GIMT_Encode4(1980), // Rule ID 23 //
4860 /* 1930 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
4861 /* 1933 */ // MIs[0] dst
4862 /* 1933 */ // No operand predicates
4863 /* 1933 */ // MIs[0] other
4864 /* 1933 */ // No operand predicates
4865 /* 1933 */ // MIs[0] __add_p2i_to_ptradd_match_0.x
4866 /* 1933 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4867 /* 1937 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_PTRTOINT),
4868 /* 1941 */ // MIs[1] ptr
4869 /* 1941 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
4870 /* 1945 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
4871 /* 1949 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4872 /* 1951 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4873 /* 1954 */ // Combiner Rule #22: add_p2i_to_ptradd @ [__add_p2i_to_ptradd_match_0[1]]
4874 /* 1954 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTR_ADD),
4875 /* 1957 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4876 /* 1962 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
4877 /* 1966 */ GIR_RootToRootCopy, /*OpIdx*/1, // other
4878 /* 1968 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTRTOINT),
4879 /* 1972 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4880 /* 1976 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4881 /* 1979 */ GIR_EraseRootFromParent_Done,
4882 /* 1980 */ // Label 136: @1980
4883 /* 1980 */ GIM_Try, /*On fail goto*//*Label 137*/ GIMT_Encode4(2001), // Rule ID 107 //
4884 /* 1985 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
4885 /* 1988 */ // MIs[0] dst
4886 /* 1988 */ // No operand predicates
4887 /* 1988 */ // MIs[0] __propagate_undef_any_op_match_0.x
4888 /* 1988 */ // No operand predicates
4889 /* 1988 */ // MIs[0] __propagate_undef_any_op_match_0.y
4890 /* 1988 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4891 /* 1992 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
4892 /* 1996 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4893 /* 1998 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[3]]
4894 /* 1998 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
4895 /* 2001 */ // Label 137: @2001
4896 /* 2001 */ GIM_Try, /*On fail goto*//*Label 138*/ GIMT_Encode4(2024), // Rule ID 119 //
4897 /* 2006 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
4898 /* 2009 */ // MIs[0] dst
4899 /* 2009 */ // No operand predicates
4900 /* 2009 */ // MIs[0] lhs
4901 /* 2009 */ // No operand predicates
4902 /* 2009 */ // MIs[0] Operand 2
4903 /* 2009 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4904 /* 2013 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4905 /* 2018 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[1]]
4906 /* 2018 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4907 /* 2023 */ GIR_EraseRootFromParent_Done,
4908 /* 2024 */ // Label 138: @2024
4909 /* 2024 */ GIM_Try, /*On fail goto*//*Label 139*/ GIMT_Encode4(2035), // Rule ID 169 //
4910 /* 2029 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule116Enabled),
4911 /* 2032 */ // MIs[0] root
4912 /* 2032 */ // No operand predicates
4913 /* 2032 */ // MIs[0] src1
4914 /* 2032 */ // No operand predicates
4915 /* 2032 */ // MIs[0] src2
4916 /* 2032 */ // No operand predicates
4917 /* 2032 */ // Combiner Rule #116: reassoc_comm_binops
4918 /* 2032 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
4919 /* 2035 */ // Label 139: @2035
4920 /* 2035 */ GIM_Reject,
4921 /* 2036 */ // Label 2: @2036
4922 /* 2036 */ GIM_Try, /*On fail goto*//*Label 140*/ GIMT_Encode4(2047), // Rule ID 280 //
4923 /* 2041 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
4924 /* 2044 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_SUB'
4925 /* 2044 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
4926 /* 2047 */ // Label 140: @2047
4927 /* 2047 */ GIM_Try, /*On fail goto*//*Label 141*/ GIMT_Encode4(2058), // Rule ID 333 //
4928 /* 2052 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
4929 /* 2055 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_SUB'
4930 /* 2055 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
4931 /* 2058 */ // Label 141: @2058
4932 /* 2058 */ GIM_Try, /*On fail goto*//*Label 142*/ GIMT_Encode4(2135), // Rule ID 440 //
4933 /* 2063 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule268Enabled),
4934 /* 2066 */ // MIs[0] dst
4935 /* 2066 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4936 /* 2070 */ // MIs[0] sub1
4937 /* 2070 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4938 /* 2074 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4939 /* 2078 */ // MIs[1] a
4940 /* 2078 */ // No operand predicates
4941 /* 2078 */ // MIs[1] b
4942 /* 2078 */ // No operand predicates
4943 /* 2078 */ // MIs[0] Operand 2
4944 /* 2078 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
4945 /* 2082 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
4946 /* 2086 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4947 /* 2088 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
4948 /* 2091 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
4949 /* 2101 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4950 /* 2104 */ // Combiner Rule #268: sub_one_from_sub
4951 /* 2104 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
4952 /* 2107 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4953 /* 2112 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // b
4954 /* 2116 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
4955 /* 2119 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
4956 /* 2123 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4957 /* 2127 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4958 /* 2130 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
4959 /* 2134 */ GIR_EraseRootFromParent_Done,
4960 /* 2135 */ // Label 142: @2135
4961 /* 2135 */ GIM_Try, /*On fail goto*//*Label 143*/ GIMT_Encode4(2229), // Rule ID 446 //
4962 /* 2140 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule272Enabled),
4963 /* 2143 */ // MIs[0] root
4964 /* 2143 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4965 /* 2147 */ // MIs[0] Operand 1
4966 /* 2147 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
4967 /* 2151 */ // MIs[0] max
4968 /* 2151 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4969 /* 2155 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SMAX),
4970 /* 2159 */ // MIs[1] A
4971 /* 2159 */ // No operand predicates
4972 /* 2159 */ // MIs[1] sub
4973 /* 2159 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4974 /* 2163 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4975 /* 2167 */ // MIs[2] Operand 1
4976 /* 2167 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/1, 0,
4977 /* 2171 */ // MIs[2] A
4978 /* 2171 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
4979 /* 2176 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner27),
4980 /* 2180 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4981 /* 2182 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
4982 /* 2185 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
4983 /* 2195 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4984 /* 2198 */ // Combiner Rule #272: SubSmaxSub
4985 /* 2198 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4986 /* 2201 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4987 /* 2206 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
4988 /* 2209 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
4989 /* 2213 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMIN),
4990 /* 2217 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
4991 /* 2221 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // A
4992 /* 2225 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4993 /* 2228 */ GIR_EraseRootFromParent_Done,
4994 /* 2229 */ // Label 143: @2229
4995 /* 2229 */ GIM_Try, /*On fail goto*//*Label 144*/ GIMT_Encode4(2323), // Rule ID 447 //
4996 /* 2234 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule273Enabled),
4997 /* 2237 */ // MIs[0] root
4998 /* 2237 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4999 /* 2241 */ // MIs[0] Operand 1
5000 /* 2241 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5001 /* 2245 */ // MIs[0] max
5002 /* 2245 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5003 /* 2249 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMAX),
5004 /* 2253 */ // MIs[1] A
5005 /* 2253 */ // No operand predicates
5006 /* 2253 */ // MIs[1] sub
5007 /* 2253 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5008 /* 2257 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5009 /* 2261 */ // MIs[2] Operand 1
5010 /* 2261 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/1, 0,
5011 /* 2265 */ // MIs[2] A
5012 /* 2265 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5013 /* 2270 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner27),
5014 /* 2274 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5015 /* 2276 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5016 /* 2279 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5017 /* 2289 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5018 /* 2292 */ // Combiner Rule #273: SubUmaxSub
5019 /* 2292 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5020 /* 2295 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5021 /* 2300 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5022 /* 2303 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5023 /* 2307 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMIN),
5024 /* 2311 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5025 /* 2315 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // A
5026 /* 2319 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5027 /* 2322 */ GIR_EraseRootFromParent_Done,
5028 /* 2323 */ // Label 144: @2323
5029 /* 2323 */ GIM_Try, /*On fail goto*//*Label 145*/ GIMT_Encode4(2363), // Rule ID 444 //
5030 /* 2328 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule270Enabled),
5031 /* 2331 */ // MIs[0] root
5032 /* 2331 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5033 /* 2335 */ // MIs[0] Operand 1
5034 /* 2335 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 255,
5035 /* 2339 */ // MIs[0] op1
5036 /* 2339 */ // No operand predicates
5037 /* 2339 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5038 /* 2342 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(18446744073709551615u),
5039 /* 2352 */ // Combiner Rule #270: sub_minus_one
5040 /* 2352 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
5041 /* 2355 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5042 /* 2357 */ GIR_RootToRootCopy, /*OpIdx*/2, // op1
5043 /* 2359 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5044 /* 2362 */ GIR_EraseRootFromParent_Done,
5045 /* 2363 */ // Label 145: @2363
5046 /* 2363 */ GIM_Try, /*On fail goto*//*Label 146*/ GIMT_Encode4(2463), // Rule ID 445 //
5047 /* 2368 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule271Enabled),
5048 /* 2371 */ // MIs[0] d
5049 /* 2371 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5050 /* 2375 */ // MIs[0] a
5051 /* 2375 */ // No operand predicates
5052 /* 2375 */ // MIs[0] mul
5053 /* 2375 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5054 /* 2379 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
5055 /* 2383 */ // MIs[1] x
5056 /* 2383 */ // No operand predicates
5057 /* 2383 */ // MIs[1] c
5058 /* 2383 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5059 /* 2387 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5060 /* 2391 */ // MIs[2] imm
5061 /* 2391 */ // No operand predicates
5062 /* 2391 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
5063 /* 2395 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5064 /* 2397 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
5065 /* 2400 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5066 /* 2403 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5067 /* 2413 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5068 /* 2416 */ // Combiner Rule #271: sub_of_mul_const
5069 /* 2416 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5070 /* 2419 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5071 /* 2424 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5072 /* 2427 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // c
5073 /* 2431 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MUL),
5074 /* 2435 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5075 /* 2440 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
5076 /* 2444 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5077 /* 2447 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5078 /* 2451 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // d
5079 /* 2455 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // a
5080 /* 2459 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5081 /* 2462 */ GIR_EraseRootFromParent_Done,
5082 /* 2463 */ // Label 146: @2463
5083 /* 2463 */ GIM_Try, /*On fail goto*//*Label 147*/ GIMT_Encode4(2524), // Rule ID 9 //
5084 /* 2468 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
5085 /* 2471 */ // MIs[0] root
5086 /* 2471 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5087 /* 2475 */ // MIs[0] A
5088 /* 2475 */ // No operand predicates
5089 /* 2475 */ // MIs[0] sub1
5090 /* 2475 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5091 /* 2479 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5092 /* 2483 */ // MIs[1] B
5093 /* 2483 */ // No operand predicates
5094 /* 2483 */ // MIs[1] C
5095 /* 2483 */ // No operand predicates
5096 /* 2483 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
5097 /* 2487 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5098 /* 2489 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5099 /* 2492 */ // Combiner Rule #9: AMinusBMinusC
5100 /* 2492 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5101 /* 2495 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5102 /* 2500 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // C
5103 /* 2504 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
5104 /* 2508 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5105 /* 2512 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5106 /* 2516 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // A
5107 /* 2520 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5108 /* 2523 */ GIR_EraseRootFromParent_Done,
5109 /* 2524 */ // Label 147: @2524
5110 /* 2524 */ GIM_Try, /*On fail goto*//*Label 148*/ GIMT_Encode4(2569), // Rule ID 0 //
5111 /* 2529 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
5112 /* 2532 */ // MIs[0] root
5113 /* 2532 */ // No operand predicates
5114 /* 2532 */ // MIs[0] add1
5115 /* 2532 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5116 /* 2536 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5117 /* 2540 */ // MIs[1] A
5118 /* 2540 */ // No operand predicates
5119 /* 2540 */ // MIs[1] sub1
5120 /* 2540 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5121 /* 2544 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5122 /* 2548 */ // MIs[2] B
5123 /* 2548 */ // No operand predicates
5124 /* 2548 */ // MIs[2] C
5125 /* 2548 */ // No operand predicates
5126 /* 2548 */ // MIs[0] B
5127 /* 2548 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
5128 /* 2553 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5129 /* 2555 */ // Combiner Rule #0: APlusBMinusCMinusB
5130 /* 2555 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5131 /* 2558 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5132 /* 2560 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5133 /* 2564 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
5134 /* 2568 */ GIR_EraseRootFromParent_Done,
5135 /* 2569 */ // Label 148: @2569
5136 /* 2569 */ GIM_Try, /*On fail goto*//*Label 149*/ GIMT_Encode4(2606), // Rule ID 14 //
5137 /* 2574 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
5138 /* 2577 */ // MIs[0] root
5139 /* 2577 */ // No operand predicates
5140 /* 2577 */ // MIs[0] add
5141 /* 2577 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5142 /* 2581 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5143 /* 2585 */ // MIs[1] A
5144 /* 2585 */ // No operand predicates
5145 /* 2585 */ // MIs[1] c1
5146 /* 2585 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5147 /* 2589 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5148 /* 2593 */ // MIs[2] imm1
5149 /* 2593 */ // No operand predicates
5150 /* 2593 */ // MIs[0] c2
5151 /* 2593 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5152 /* 2597 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5153 /* 2601 */ // MIs[3] imm2
5154 /* 2601 */ // No operand predicates
5155 /* 2601 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5156 /* 2603 */ // Combiner Rule #14: APlusC1MinusC2
5157 /* 2603 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
5158 /* 2606 */ // Label 149: @2606
5159 /* 2606 */ GIM_Try, /*On fail goto*//*Label 150*/ GIMT_Encode4(2643), // Rule ID 17 //
5160 /* 2611 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
5161 /* 2614 */ // MIs[0] root
5162 /* 2614 */ // No operand predicates
5163 /* 2614 */ // MIs[0] sub1
5164 /* 2614 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5165 /* 2618 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5166 /* 2622 */ // MIs[1] c1
5167 /* 2622 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5168 /* 2626 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5169 /* 2630 */ // MIs[2] imm1
5170 /* 2630 */ // No operand predicates
5171 /* 2630 */ // MIs[1] A
5172 /* 2630 */ // No operand predicates
5173 /* 2630 */ // MIs[0] c2
5174 /* 2630 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5175 /* 2634 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5176 /* 2638 */ // MIs[3] imm2
5177 /* 2638 */ // No operand predicates
5178 /* 2638 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5179 /* 2640 */ // Combiner Rule #17: C1Minus2MinusC2
5180 /* 2640 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
5181 /* 2643 */ // Label 150: @2643
5182 /* 2643 */ GIM_Try, /*On fail goto*//*Label 151*/ GIMT_Encode4(2688), // Rule ID 1 //
5183 /* 2648 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
5184 /* 2651 */ // MIs[0] root
5185 /* 2651 */ // No operand predicates
5186 /* 2651 */ // MIs[0] sub2
5187 /* 2651 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5188 /* 2655 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5189 /* 2659 */ // MIs[1] A
5190 /* 2659 */ // No operand predicates
5191 /* 2659 */ // MIs[1] sub1
5192 /* 2659 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5193 /* 2663 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5194 /* 2667 */ // MIs[2] B
5195 /* 2667 */ // No operand predicates
5196 /* 2667 */ // MIs[2] C
5197 /* 2667 */ // No operand predicates
5198 /* 2667 */ // MIs[0] C
5199 /* 2667 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/2,
5200 /* 2672 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5201 /* 2674 */ // Combiner Rule #1: AMinusBMinusCMinusC
5202 /* 2674 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5203 /* 2677 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5204 /* 2679 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5205 /* 2683 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // B
5206 /* 2687 */ GIR_EraseRootFromParent_Done,
5207 /* 2688 */ // Label 151: @2688
5208 /* 2688 */ GIM_Try, /*On fail goto*//*Label 152*/ GIMT_Encode4(2725), // Rule ID 16 //
5209 /* 2693 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
5210 /* 2696 */ // MIs[0] root
5211 /* 2696 */ // No operand predicates
5212 /* 2696 */ // MIs[0] sub1
5213 /* 2696 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5214 /* 2700 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5215 /* 2704 */ // MIs[1] A
5216 /* 2704 */ // No operand predicates
5217 /* 2704 */ // MIs[1] c1
5218 /* 2704 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5219 /* 2708 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5220 /* 2712 */ // MIs[2] imm1
5221 /* 2712 */ // No operand predicates
5222 /* 2712 */ // MIs[0] c2
5223 /* 2712 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5224 /* 2716 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5225 /* 2720 */ // MIs[3] imm2
5226 /* 2720 */ // No operand predicates
5227 /* 2720 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5228 /* 2722 */ // Combiner Rule #16: AMinusC1MinusC2
5229 /* 2722 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
5230 /* 2725 */ // Label 152: @2725
5231 /* 2725 */ GIM_Try, /*On fail goto*//*Label 153*/ GIMT_Encode4(2746), // Rule ID 105 //
5232 /* 2730 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5233 /* 2733 */ // MIs[0] dst
5234 /* 2733 */ // No operand predicates
5235 /* 2733 */ // MIs[0] __propagate_undef_any_op_match_0.x
5236 /* 2733 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5237 /* 2737 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5238 /* 2741 */ // MIs[0] __propagate_undef_any_op_match_0.y
5239 /* 2741 */ // No operand predicates
5240 /* 2741 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5241 /* 2743 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[1]]
5242 /* 2743 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
5243 /* 2746 */ // Label 153: @2746
5244 /* 2746 */ GIM_Try, /*On fail goto*//*Label 154*/ GIMT_Encode4(2789), // Rule ID 179 //
5245 /* 2751 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
5246 /* 2754 */ // MIs[0] dst
5247 /* 2754 */ // No operand predicates
5248 /* 2754 */ // MIs[0] Operand 1
5249 /* 2754 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5250 /* 2758 */ // MIs[0] and
5251 /* 2758 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5252 /* 2762 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5253 /* 2766 */ // MIs[1] x
5254 /* 2766 */ // No operand predicates
5255 /* 2766 */ // MIs[1] Operand 2
5256 /* 2766 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
5257 /* 2770 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner15),
5258 /* 2774 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5259 /* 2776 */ // Combiner Rule #126: neg_and_one_to_sext_inreg
5260 /* 2776 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
5261 /* 2779 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5262 /* 2781 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
5263 /* 2785 */ GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
5264 /* 2788 */ GIR_EraseRootFromParent_Done,
5265 /* 2789 */ // Label 154: @2789
5266 /* 2789 */ GIM_Try, /*On fail goto*//*Label 155*/ GIMT_Encode4(2826), // Rule ID 15 //
5267 /* 2794 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
5268 /* 2797 */ // MIs[0] root
5269 /* 2797 */ // No operand predicates
5270 /* 2797 */ // MIs[0] c2
5271 /* 2797 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5272 /* 2801 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5273 /* 2805 */ // MIs[1] imm2
5274 /* 2805 */ // No operand predicates
5275 /* 2805 */ // MIs[0] add
5276 /* 2805 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5277 /* 2809 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
5278 /* 2813 */ // MIs[2] A
5279 /* 2813 */ // No operand predicates
5280 /* 2813 */ // MIs[2] c1
5281 /* 2813 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5282 /* 2817 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5283 /* 2821 */ // MIs[3] imm1
5284 /* 2821 */ // No operand predicates
5285 /* 2821 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5286 /* 2823 */ // Combiner Rule #15: C2MinusAPlusC1
5287 /* 2823 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
5288 /* 2826 */ // Label 155: @2826
5289 /* 2826 */ GIM_Try, /*On fail goto*//*Label 156*/ GIMT_Encode4(2865), // Rule ID 130 //
5290 /* 2831 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
5291 /* 2834 */ // MIs[0] dst
5292 /* 2834 */ // No operand predicates
5293 /* 2834 */ // MIs[0] x
5294 /* 2834 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
5295 /* 2838 */ // MIs[0] x
5296 /* 2838 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5297 /* 2843 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5298 /* 2846 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5299 /* 2856 */ // Combiner Rule #92: same_val_zero @ [__same_val_zero_match_0[0]]
5300 /* 2856 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5301 /* 2859 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5302 /* 2861 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5303 /* 2864 */ GIR_EraseRootFromParent_Done,
5304 /* 2865 */ // Label 156: @2865
5305 /* 2865 */ GIM_Try, /*On fail goto*//*Label 157*/ GIMT_Encode4(2899), // Rule ID 12 //
5306 /* 2870 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
5307 /* 2873 */ // MIs[0] root
5308 /* 2873 */ // No operand predicates
5309 /* 2873 */ // MIs[0] A
5310 /* 2873 */ // No operand predicates
5311 /* 2873 */ // MIs[0] add
5312 /* 2873 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5313 /* 2877 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5314 /* 2881 */ // MIs[1] A
5315 /* 2881 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
5316 /* 2886 */ // MIs[1] B
5317 /* 2886 */ // No operand predicates
5318 /* 2886 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
5319 /* 2891 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5320 /* 2893 */ // Combiner Rule #12: AMinusBMinusA
5321 /* 2893 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
5322 /* 2898 */ GIR_EraseRootFromParent_Done,
5323 /* 2899 */ // Label 157: @2899
5324 /* 2899 */ GIM_Try, /*On fail goto*//*Label 158*/ GIMT_Encode4(2933), // Rule ID 11 //
5325 /* 2904 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
5326 /* 2907 */ // MIs[0] root
5327 /* 2907 */ // No operand predicates
5328 /* 2907 */ // MIs[0] A
5329 /* 2907 */ // No operand predicates
5330 /* 2907 */ // MIs[0] sub1
5331 /* 2907 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5332 /* 2911 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5333 /* 2915 */ // MIs[1] Operand 1
5334 /* 2915 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
5335 /* 2919 */ // MIs[1] B
5336 /* 2919 */ // No operand predicates
5337 /* 2919 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5338 /* 2921 */ // Combiner Rule #11: AMinusZeroMinusB
5339 /* 2921 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5340 /* 2924 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5341 /* 2926 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
5342 /* 2928 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
5343 /* 2932 */ GIR_EraseRootFromParent_Done,
5344 /* 2933 */ // Label 158: @2933
5345 /* 2933 */ GIM_Try, /*On fail goto*//*Label 159*/ GIMT_Encode4(2960), // Rule ID 49 //
5346 /* 2938 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
5347 /* 2941 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
5348 /* 2947 */ // MIs[0] root
5349 /* 2947 */ // No operand predicates
5350 /* 2947 */ // MIs[0] x
5351 /* 2947 */ // No operand predicates
5352 /* 2947 */ // MIs[0] right
5353 /* 2947 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5354 /* 2951 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
5355 /* 2955 */ // MIs[1] imm
5356 /* 2955 */ // No operand predicates
5357 /* 2955 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5358 /* 2957 */ // Combiner Rule #45: sub_of_vscale
5359 /* 2957 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
5360 /* 2960 */ // Label 159: @2960
5361 /* 2960 */ GIM_Try, /*On fail goto*//*Label 160*/ GIMT_Encode4(2981), // Rule ID 108 //
5362 /* 2965 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5363 /* 2968 */ // MIs[0] dst
5364 /* 2968 */ // No operand predicates
5365 /* 2968 */ // MIs[0] __propagate_undef_any_op_match_0.x
5366 /* 2968 */ // No operand predicates
5367 /* 2968 */ // MIs[0] __propagate_undef_any_op_match_0.y
5368 /* 2968 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5369 /* 2972 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5370 /* 2976 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5371 /* 2978 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[4]]
5372 /* 2978 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
5373 /* 2981 */ // Label 160: @2981
5374 /* 2981 */ GIM_Try, /*On fail goto*//*Label 161*/ GIMT_Encode4(3004), // Rule ID 118 //
5375 /* 2986 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
5376 /* 2989 */ // MIs[0] dst
5377 /* 2989 */ // No operand predicates
5378 /* 2989 */ // MIs[0] lhs
5379 /* 2989 */ // No operand predicates
5380 /* 2989 */ // MIs[0] Operand 2
5381 /* 2989 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5382 /* 2993 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5383 /* 2998 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[0]]
5384 /* 2998 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5385 /* 3003 */ GIR_EraseRootFromParent_Done,
5386 /* 3004 */ // Label 161: @3004
5387 /* 3004 */ GIM_Try, /*On fail goto*//*Label 162*/ GIMT_Encode4(3025), // Rule ID 21 //
5388 /* 3009 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
5389 /* 3012 */ // MIs[0] d
5390 /* 3012 */ // No operand predicates
5391 /* 3012 */ // MIs[0] op1
5392 /* 3012 */ // No operand predicates
5393 /* 3012 */ // MIs[0] c
5394 /* 3012 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5395 /* 3016 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5396 /* 3020 */ // MIs[1] imm
5397 /* 3020 */ // No operand predicates
5398 /* 3020 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5399 /* 3022 */ // Combiner Rule #21: sub_to_add
5400 /* 3022 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
5401 /* 3025 */ // Label 162: @3025
5402 /* 3025 */ GIM_Try, /*On fail goto*//*Label 163*/ GIMT_Encode4(3036), // Rule ID 366 //
5403 /* 3030 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule224Enabled),
5404 /* 3033 */ // MIs[0] dst
5405 /* 3033 */ // No operand predicates
5406 /* 3033 */ // MIs[0] src1
5407 /* 3033 */ // No operand predicates
5408 /* 3033 */ // MIs[0] src2
5409 /* 3033 */ // No operand predicates
5410 /* 3033 */ // Combiner Rule #224: sub_add_reg
5411 /* 3033 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner115),
5412 /* 3036 */ // Label 163: @3036
5413 /* 3036 */ GIM_Try, /*On fail goto*//*Label 164*/ GIMT_Encode4(3047), // Rule ID 406 //
5414 /* 3041 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule237Enabled),
5415 /* 3044 */ // MIs[0] dst
5416 /* 3044 */ // No operand predicates
5417 /* 3044 */ // MIs[0] src1
5418 /* 3044 */ // No operand predicates
5419 /* 3044 */ // MIs[0] src2
5420 /* 3044 */ // No operand predicates
5421 /* 3044 */ // Combiner Rule #237: simplify_neg_minmax
5422 /* 3044 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
5423 /* 3047 */ // Label 164: @3047
5424 /* 3047 */ GIM_Reject,
5425 /* 3048 */ // Label 3: @3048
5426 /* 3048 */ GIM_Try, /*On fail goto*//*Label 165*/ GIMT_Encode4(3059), // Rule ID 277 //
5427 /* 3053 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
5428 /* 3056 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_MUL'
5429 /* 3056 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
5430 /* 3059 */ // Label 165: @3059
5431 /* 3059 */ GIM_Try, /*On fail goto*//*Label 166*/ GIMT_Encode4(3070), // Rule ID 370 //
5432 /* 3064 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
5433 /* 3067 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_MUL'
5434 /* 3067 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5435 /* 3070 */ // Label 166: @3070
5436 /* 3070 */ GIM_Try, /*On fail goto*//*Label 167*/ GIMT_Encode4(3110), // Rule ID 24 //
5437 /* 3075 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
5438 /* 3078 */ // MIs[0] dst
5439 /* 3078 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5440 /* 3082 */ // MIs[0] x
5441 /* 3082 */ // No operand predicates
5442 /* 3082 */ // MIs[0] Operand 2
5443 /* 3082 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
5444 /* 3086 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5445 /* 3089 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5446 /* 3099 */ // Combiner Rule #23: mul_by_neg_one
5447 /* 3099 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5448 /* 3102 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5449 /* 3104 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5450 /* 3107 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
5451 /* 3109 */ GIR_EraseRootFromParent_Done,
5452 /* 3110 */ // Label 167: @3110
5453 /* 3110 */ GIM_Try, /*On fail goto*//*Label 168*/ GIMT_Encode4(3145), // Rule ID 47 //
5454 /* 3115 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
5455 /* 3118 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
5456 /* 3124 */ // MIs[0] root
5457 /* 3124 */ // No operand predicates
5458 /* 3124 */ // MIs[0] left
5459 /* 3124 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5460 /* 3128 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
5461 /* 3132 */ // MIs[1] scale
5462 /* 3132 */ // No operand predicates
5463 /* 3132 */ // MIs[0] x
5464 /* 3132 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5465 /* 3136 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5466 /* 3140 */ // MIs[2] imm1
5467 /* 3140 */ // No operand predicates
5468 /* 3140 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5469 /* 3142 */ // Combiner Rule #43: mul_of_vscale
5470 /* 3142 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
5471 /* 3145 */ // Label 168: @3145
5472 /* 3145 */ GIM_Try, /*On fail goto*//*Label 169*/ GIMT_Encode4(3166), // Rule ID 85 //
5473 /* 3150 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
5474 /* 3153 */ // MIs[0] dst
5475 /* 3153 */ // No operand predicates
5476 /* 3153 */ // MIs[0] __undef_to_int_zero_match_0.x
5477 /* 3153 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5478 /* 3157 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5479 /* 3161 */ // MIs[0] __undef_to_int_zero_match_0.y
5480 /* 3161 */ // No operand predicates
5481 /* 3161 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5482 /* 3163 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[1]]
5483 /* 3163 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
5484 /* 3166 */ // Label 169: @3166
5485 /* 3166 */ GIM_Try, /*On fail goto*//*Label 170*/ GIMT_Encode4(3206), // Rule ID 139 //
5486 /* 3171 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5487 /* 3174 */ // MIs[0] dst
5488 /* 3174 */ // No operand predicates
5489 /* 3174 */ // MIs[0] zero
5490 /* 3174 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5491 /* 3178 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5492 /* 3182 */ // MIs[1] Operand 1
5493 /* 3182 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5494 /* 3193 */ // MIs[0] rhs
5495 /* 3193 */ // No operand predicates
5496 /* 3193 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5497 /* 3198 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5498 /* 3200 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[7]]
5499 /* 3200 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5500 /* 3205 */ GIR_EraseRootFromParent_Done,
5501 /* 3206 */ // Label 170: @3206
5502 /* 3206 */ GIM_Try, /*On fail goto*//*Label 171*/ GIMT_Encode4(3227), // Rule ID 87 //
5503 /* 3211 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
5504 /* 3214 */ // MIs[0] dst
5505 /* 3214 */ // No operand predicates
5506 /* 3214 */ // MIs[0] __undef_to_int_zero_match_0.x
5507 /* 3214 */ // No operand predicates
5508 /* 3214 */ // MIs[0] __undef_to_int_zero_match_0.y
5509 /* 3214 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5510 /* 3218 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5511 /* 3222 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5512 /* 3224 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[3]]
5513 /* 3224 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
5514 /* 3227 */ // Label 171: @3227
5515 /* 3227 */ GIM_Try, /*On fail goto*//*Label 172*/ GIMT_Encode4(3250), // Rule ID 140 //
5516 /* 3232 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
5517 /* 3235 */ // MIs[0] dst
5518 /* 3235 */ // No operand predicates
5519 /* 3235 */ // MIs[0] lhs
5520 /* 3235 */ // No operand predicates
5521 /* 3235 */ // MIs[0] zero
5522 /* 3235 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5523 /* 3239 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5524 /* 3244 */ // Combiner Rule #94: binop_right_to_zero
5525 /* 3244 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5526 /* 3249 */ GIR_EraseRootFromParent_Done,
5527 /* 3250 */ // Label 172: @3250
5528 /* 3250 */ GIM_Try, /*On fail goto*//*Label 173*/ GIMT_Encode4(3273), // Rule ID 145 //
5529 /* 3255 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule99Enabled),
5530 /* 3258 */ // MIs[0] dst
5531 /* 3258 */ // No operand predicates
5532 /* 3258 */ // MIs[0] x
5533 /* 3258 */ // No operand predicates
5534 /* 3258 */ // MIs[0] Operand 2
5535 /* 3258 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
5536 /* 3262 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5537 /* 3267 */ // Combiner Rule #99: right_identity_one_int
5538 /* 3267 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5539 /* 3272 */ GIR_EraseRootFromParent_Done,
5540 /* 3273 */ // Label 173: @3273
5541 /* 3273 */ GIM_Try, /*On fail goto*//*Label 174*/ GIMT_Encode4(3284), // Rule ID 20 //
5542 /* 3278 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
5543 /* 3281 */ // MIs[0] d
5544 /* 3281 */ // No operand predicates
5545 /* 3281 */ // MIs[0] op1
5546 /* 3281 */ // No operand predicates
5547 /* 3281 */ // MIs[0] op2
5548 /* 3281 */ // No operand predicates
5549 /* 3281 */ // Combiner Rule #20: mul_to_shl
5550 /* 3281 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
5551 /* 3284 */ // Label 174: @3284
5552 /* 3284 */ GIM_Reject,
5553 /* 3285 */ // Label 4: @3285
5554 /* 3285 */ GIM_Try, /*On fail goto*//*Label 175*/ GIMT_Encode4(3296), // Rule ID 247 //
5555 /* 3290 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
5556 /* 3293 */ // Combiner Rule #178: div_rem_to_divrem; wip_match_opcode 'G_SDIV'
5557 /* 3293 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
5558 /* 3296 */ // Label 175: @3296
5559 /* 3296 */ GIM_Try, /*On fail goto*//*Label 176*/ GIMT_Encode4(3307), // Rule ID 283 //
5560 /* 3301 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
5561 /* 3304 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_SDIV'
5562 /* 3304 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
5563 /* 3307 */ // Label 176: @3307
5564 /* 3307 */ GIM_Try, /*On fail goto*//*Label 177*/ GIMT_Encode4(3318), // Rule ID 338 //
5565 /* 3312 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
5566 /* 3315 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_SDIV'
5567 /* 3315 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
5568 /* 3318 */ // Label 177: @3318
5569 /* 3318 */ GIM_Try, /*On fail goto*//*Label 178*/ GIMT_Encode4(3358), // Rule ID 135 //
5570 /* 3323 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5571 /* 3326 */ // MIs[0] dst
5572 /* 3326 */ // No operand predicates
5573 /* 3326 */ // MIs[0] zero
5574 /* 3326 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5575 /* 3330 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5576 /* 3334 */ // MIs[1] Operand 1
5577 /* 3334 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5578 /* 3345 */ // MIs[0] rhs
5579 /* 3345 */ // No operand predicates
5580 /* 3345 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5581 /* 3350 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5582 /* 3352 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[3]]
5583 /* 3352 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5584 /* 3357 */ GIR_EraseRootFromParent_Done,
5585 /* 3358 */ // Label 178: @3358
5586 /* 3358 */ GIM_Try, /*On fail goto*//*Label 179*/ GIMT_Encode4(3375), // Rule ID 362 //
5587 /* 3363 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
5588 /* 3366 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
5589 /* 3372 */ // MIs[0] dst
5590 /* 3372 */ // No operand predicates
5591 /* 3372 */ // MIs[0] x
5592 /* 3372 */ // No operand predicates
5593 /* 3372 */ // MIs[0] y
5594 /* 3372 */ // No operand predicates
5595 /* 3372 */ // Combiner Rule #220: sdiv_by_pow2
5596 /* 3372 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
5597 /* 3375 */ // Label 179: @3375
5598 /* 3375 */ GIM_Try, /*On fail goto*//*Label 180*/ GIMT_Encode4(3386), // Rule ID 364 //
5599 /* 3380 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule222Enabled),
5600 /* 3383 */ // MIs[0] dst
5601 /* 3383 */ // No operand predicates
5602 /* 3383 */ // MIs[0] x
5603 /* 3383 */ // No operand predicates
5604 /* 3383 */ // MIs[0] y
5605 /* 3383 */ // No operand predicates
5606 /* 3383 */ // Combiner Rule #222: sdiv_by_const
5607 /* 3383 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner111),
5608 /* 3386 */ // Label 180: @3386
5609 /* 3386 */ GIM_Reject,
5610 /* 3387 */ // Label 5: @3387
5611 /* 3387 */ GIM_Try, /*On fail goto*//*Label 181*/ GIMT_Encode4(3398), // Rule ID 248 //
5612 /* 3392 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
5613 /* 3395 */ // Combiner Rule #178: div_rem_to_divrem; wip_match_opcode 'G_UDIV'
5614 /* 3395 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
5615 /* 3398 */ // Label 181: @3398
5616 /* 3398 */ GIM_Try, /*On fail goto*//*Label 182*/ GIMT_Encode4(3409), // Rule ID 282 //
5617 /* 3403 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
5618 /* 3406 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_UDIV'
5619 /* 3406 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
5620 /* 3409 */ // Label 182: @3409
5621 /* 3409 */ GIM_Try, /*On fail goto*//*Label 183*/ GIMT_Encode4(3420), // Rule ID 340 //
5622 /* 3414 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
5623 /* 3417 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_UDIV'
5624 /* 3417 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
5625 /* 3420 */ // Label 183: @3420
5626 /* 3420 */ GIM_Try, /*On fail goto*//*Label 184*/ GIMT_Encode4(3441), // Rule ID 91 //
5627 /* 3425 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
5628 /* 3428 */ // MIs[0] dst
5629 /* 3428 */ // No operand predicates
5630 /* 3428 */ // MIs[0] __binop_left_undef_to_zero_match_0.x
5631 /* 3428 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5632 /* 3432 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5633 /* 3436 */ // MIs[0] __binop_left_undef_to_zero_match_0.y
5634 /* 3436 */ // No operand predicates
5635 /* 3436 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5636 /* 3438 */ // Combiner Rule #79: binop_left_undef_to_zero @ [__binop_left_undef_to_zero_match_0[1]]
5637 /* 3438 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
5638 /* 3441 */ // Label 184: @3441
5639 /* 3441 */ GIM_Try, /*On fail goto*//*Label 185*/ GIMT_Encode4(3481), // Rule ID 136 //
5640 /* 3446 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5641 /* 3449 */ // MIs[0] dst
5642 /* 3449 */ // No operand predicates
5643 /* 3449 */ // MIs[0] zero
5644 /* 3449 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5645 /* 3453 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5646 /* 3457 */ // MIs[1] Operand 1
5647 /* 3457 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5648 /* 3468 */ // MIs[0] rhs
5649 /* 3468 */ // No operand predicates
5650 /* 3468 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5651 /* 3473 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5652 /* 3475 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[4]]
5653 /* 3475 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5654 /* 3480 */ GIR_EraseRootFromParent_Done,
5655 /* 3481 */ // Label 185: @3481
5656 /* 3481 */ GIM_Try, /*On fail goto*//*Label 186*/ GIMT_Encode4(3498), // Rule ID 361 //
5657 /* 3486 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule219Enabled),
5658 /* 3489 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
5659 /* 3495 */ // MIs[0] dst
5660 /* 3495 */ // No operand predicates
5661 /* 3495 */ // MIs[0] x
5662 /* 3495 */ // No operand predicates
5663 /* 3495 */ // MIs[0] y
5664 /* 3495 */ // No operand predicates
5665 /* 3495 */ // Combiner Rule #219: udiv_by_pow2
5666 /* 3495 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner112),
5667 /* 3498 */ // Label 186: @3498
5668 /* 3498 */ GIM_Try, /*On fail goto*//*Label 187*/ GIMT_Encode4(3509), // Rule ID 363 //
5669 /* 3503 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
5670 /* 3506 */ // MIs[0] dst
5671 /* 3506 */ // No operand predicates
5672 /* 3506 */ // MIs[0] x
5673 /* 3506 */ // No operand predicates
5674 /* 3506 */ // MIs[0] y
5675 /* 3506 */ // No operand predicates
5676 /* 3506 */ // Combiner Rule #221: udiv_by_const
5677 /* 3506 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
5678 /* 3509 */ // Label 187: @3509
5679 /* 3509 */ GIM_Reject,
5680 /* 3510 */ // Label 6: @3510
5681 /* 3510 */ GIM_Try, /*On fail goto*//*Label 188*/ GIMT_Encode4(3521), // Rule ID 249 //
5682 /* 3515 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
5683 /* 3518 */ // Combiner Rule #178: div_rem_to_divrem; wip_match_opcode 'G_SREM'
5684 /* 3518 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
5685 /* 3521 */ // Label 188: @3521
5686 /* 3521 */ GIM_Try, /*On fail goto*//*Label 189*/ GIMT_Encode4(3532), // Rule ID 285 //
5687 /* 3526 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
5688 /* 3529 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_SREM'
5689 /* 3529 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
5690 /* 3532 */ // Label 189: @3532
5691 /* 3532 */ GIM_Try, /*On fail goto*//*Label 190*/ GIMT_Encode4(3543), // Rule ID 339 //
5692 /* 3537 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
5693 /* 3540 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_SREM'
5694 /* 3540 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
5695 /* 3543 */ // Label 190: @3543
5696 /* 3543 */ GIM_Try, /*On fail goto*//*Label 191*/ GIMT_Encode4(3583), // Rule ID 137 //
5697 /* 3548 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5698 /* 3551 */ // MIs[0] dst
5699 /* 3551 */ // No operand predicates
5700 /* 3551 */ // MIs[0] zero
5701 /* 3551 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5702 /* 3555 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5703 /* 3559 */ // MIs[1] Operand 1
5704 /* 3559 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5705 /* 3570 */ // MIs[0] rhs
5706 /* 3570 */ // No operand predicates
5707 /* 3570 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5708 /* 3575 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5709 /* 3577 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[5]]
5710 /* 3577 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5711 /* 3582 */ GIR_EraseRootFromParent_Done,
5712 /* 3583 */ // Label 191: @3583
5713 /* 3583 */ GIM_Try, /*On fail goto*//*Label 192*/ GIMT_Encode4(3594), // Rule ID 358 //
5714 /* 3588 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
5715 /* 3591 */ // MIs[0] dst
5716 /* 3591 */ // No operand predicates
5717 /* 3591 */ // MIs[0] x
5718 /* 3591 */ // No operand predicates
5719 /* 3591 */ // MIs[0] y
5720 /* 3591 */ // No operand predicates
5721 /* 3591 */ // Combiner Rule #216: srem_pow2_to_mask
5722 /* 3591 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
5723 /* 3594 */ // Label 192: @3594
5724 /* 3594 */ GIM_Try, /*On fail goto*//*Label 193*/ GIMT_Encode4(3605), // Rule ID 360 //
5725 /* 3599 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule218Enabled),
5726 /* 3602 */ // MIs[0] dst
5727 /* 3602 */ // No operand predicates
5728 /* 3602 */ // MIs[0] x
5729 /* 3602 */ // No operand predicates
5730 /* 3602 */ // MIs[0] y
5731 /* 3602 */ // No operand predicates
5732 /* 3602 */ // Combiner Rule #218: srem_by_const
5733 /* 3602 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner111),
5734 /* 3605 */ // Label 193: @3605
5735 /* 3605 */ GIM_Reject,
5736 /* 3606 */ // Label 7: @3606
5737 /* 3606 */ GIM_Try, /*On fail goto*//*Label 194*/ GIMT_Encode4(3617), // Rule ID 250 //
5738 /* 3611 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
5739 /* 3614 */ // Combiner Rule #178: div_rem_to_divrem; wip_match_opcode 'G_UREM'
5740 /* 3614 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
5741 /* 3617 */ // Label 194: @3617
5742 /* 3617 */ GIM_Try, /*On fail goto*//*Label 195*/ GIMT_Encode4(3628), // Rule ID 284 //
5743 /* 3622 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
5744 /* 3625 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_UREM'
5745 /* 3625 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
5746 /* 3628 */ // Label 195: @3628
5747 /* 3628 */ GIM_Try, /*On fail goto*//*Label 196*/ GIMT_Encode4(3639), // Rule ID 341 //
5748 /* 3633 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
5749 /* 3636 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_UREM'
5750 /* 3636 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
5751 /* 3639 */ // Label 196: @3639
5752 /* 3639 */ GIM_Try, /*On fail goto*//*Label 197*/ GIMT_Encode4(3660), // Rule ID 92 //
5753 /* 3644 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
5754 /* 3647 */ // MIs[0] dst
5755 /* 3647 */ // No operand predicates
5756 /* 3647 */ // MIs[0] __binop_left_undef_to_zero_match_0.x
5757 /* 3647 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5758 /* 3651 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5759 /* 3655 */ // MIs[0] __binop_left_undef_to_zero_match_0.y
5760 /* 3655 */ // No operand predicates
5761 /* 3655 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5762 /* 3657 */ // Combiner Rule #79: binop_left_undef_to_zero @ [__binop_left_undef_to_zero_match_0[2]]
5763 /* 3657 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
5764 /* 3660 */ // Label 197: @3660
5765 /* 3660 */ GIM_Try, /*On fail goto*//*Label 198*/ GIMT_Encode4(3700), // Rule ID 138 //
5766 /* 3665 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5767 /* 3668 */ // MIs[0] dst
5768 /* 3668 */ // No operand predicates
5769 /* 3668 */ // MIs[0] zero
5770 /* 3668 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5771 /* 3672 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5772 /* 3676 */ // MIs[1] Operand 1
5773 /* 3676 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5774 /* 3687 */ // MIs[0] rhs
5775 /* 3687 */ // No operand predicates
5776 /* 3687 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5777 /* 3692 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5778 /* 3694 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[6]]
5779 /* 3694 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5780 /* 3699 */ GIR_EraseRootFromParent_Done,
5781 /* 3700 */ // Label 198: @3700
5782 /* 3700 */ GIM_Try, /*On fail goto*//*Label 199*/ GIMT_Encode4(3711), // Rule ID 198 //
5783 /* 3705 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
5784 /* 3708 */ // MIs[0] dst
5785 /* 3708 */ // No operand predicates
5786 /* 3708 */ // MIs[0] x
5787 /* 3708 */ // No operand predicates
5788 /* 3708 */ // MIs[0] y
5789 /* 3708 */ // No operand predicates
5790 /* 3708 */ // Combiner Rule #145: urem_pow2_to_mask
5791 /* 3708 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner66),
5792 /* 3711 */ // Label 199: @3711
5793 /* 3711 */ GIM_Try, /*On fail goto*//*Label 200*/ GIMT_Encode4(3722), // Rule ID 359 //
5794 /* 3716 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
5795 /* 3719 */ // MIs[0] dst
5796 /* 3719 */ // No operand predicates
5797 /* 3719 */ // MIs[0] x
5798 /* 3719 */ // No operand predicates
5799 /* 3719 */ // MIs[0] y
5800 /* 3719 */ // No operand predicates
5801 /* 3719 */ // Combiner Rule #217: urem_by_const
5802 /* 3719 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
5803 /* 3722 */ // Label 200: @3722
5804 /* 3722 */ GIM_Reject,
5805 /* 3723 */ // Label 8: @3723
5806 /* 3723 */ GIM_Try, /*On fail goto*//*Label 201*/ GIMT_Encode4(3734), // Rule ID 162 //
5807 /* 3728 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
5808 /* 3731 */ // Combiner Rule #113: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_AND'
5809 /* 3731 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
5810 /* 3734 */ // Label 201: @3734
5811 /* 3734 */ GIM_Try, /*On fail goto*//*Label 202*/ GIMT_Encode4(3745), // Rule ID 220 //
5812 /* 3739 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
5813 /* 3742 */ // Combiner Rule #167: overlapping_and; wip_match_opcode 'G_AND'
5814 /* 3742 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner74),
5815 /* 3745 */ // Label 202: @3745
5816 /* 3745 */ GIM_Try, /*On fail goto*//*Label 203*/ GIMT_Encode4(3756), // Rule ID 274 //
5817 /* 3750 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
5818 /* 3753 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_AND'
5819 /* 3753 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
5820 /* 3756 */ // Label 203: @3756
5821 /* 3756 */ GIM_Try, /*On fail goto*//*Label 204*/ GIMT_Encode4(3767), // Rule ID 335 //
5822 /* 3761 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
5823 /* 3764 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_AND'
5824 /* 3764 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
5825 /* 3767 */ // Label 204: @3767
5826 /* 3767 */ GIM_Try, /*On fail goto*//*Label 205*/ GIMT_Encode4(3778), // Rule ID 371 //
5827 /* 3772 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
5828 /* 3775 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_AND'
5829 /* 3775 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5830 /* 3778 */ // Label 205: @3778
5831 /* 3778 */ GIM_Try, /*On fail goto*//*Label 206*/ GIMT_Encode4(3789), // Rule ID 441 //
5832 /* 3783 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule269Enabled),
5833 /* 3786 */ // Combiner Rule #269: binop_with_neg; wip_match_opcode 'G_AND'
5834 /* 3786 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner148),
5835 /* 3789 */ // Label 206: @3789
5836 /* 3789 */ GIM_Try, /*On fail goto*//*Label 207*/ GIMT_Encode4(3875), // Rule ID 403 //
5837 /* 3794 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
5838 /* 3797 */ // MIs[0] root
5839 /* 3797 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5840 /* 3801 */ // MIs[0] or
5841 /* 3801 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5842 /* 3805 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
5843 /* 3809 */ // MIs[1] x
5844 /* 3809 */ // No operand predicates
5845 /* 3809 */ // MIs[1] y
5846 /* 3809 */ // No operand predicates
5847 /* 3809 */ // MIs[0] not
5848 /* 3809 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5849 /* 3813 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
5850 /* 3817 */ // MIs[2] y
5851 /* 3817 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
5852 /* 3822 */ // MIs[2] Operand 2
5853 /* 3822 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
5854 /* 3826 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5855 /* 3828 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5856 /* 3831 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
5857 /* 3841 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5858 /* 3844 */ // Combiner Rule #234: and_xor_or_to_xor_and
5859 /* 3844 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
5860 /* 3847 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5861 /* 3852 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
5862 /* 3856 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5863 /* 3859 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
5864 /* 3863 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5865 /* 3867 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
5866 /* 3871 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5867 /* 3874 */ GIR_EraseRootFromParent_Done,
5868 /* 3875 */ // Label 207: @3875
5869 /* 3875 */ GIM_Try, /*On fail goto*//*Label 208*/ GIMT_Encode4(3973), // Rule ID 175 //
5870 /* 3880 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule122Enabled),
5871 /* 3883 */ // MIs[0] root
5872 /* 3883 */ // No operand predicates
5873 /* 3883 */ // MIs[0] d1
5874 /* 3883 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5875 /* 3887 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
5876 /* 3891 */ // MIs[1] p
5877 /* 3891 */ // No operand predicates
5878 /* 3891 */ // MIs[1] s1
5879 /* 3891 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
5880 /* 3895 */ // MIs[1] Operand 3
5881 /* 3895 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
5882 /* 3899 */ // MIs[0] d2
5883 /* 3899 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5884 /* 3903 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
5885 /* 3907 */ // MIs[2] p
5886 /* 3907 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
5887 /* 3912 */ // MIs[2] s2
5888 /* 3912 */ // No operand predicates
5889 /* 3912 */ // MIs[2] Operand 3
5890 /* 3912 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
5891 /* 3916 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
5892 /* 3920 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5893 /* 3922 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5894 /* 3925 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5895 /* 3935 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5896 /* 3938 */ // Combiner Rule #122: double_icmp_zero_and_combine
5897 /* 3938 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5898 /* 3941 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5899 /* 3946 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
5900 /* 3950 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
5901 /* 3954 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
5902 /* 3958 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5903 /* 3962 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
5904 /* 3966 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5905 /* 3969 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
5906 /* 3972 */ GIR_EraseRootFromParent_Done,
5907 /* 3973 */ // Label 208: @3973
5908 /* 3973 */ GIM_Try, /*On fail goto*//*Label 209*/ GIMT_Encode4(4010), // Rule ID 267 //
5909 /* 3978 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
5910 /* 3981 */ // MIs[0] root
5911 /* 3981 */ // No operand predicates
5912 /* 3981 */ // MIs[0] shift
5913 /* 3981 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5914 /* 3985 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
5915 /* 3989 */ // MIs[1] x
5916 /* 3989 */ // No operand predicates
5917 /* 3989 */ // MIs[1] lsb
5918 /* 3989 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5919 /* 3993 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5920 /* 3997 */ // MIs[2] imm1
5921 /* 3997 */ // No operand predicates
5922 /* 3997 */ // MIs[0] mask
5923 /* 3997 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5924 /* 4001 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5925 /* 4005 */ // MIs[3] imm2
5926 /* 4005 */ // No operand predicates
5927 /* 4005 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5928 /* 4007 */ // Combiner Rule #191: bitfield_extract_from_and
5929 /* 4007 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner89),
5930 /* 4010 */ // Label 209: @4010
5931 /* 4010 */ GIM_Try, /*On fail goto*//*Label 210*/ GIMT_Encode4(4059), // Rule ID 402 //
5932 /* 4015 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
5933 /* 4018 */ // MIs[0] root
5934 /* 4018 */ // No operand predicates
5935 /* 4018 */ // MIs[0] or
5936 /* 4018 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5937 /* 4022 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
5938 /* 4026 */ // MIs[1] x
5939 /* 4026 */ // No operand predicates
5940 /* 4026 */ // MIs[1] not
5941 /* 4026 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5942 /* 4030 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
5943 /* 4034 */ // MIs[2] y
5944 /* 4034 */ // No operand predicates
5945 /* 4034 */ // MIs[2] Operand 2
5946 /* 4034 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
5947 /* 4038 */ // MIs[0] y
5948 /* 4038 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
5949 /* 4043 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5950 /* 4045 */ // Combiner Rule #233: and_xor_or_to_and
5951 /* 4045 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
5952 /* 4048 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5953 /* 4050 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
5954 /* 4054 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
5955 /* 4058 */ GIR_EraseRootFromParent_Done,
5956 /* 4059 */ // Label 210: @4059
5957 /* 4059 */ GIM_Try, /*On fail goto*//*Label 211*/ GIMT_Encode4(4080), // Rule ID 84 //
5958 /* 4064 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
5959 /* 4067 */ // MIs[0] dst
5960 /* 4067 */ // No operand predicates
5961 /* 4067 */ // MIs[0] __undef_to_int_zero_match_0.x
5962 /* 4067 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5963 /* 4071 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5964 /* 4075 */ // MIs[0] __undef_to_int_zero_match_0.y
5965 /* 4075 */ // No operand predicates
5966 /* 4075 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5967 /* 4077 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[0]]
5968 /* 4077 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
5969 /* 4080 */ // Label 211: @4080
5970 /* 4080 */ GIM_Try, /*On fail goto*//*Label 212*/ GIMT_Encode4(4104), // Rule ID 128 //
5971 /* 4085 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
5972 /* 4088 */ // MIs[0] dst
5973 /* 4088 */ // No operand predicates
5974 /* 4088 */ // MIs[0] src
5975 /* 4088 */ // No operand predicates
5976 /* 4088 */ // MIs[0] src
5977 /* 4088 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5978 /* 4093 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5979 /* 4098 */ // Combiner Rule #91: binop_same_val @ [__binop_same_val_match_0[0]]
5980 /* 4098 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5981 /* 4103 */ GIR_EraseRootFromParent_Done,
5982 /* 4104 */ // Label 212: @4104
5983 /* 4104 */ GIM_Try, /*On fail goto*//*Label 213*/ GIMT_Encode4(4125), // Rule ID 86 //
5984 /* 4109 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
5985 /* 4112 */ // MIs[0] dst
5986 /* 4112 */ // No operand predicates
5987 /* 4112 */ // MIs[0] __undef_to_int_zero_match_0.x
5988 /* 4112 */ // No operand predicates
5989 /* 4112 */ // MIs[0] __undef_to_int_zero_match_0.y
5990 /* 4112 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5991 /* 4116 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5992 /* 4120 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5993 /* 4122 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[2]]
5994 /* 4122 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
5995 /* 4125 */ // Label 213: @4125
5996 /* 4125 */ GIM_Try, /*On fail goto*//*Label 214*/ GIMT_Encode4(4136), // Rule ID 80 //
5997 /* 4130 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
5998 /* 4133 */ // MIs[0] dst
5999 /* 4133 */ // No operand predicates
6000 /* 4133 */ // MIs[0] src1
6001 /* 4133 */ // No operand predicates
6002 /* 4133 */ // MIs[0] src2
6003 /* 4133 */ // No operand predicates
6004 /* 4133 */ // Combiner Rule #74: load_and_mask
6005 /* 4133 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
6006 /* 4136 */ // Label 214: @4136
6007 /* 4136 */ GIM_Try, /*On fail goto*//*Label 215*/ GIMT_Encode4(4147), // Rule ID 182 //
6008 /* 4141 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule129Enabled),
6009 /* 4144 */ // MIs[0] dst
6010 /* 4144 */ // No operand predicates
6011 /* 4144 */ // MIs[0] src1
6012 /* 4144 */ // No operand predicates
6013 /* 4144 */ // MIs[0] src2
6014 /* 4144 */ // No operand predicates
6015 /* 4144 */ // Combiner Rule #129: narrow_binop_feeding_and
6016 /* 4144 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner59),
6017 /* 4147 */ // Label 215: @4147
6018 /* 4147 */ GIM_Try, /*On fail goto*//*Label 216*/ GIMT_Encode4(4158), // Rule ID 196 //
6019 /* 4152 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule143Enabled),
6020 /* 4155 */ // MIs[0] dst
6021 /* 4155 */ // No operand predicates
6022 /* 4155 */ // MIs[0] src1
6023 /* 4155 */ // No operand predicates
6024 /* 4155 */ // MIs[0] src2
6025 /* 4155 */ // No operand predicates
6026 /* 4155 */ // Combiner Rule #143: redundant_and
6027 /* 4155 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner64),
6028 /* 4158 */ // Label 216: @4158
6029 /* 4158 */ GIM_Try, /*On fail goto*//*Label 217*/ GIMT_Encode4(4169), // Rule ID 323 //
6030 /* 4163 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
6031 /* 4166 */ // MIs[0] dst
6032 /* 4166 */ // No operand predicates
6033 /* 4166 */ // MIs[0] src1
6034 /* 4166 */ // No operand predicates
6035 /* 4166 */ // MIs[0] src2
6036 /* 4166 */ // No operand predicates
6037 /* 4166 */ // Combiner Rule #206: and_or_disjoint_mask
6038 /* 4166 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner99),
6039 /* 4169 */ // Label 217: @4169
6040 /* 4169 */ GIM_Try, /*On fail goto*//*Label 218*/ GIMT_Encode4(4180), // Rule ID 398 //
6041 /* 4174 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule229Enabled),
6042 /* 4177 */ // MIs[0] dst
6043 /* 4177 */ // No operand predicates
6044 /* 4177 */ // MIs[0] src1
6045 /* 4177 */ // No operand predicates
6046 /* 4177 */ // MIs[0] src2
6047 /* 4177 */ // No operand predicates
6048 /* 4177 */ // Combiner Rule #229: match_ands
6049 /* 4177 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
6050 /* 4180 */ // Label 218: @4180
6051 /* 4180 */ GIM_Reject,
6052 /* 4181 */ // Label 9: @4181
6053 /* 4181 */ GIM_Try, /*On fail goto*//*Label 219*/ GIMT_Encode4(4192), // Rule ID 163 //
6054 /* 4186 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
6055 /* 4189 */ // Combiner Rule #113: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_OR'
6056 /* 4189 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
6057 /* 4192 */ // Label 219: @4192
6058 /* 4192 */ GIM_Try, /*On fail goto*//*Label 220*/ GIMT_Encode4(4203), // Rule ID 278 //
6059 /* 4197 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
6060 /* 4200 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_OR'
6061 /* 4200 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6062 /* 4203 */ // Label 220: @4203
6063 /* 4203 */ GIM_Try, /*On fail goto*//*Label 221*/ GIMT_Encode4(4214), // Rule ID 336 //
6064 /* 4208 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
6065 /* 4211 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_OR'
6066 /* 4211 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
6067 /* 4214 */ // Label 221: @4214
6068 /* 4214 */ GIM_Try, /*On fail goto*//*Label 222*/ GIMT_Encode4(4225), // Rule ID 372 //
6069 /* 4219 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
6070 /* 4222 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_OR'
6071 /* 4222 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
6072 /* 4225 */ // Label 222: @4225
6073 /* 4225 */ GIM_Try, /*On fail goto*//*Label 223*/ GIMT_Encode4(4236), // Rule ID 442 //
6074 /* 4230 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule269Enabled),
6075 /* 4233 */ // Combiner Rule #269: binop_with_neg; wip_match_opcode 'G_OR'
6076 /* 4233 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner148),
6077 /* 4236 */ // Label 223: @4236
6078 /* 4236 */ GIM_Try, /*On fail goto*//*Label 224*/ GIMT_Encode4(4322), // Rule ID 401 //
6079 /* 4241 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule232Enabled),
6080 /* 4244 */ // MIs[0] root
6081 /* 4244 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
6082 /* 4248 */ // MIs[0] and
6083 /* 4248 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6084 /* 4252 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6085 /* 4256 */ // MIs[1] x
6086 /* 4256 */ // No operand predicates
6087 /* 4256 */ // MIs[1] y
6088 /* 4256 */ // No operand predicates
6089 /* 4256 */ // MIs[0] not
6090 /* 4256 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6091 /* 4260 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6092 /* 4264 */ // MIs[2] y
6093 /* 4264 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
6094 /* 4269 */ // MIs[2] Operand 2
6095 /* 4269 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6096 /* 4273 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6097 /* 4275 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6098 /* 4278 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
6099 /* 4288 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6100 /* 4291 */ // Combiner Rule #232: or_and_xor_to_xor_or
6101 /* 4291 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
6102 /* 4294 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6103 /* 4299 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
6104 /* 4303 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
6105 /* 4306 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6106 /* 4310 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6107 /* 4314 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
6108 /* 4318 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6109 /* 4321 */ GIR_EraseRootFromParent_Done,
6110 /* 4322 */ // Label 224: @4322
6111 /* 4322 */ GIM_Try, /*On fail goto*//*Label 225*/ GIMT_Encode4(4369), // Rule ID 258 //
6112 /* 4327 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
6113 /* 4330 */ // MIs[0] root
6114 /* 4330 */ // No operand predicates
6115 /* 4330 */ // MIs[0] out1
6116 /* 4330 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6117 /* 4334 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHL),
6118 /* 4338 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6119 /* 4338 */ // No operand predicates
6120 /* 4338 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
6121 /* 4338 */ // No operand predicates
6122 /* 4338 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6123 /* 4338 */ // No operand predicates
6124 /* 4338 */ // MIs[0] out2
6125 /* 4338 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6126 /* 4342 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SHL),
6127 /* 4346 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6128 /* 4346 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6129 /* 4351 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6130 /* 4351 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
6131 /* 4356 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6132 /* 4361 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6133 /* 4363 */ // Combiner Rule #184: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[0]]
6134 /* 4363 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6135 /* 4368 */ GIR_EraseRootFromParent_Done,
6136 /* 4369 */ // Label 225: @4369
6137 /* 4369 */ GIM_Try, /*On fail goto*//*Label 226*/ GIMT_Encode4(4416), // Rule ID 260 //
6138 /* 4374 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
6139 /* 4377 */ // MIs[0] root
6140 /* 4377 */ // No operand predicates
6141 /* 4377 */ // MIs[0] out1
6142 /* 4377 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6143 /* 4381 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHR),
6144 /* 4385 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
6145 /* 4385 */ // No operand predicates
6146 /* 4385 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6147 /* 4385 */ // No operand predicates
6148 /* 4385 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6149 /* 4385 */ // No operand predicates
6150 /* 4385 */ // MIs[0] out2
6151 /* 4385 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6152 /* 4389 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
6153 /* 4393 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6154 /* 4393 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
6155 /* 4398 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6156 /* 4398 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
6157 /* 4403 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6158 /* 4408 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6159 /* 4410 */ // Combiner Rule #185: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[0]]
6160 /* 4410 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6161 /* 4415 */ GIR_EraseRootFromParent_Done,
6162 /* 4416 */ // Label 226: @4416
6163 /* 4416 */ GIM_Try, /*On fail goto*//*Label 227*/ GIMT_Encode4(4514), // Rule ID 176 //
6164 /* 4421 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule123Enabled),
6165 /* 4424 */ // MIs[0] root
6166 /* 4424 */ // No operand predicates
6167 /* 4424 */ // MIs[0] d1
6168 /* 4424 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6169 /* 4428 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
6170 /* 4432 */ // MIs[1] p
6171 /* 4432 */ // No operand predicates
6172 /* 4432 */ // MIs[1] s1
6173 /* 4432 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
6174 /* 4436 */ // MIs[1] Operand 3
6175 /* 4436 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
6176 /* 4440 */ // MIs[0] d2
6177 /* 4440 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6178 /* 4444 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
6179 /* 4448 */ // MIs[2] p
6180 /* 4448 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6181 /* 4453 */ // MIs[2] s2
6182 /* 4453 */ // No operand predicates
6183 /* 4453 */ // MIs[2] Operand 3
6184 /* 4453 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
6185 /* 4457 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner14),
6186 /* 4461 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6187 /* 4463 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6188 /* 4466 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
6189 /* 4476 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6190 /* 4479 */ // Combiner Rule #123: double_icmp_zero_or_combine
6191 /* 4479 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6192 /* 4482 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6193 /* 4487 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
6194 /* 4491 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
6195 /* 4495 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
6196 /* 4499 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6197 /* 4503 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
6198 /* 4507 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6199 /* 4510 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
6200 /* 4513 */ GIR_EraseRootFromParent_Done,
6201 /* 4514 */ // Label 227: @4514
6202 /* 4514 */ GIM_Try, /*On fail goto*//*Label 228*/ GIMT_Encode4(4563), // Rule ID 400 //
6203 /* 4519 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule231Enabled),
6204 /* 4522 */ // MIs[0] root
6205 /* 4522 */ // No operand predicates
6206 /* 4522 */ // MIs[0] and
6207 /* 4522 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6208 /* 4526 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6209 /* 4530 */ // MIs[1] x
6210 /* 4530 */ // No operand predicates
6211 /* 4530 */ // MIs[1] not
6212 /* 4530 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6213 /* 4534 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6214 /* 4538 */ // MIs[2] y
6215 /* 4538 */ // No operand predicates
6216 /* 4538 */ // MIs[2] Operand 2
6217 /* 4538 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6218 /* 4542 */ // MIs[0] y
6219 /* 4542 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
6220 /* 4547 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6221 /* 4549 */ // Combiner Rule #231: or_and_xor_to_or
6222 /* 4549 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6223 /* 4552 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6224 /* 4554 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6225 /* 4558 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
6226 /* 4562 */ GIR_EraseRootFromParent_Done,
6227 /* 4563 */ // Label 228: @4563
6228 /* 4563 */ GIM_Try, /*On fail goto*//*Label 229*/ GIMT_Encode4(4597), // Rule ID 452 //
6229 /* 4568 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule278Enabled),
6230 /* 4571 */ // MIs[0] dst
6231 /* 4571 */ // No operand predicates
6232 /* 4571 */ // MIs[0] __combine_or_of_and_match_0.and
6233 /* 4571 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6234 /* 4575 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6235 /* 4579 */ // MIs[1] x
6236 /* 4579 */ // No operand predicates
6237 /* 4579 */ // MIs[1] y
6238 /* 4579 */ // No operand predicates
6239 /* 4579 */ // MIs[0] x
6240 /* 4579 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
6241 /* 4584 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
6242 /* 4589 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6243 /* 4591 */ // Combiner Rule #278: combine_or_of_and @ [__combine_or_of_and_match_0[0]]
6244 /* 4591 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
6245 /* 4596 */ GIR_EraseRootFromParent_Done,
6246 /* 4597 */ // Label 229: @4597
6247 /* 4597 */ GIM_Try, /*On fail goto*//*Label 230*/ GIMT_Encode4(4631), // Rule ID 453 //
6248 /* 4602 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule278Enabled),
6249 /* 4605 */ // MIs[0] dst
6250 /* 4605 */ // No operand predicates
6251 /* 4605 */ // MIs[0] __combine_or_of_and_match_0.and
6252 /* 4605 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6253 /* 4609 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6254 /* 4613 */ // MIs[1] y
6255 /* 4613 */ // No operand predicates
6256 /* 4613 */ // MIs[1] x
6257 /* 4613 */ // No operand predicates
6258 /* 4613 */ // MIs[0] x
6259 /* 4613 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
6260 /* 4618 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6261 /* 4623 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6262 /* 4625 */ // Combiner Rule #278: combine_or_of_and @ [__combine_or_of_and_match_0[1]]
6263 /* 4625 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6264 /* 4630 */ GIR_EraseRootFromParent_Done,
6265 /* 4631 */ // Label 230: @4631
6266 /* 4631 */ GIM_Try, /*On fail goto*//*Label 231*/ GIMT_Encode4(4678), // Rule ID 261 //
6267 /* 4636 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
6268 /* 4639 */ // MIs[0] root
6269 /* 4639 */ // No operand predicates
6270 /* 4639 */ // MIs[0] out2
6271 /* 4639 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6272 /* 4643 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
6273 /* 4647 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6274 /* 4647 */ // No operand predicates
6275 /* 4647 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6276 /* 4647 */ // No operand predicates
6277 /* 4647 */ // MIs[0] out1
6278 /* 4647 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6279 /* 4651 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHR),
6280 /* 4655 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
6281 /* 4655 */ // No operand predicates
6282 /* 4655 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6283 /* 4655 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
6284 /* 4660 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6285 /* 4660 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
6286 /* 4665 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6287 /* 4670 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6288 /* 4672 */ // Combiner Rule #185: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[1]]
6289 /* 4672 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6290 /* 4677 */ GIR_EraseRootFromParent_Done,
6291 /* 4678 */ // Label 231: @4678
6292 /* 4678 */ GIM_Try, /*On fail goto*//*Label 232*/ GIMT_Encode4(4725), // Rule ID 259 //
6293 /* 4683 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
6294 /* 4686 */ // MIs[0] root
6295 /* 4686 */ // No operand predicates
6296 /* 4686 */ // MIs[0] out2
6297 /* 4686 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6298 /* 4690 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
6299 /* 4694 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6300 /* 4694 */ // No operand predicates
6301 /* 4694 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6302 /* 4694 */ // No operand predicates
6303 /* 4694 */ // MIs[0] out1
6304 /* 4694 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6305 /* 4698 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHL),
6306 /* 4702 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6307 /* 4702 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6308 /* 4707 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
6309 /* 4707 */ // No operand predicates
6310 /* 4707 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6311 /* 4707 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
6312 /* 4712 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6313 /* 4717 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6314 /* 4719 */ // Combiner Rule #184: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[1]]
6315 /* 4719 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6316 /* 4724 */ GIR_EraseRootFromParent_Done,
6317 /* 4725 */ // Label 232: @4725
6318 /* 4725 */ GIM_Try, /*On fail goto*//*Label 233*/ GIMT_Encode4(4775), // Rule ID 405 //
6319 /* 4730 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule236Enabled),
6320 /* 4733 */ // MIs[0] root
6321 /* 4733 */ // No operand predicates
6322 /* 4733 */ // MIs[0] xor
6323 /* 4733 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6324 /* 4737 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
6325 /* 4741 */ // MIs[1] x
6326 /* 4741 */ // No operand predicates
6327 /* 4741 */ // MIs[1] y
6328 /* 4741 */ // No operand predicates
6329 /* 4741 */ // MIs[0] and
6330 /* 4741 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6331 /* 4745 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_AND),
6332 /* 4749 */ // MIs[2] x
6333 /* 4749 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6334 /* 4754 */ // MIs[2] y
6335 /* 4754 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
6336 /* 4759 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6337 /* 4761 */ // Combiner Rule #236: or_xor_and
6338 /* 4761 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6339 /* 4764 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6340 /* 4766 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6341 /* 4770 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
6342 /* 4774 */ GIR_EraseRootFromParent_Done,
6343 /* 4775 */ // Label 233: @4775
6344 /* 4775 */ GIM_Try, /*On fail goto*//*Label 234*/ GIMT_Encode4(4825), // Rule ID 404 //
6345 /* 4780 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule235Enabled),
6346 /* 4783 */ // MIs[0] root
6347 /* 4783 */ // No operand predicates
6348 /* 4783 */ // MIs[0] xor
6349 /* 4783 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6350 /* 4787 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
6351 /* 4791 */ // MIs[1] x
6352 /* 4791 */ // No operand predicates
6353 /* 4791 */ // MIs[1] y
6354 /* 4791 */ // No operand predicates
6355 /* 4791 */ // MIs[0] or
6356 /* 4791 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6357 /* 4795 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_OR),
6358 /* 4799 */ // MIs[2] x
6359 /* 4799 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6360 /* 4804 */ // MIs[2] y
6361 /* 4804 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
6362 /* 4809 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6363 /* 4811 */ // Combiner Rule #235: or_xor_or
6364 /* 4811 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6365 /* 4814 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6366 /* 4816 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6367 /* 4820 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
6368 /* 4824 */ GIR_EraseRootFromParent_Done,
6369 /* 4825 */ // Label 234: @4825
6370 /* 4825 */ GIM_Try, /*On fail goto*//*Label 235*/ GIMT_Encode4(4846), // Rule ID 88 //
6371 /* 4830 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
6372 /* 4833 */ // MIs[0] dst
6373 /* 4833 */ // No operand predicates
6374 /* 4833 */ // MIs[0] __undef_to_negative_one_match_0.x
6375 /* 4833 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6376 /* 4837 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6377 /* 4841 */ // MIs[0] __undef_to_negative_one_match_0.y
6378 /* 4841 */ // No operand predicates
6379 /* 4841 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6380 /* 4843 */ // Combiner Rule #78: undef_to_negative_one @ [__undef_to_negative_one_match_0[0]]
6381 /* 4843 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
6382 /* 4846 */ // Label 235: @4846
6383 /* 4846 */ GIM_Try, /*On fail goto*//*Label 236*/ GIMT_Encode4(4870), // Rule ID 129 //
6384 /* 4851 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
6385 /* 4854 */ // MIs[0] dst
6386 /* 4854 */ // No operand predicates
6387 /* 4854 */ // MIs[0] src
6388 /* 4854 */ // No operand predicates
6389 /* 4854 */ // MIs[0] src
6390 /* 4854 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6391 /* 4859 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6392 /* 4864 */ // Combiner Rule #91: binop_same_val @ [__binop_same_val_match_0[1]]
6393 /* 4864 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6394 /* 4869 */ GIR_EraseRootFromParent_Done,
6395 /* 4870 */ // Label 236: @4870
6396 /* 4870 */ GIM_Try, /*On fail goto*//*Label 237*/ GIMT_Encode4(4904), // Rule ID 454 //
6397 /* 4875 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule278Enabled),
6398 /* 4878 */ // MIs[0] dst
6399 /* 4878 */ // No operand predicates
6400 /* 4878 */ // MIs[0] x
6401 /* 4878 */ // No operand predicates
6402 /* 4878 */ // MIs[0] __combine_or_of_and_match_0.and
6403 /* 4878 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6404 /* 4882 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6405 /* 4886 */ // MIs[1] x
6406 /* 4886 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
6407 /* 4891 */ // MIs[1] y
6408 /* 4891 */ // No operand predicates
6409 /* 4891 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6410 /* 4896 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6411 /* 4898 */ // Combiner Rule #278: combine_or_of_and @ [__combine_or_of_and_match_0[2]]
6412 /* 4898 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6413 /* 4903 */ GIR_EraseRootFromParent_Done,
6414 /* 4904 */ // Label 237: @4904
6415 /* 4904 */ GIM_Try, /*On fail goto*//*Label 238*/ GIMT_Encode4(4938), // Rule ID 455 //
6416 /* 4909 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule278Enabled),
6417 /* 4912 */ // MIs[0] dst
6418 /* 4912 */ // No operand predicates
6419 /* 4912 */ // MIs[0] x
6420 /* 4912 */ // No operand predicates
6421 /* 4912 */ // MIs[0] __combine_or_of_and_match_0.and
6422 /* 4912 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6423 /* 4916 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6424 /* 4920 */ // MIs[1] y
6425 /* 4920 */ // No operand predicates
6426 /* 4920 */ // MIs[1] x
6427 /* 4920 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6428 /* 4925 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6429 /* 4930 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6430 /* 4932 */ // Combiner Rule #278: combine_or_of_and @ [__combine_or_of_and_match_0[3]]
6431 /* 4932 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6432 /* 4937 */ GIR_EraseRootFromParent_Done,
6433 /* 4938 */ // Label 238: @4938
6434 /* 4938 */ GIM_Try, /*On fail goto*//*Label 239*/ GIMT_Encode4(4959), // Rule ID 89 //
6435 /* 4943 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
6436 /* 4946 */ // MIs[0] dst
6437 /* 4946 */ // No operand predicates
6438 /* 4946 */ // MIs[0] __undef_to_negative_one_match_0.x
6439 /* 4946 */ // No operand predicates
6440 /* 4946 */ // MIs[0] __undef_to_negative_one_match_0.y
6441 /* 4946 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6442 /* 4950 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6443 /* 4954 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6444 /* 4956 */ // Combiner Rule #78: undef_to_negative_one @ [__undef_to_negative_one_match_0[1]]
6445 /* 4956 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
6446 /* 4959 */ // Label 239: @4959
6447 /* 4959 */ GIM_Try, /*On fail goto*//*Label 240*/ GIMT_Encode4(4982), // Rule ID 120 //
6448 /* 4964 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
6449 /* 4967 */ // MIs[0] dst
6450 /* 4967 */ // No operand predicates
6451 /* 4967 */ // MIs[0] lhs
6452 /* 4967 */ // No operand predicates
6453 /* 4967 */ // MIs[0] Operand 2
6454 /* 4967 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6455 /* 4971 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6456 /* 4976 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[2]]
6457 /* 4976 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6458 /* 4981 */ GIR_EraseRootFromParent_Done,
6459 /* 4982 */ // Label 240: @4982
6460 /* 4982 */ GIM_Try, /*On fail goto*//*Label 241*/ GIMT_Encode4(4993), // Rule ID 197 //
6461 /* 4987 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule144Enabled),
6462 /* 4990 */ // MIs[0] dst
6463 /* 4990 */ // No operand predicates
6464 /* 4990 */ // MIs[0] src1
6465 /* 4990 */ // No operand predicates
6466 /* 4990 */ // MIs[0] src2
6467 /* 4990 */ // No operand predicates
6468 /* 4990 */ // Combiner Rule #144: redundant_or
6469 /* 4990 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner65),
6470 /* 4993 */ // Label 241: @4993
6471 /* 4993 */ GIM_Try, /*On fail goto*//*Label 242*/ GIMT_Encode4(5004), // Rule ID 246 //
6472 /* 4998 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled),
6473 /* 5001 */ // MIs[0] dst
6474 /* 5001 */ // No operand predicates
6475 /* 5001 */ // MIs[0] src1
6476 /* 5001 */ // No operand predicates
6477 /* 5001 */ // MIs[0] src2
6478 /* 5001 */ // No operand predicates
6479 /* 5001 */ // Combiner Rule #177: load_or_combine
6480 /* 5001 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
6481 /* 5004 */ // Label 242: @5004
6482 /* 5004 */ GIM_Try, /*On fail goto*//*Label 243*/ GIMT_Encode4(5015), // Rule ID 251 //
6483 /* 5009 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
6484 /* 5012 */ // MIs[0] dst
6485 /* 5012 */ // No operand predicates
6486 /* 5012 */ // MIs[0] src1
6487 /* 5012 */ // No operand predicates
6488 /* 5012 */ // MIs[0] src2
6489 /* 5012 */ // No operand predicates
6490 /* 5012 */ // Combiner Rule #179: funnel_shift_from_or_shift
6491 /* 5012 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
6492 /* 5015 */ // Label 243: @5015
6493 /* 5015 */ GIM_Try, /*On fail goto*//*Label 244*/ GIMT_Encode4(5026), // Rule ID 399 //
6494 /* 5020 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule230Enabled),
6495 /* 5023 */ // MIs[0] dst
6496 /* 5023 */ // No operand predicates
6497 /* 5023 */ // MIs[0] src1
6498 /* 5023 */ // No operand predicates
6499 /* 5023 */ // MIs[0] src2
6500 /* 5023 */ // No operand predicates
6501 /* 5023 */ // Combiner Rule #230: match_ors
6502 /* 5023 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
6503 /* 5026 */ // Label 244: @5026
6504 /* 5026 */ GIM_Reject,
6505 /* 5027 */ // Label 10: @5027
6506 /* 5027 */ GIM_Try, /*On fail goto*//*Label 245*/ GIMT_Encode4(5038), // Rule ID 164 //
6507 /* 5032 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
6508 /* 5035 */ // Combiner Rule #113: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_XOR'
6509 /* 5035 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
6510 /* 5038 */ // Label 245: @5038
6511 /* 5038 */ GIM_Try, /*On fail goto*//*Label 246*/ GIMT_Encode4(5049), // Rule ID 281 //
6512 /* 5043 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
6513 /* 5046 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_XOR'
6514 /* 5046 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6515 /* 5049 */ // Label 246: @5049
6516 /* 5049 */ GIM_Try, /*On fail goto*//*Label 247*/ GIMT_Encode4(5060), // Rule ID 337 //
6517 /* 5054 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
6518 /* 5057 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_XOR'
6519 /* 5057 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
6520 /* 5060 */ // Label 247: @5060
6521 /* 5060 */ GIM_Try, /*On fail goto*//*Label 248*/ GIMT_Encode4(5071), // Rule ID 373 //
6522 /* 5065 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
6523 /* 5068 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_XOR'
6524 /* 5068 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
6525 /* 5071 */ // Label 248: @5071
6526 /* 5071 */ GIM_Try, /*On fail goto*//*Label 249*/ GIMT_Encode4(5082), // Rule ID 443 //
6527 /* 5076 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule269Enabled),
6528 /* 5079 */ // Combiner Rule #269: binop_with_neg; wip_match_opcode 'G_XOR'
6529 /* 5079 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner148),
6530 /* 5082 */ // Label 249: @5082
6531 /* 5082 */ GIM_Try, /*On fail goto*//*Label 250*/ GIMT_Encode4(5142), // Rule ID 13 //
6532 /* 5087 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
6533 /* 5090 */ // MIs[0] root
6534 /* 5090 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
6535 /* 5094 */ // MIs[0] add
6536 /* 5094 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6537 /* 5098 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
6538 /* 5102 */ // MIs[1] A
6539 /* 5102 */ // No operand predicates
6540 /* 5102 */ // MIs[1] Operand 2
6541 /* 5102 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 255,
6542 /* 5106 */ // MIs[0] Operand 2
6543 /* 5106 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
6544 /* 5110 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
6545 /* 5114 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6546 /* 5116 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6547 /* 5119 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
6548 /* 5129 */ // Combiner Rule #13: NotAPlusNegOne
6549 /* 5129 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
6550 /* 5132 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6551 /* 5134 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
6552 /* 5137 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
6553 /* 5141 */ GIR_EraseRootFromParent_Done,
6554 /* 5142 */ // Label 250: @5142
6555 /* 5142 */ GIM_Try, /*On fail goto*//*Label 251*/ GIMT_Encode4(5163), // Rule ID 106 //
6556 /* 5147 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6557 /* 5150 */ // MIs[0] dst
6558 /* 5150 */ // No operand predicates
6559 /* 5150 */ // MIs[0] __propagate_undef_any_op_match_0.x
6560 /* 5150 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6561 /* 5154 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6562 /* 5158 */ // MIs[0] __propagate_undef_any_op_match_0.y
6563 /* 5158 */ // No operand predicates
6564 /* 5158 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6565 /* 5160 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[2]]
6566 /* 5160 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
6567 /* 5163 */ // Label 251: @5163
6568 /* 5163 */ GIM_Try, /*On fail goto*//*Label 252*/ GIMT_Encode4(5202), // Rule ID 131 //
6569 /* 5168 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
6570 /* 5171 */ // MIs[0] dst
6571 /* 5171 */ // No operand predicates
6572 /* 5171 */ // MIs[0] x
6573 /* 5171 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
6574 /* 5175 */ // MIs[0] x
6575 /* 5175 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6576 /* 5180 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6577 /* 5183 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
6578 /* 5193 */ // Combiner Rule #92: same_val_zero @ [__same_val_zero_match_0[1]]
6579 /* 5193 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
6580 /* 5196 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6581 /* 5198 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
6582 /* 5201 */ GIR_EraseRootFromParent_Done,
6583 /* 5202 */ // Label 252: @5202
6584 /* 5202 */ GIM_Try, /*On fail goto*//*Label 253*/ GIMT_Encode4(5223), // Rule ID 109 //
6585 /* 5207 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6586 /* 5210 */ // MIs[0] dst
6587 /* 5210 */ // No operand predicates
6588 /* 5210 */ // MIs[0] __propagate_undef_any_op_match_0.x
6589 /* 5210 */ // No operand predicates
6590 /* 5210 */ // MIs[0] __propagate_undef_any_op_match_0.y
6591 /* 5210 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6592 /* 5214 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6593 /* 5218 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6594 /* 5220 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[5]]
6595 /* 5220 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
6596 /* 5223 */ // Label 253: @5223
6597 /* 5223 */ GIM_Try, /*On fail goto*//*Label 254*/ GIMT_Encode4(5246), // Rule ID 121 //
6598 /* 5228 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
6599 /* 5231 */ // MIs[0] dst
6600 /* 5231 */ // No operand predicates
6601 /* 5231 */ // MIs[0] lhs
6602 /* 5231 */ // No operand predicates
6603 /* 5231 */ // MIs[0] Operand 2
6604 /* 5231 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6605 /* 5235 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6606 /* 5240 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[3]]
6607 /* 5240 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6608 /* 5245 */ GIR_EraseRootFromParent_Done,
6609 /* 5246 */ // Label 254: @5246
6610 /* 5246 */ GIM_Try, /*On fail goto*//*Label 255*/ GIMT_Encode4(5257), // Rule ID 202 //
6611 /* 5251 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule149Enabled),
6612 /* 5254 */ // MIs[0] dst
6613 /* 5254 */ // No operand predicates
6614 /* 5254 */ // MIs[0] src1
6615 /* 5254 */ // No operand predicates
6616 /* 5254 */ // MIs[0] src2
6617 /* 5254 */ // No operand predicates
6618 /* 5254 */ // Combiner Rule #149: not_cmp_fold
6619 /* 5254 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
6620 /* 5257 */ // Label 255: @5257
6621 /* 5257 */ GIM_Try, /*On fail goto*//*Label 256*/ GIMT_Encode4(5268), // Rule ID 234 //
6622 /* 5262 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
6623 /* 5265 */ // MIs[0] dst
6624 /* 5265 */ // No operand predicates
6625 /* 5265 */ // MIs[0] src1
6626 /* 5265 */ // No operand predicates
6627 /* 5265 */ // MIs[0] src2
6628 /* 5265 */ // No operand predicates
6629 /* 5265 */ // Combiner Rule #173: xor_of_and_with_same_reg
6630 /* 5265 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
6631 /* 5268 */ // Label 256: @5268
6632 /* 5268 */ GIM_Reject,
6633 /* 5269 */ // Label 11: @5269
6634 /* 5269 */ GIM_Try, /*On fail goto*//*Label 257*/ GIMT_Encode4(5283), // Rule ID 159 //
6635 /* 5274 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
6636 /* 5277 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
6637 /* 5280 */ // MIs[0] dst
6638 /* 5280 */ // No operand predicates
6639 /* 5280 */ // MIs[0] srcs
6640 /* 5280 */ // No operand predicates
6641 /* 5280 */ // Combiner Rule #111: extend_through_phis
6642 /* 5280 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
6643 /* 5283 */ // Label 257: @5283
6644 /* 5283 */ GIM_Reject,
6645 /* 5284 */ // Label 12: @5284
6646 /* 5284 */ GIM_Try, /*On fail goto*//*Label 258*/ GIMT_Encode4(5295), // Rule ID 415 //
6647 /* 5289 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule246Enabled),
6648 /* 5292 */ // Combiner Rule #246: unmerge_anyext_build_vector; wip_match_opcode 'G_UNMERGE_VALUES'
6649 /* 5292 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
6650 /* 5295 */ // Label 258: @5295
6651 /* 5295 */ GIM_Try, /*On fail goto*//*Label 259*/ GIMT_Encode4(5306), // Rule ID 416 //
6652 /* 5300 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule247Enabled),
6653 /* 5303 */ // Combiner Rule #247: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
6654 /* 5303 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132),
6655 /* 5306 */ // Label 259: @5306
6656 /* 5306 */ GIM_Try, /*On fail goto*//*Label 260*/ GIMT_Encode4(5317), // Rule ID 418 //
6657 /* 5311 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule249Enabled),
6658 /* 5314 */ // Combiner Rule #249: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
6659 /* 5314 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner134),
6660 /* 5317 */ // Label 260: @5317
6661 /* 5317 */ GIM_Try, /*On fail goto*//*Label 261*/ GIMT_Encode4(5328), // Rule ID 419 //
6662 /* 5322 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule250Enabled),
6663 /* 5325 */ // Combiner Rule #250: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
6664 /* 5325 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner135),
6665 /* 5328 */ // Label 261: @5328
6666 /* 5328 */ GIM_Try, /*On fail goto*//*Label 262*/ GIMT_Encode4(5339), // Rule ID 420 //
6667 /* 5333 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule251Enabled),
6668 /* 5336 */ // Combiner Rule #251: unmerge_dead_to_trunc; wip_match_opcode 'G_UNMERGE_VALUES'
6669 /* 5336 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner136),
6670 /* 5339 */ // Label 262: @5339
6671 /* 5339 */ GIM_Try, /*On fail goto*//*Label 263*/ GIMT_Encode4(5350), // Rule ID 421 //
6672 /* 5344 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule252Enabled),
6673 /* 5347 */ // Combiner Rule #252: unmerge_zext_to_zext; wip_match_opcode 'G_UNMERGE_VALUES'
6674 /* 5347 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner137),
6675 /* 5350 */ // Label 263: @5350
6676 /* 5350 */ GIM_Reject,
6677 /* 5351 */ // Label 13: @5351
6678 /* 5351 */ GIM_Try, /*On fail goto*//*Label 264*/ GIMT_Encode4(5365), // Rule ID 417 //
6679 /* 5356 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule248Enabled),
6680 /* 5359 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
6681 /* 5362 */ // MIs[0] dst
6682 /* 5362 */ // No operand predicates
6683 /* 5362 */ // MIs[0] merge_srcs
6684 /* 5362 */ // No operand predicates
6685 /* 5362 */ // Combiner Rule #248: merge_unmerge
6686 /* 5362 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
6687 /* 5365 */ // Label 264: @5365
6688 /* 5365 */ GIM_Try, /*On fail goto*//*Label 265*/ GIMT_Encode4(5427),
6689 /* 5370 */ GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
6690 /* 5373 */ GIM_Try, /*On fail goto*//*Label 266*/ GIMT_Encode4(5394), // Rule ID 422 //
6691 /* 5378 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule253Enabled),
6692 /* 5381 */ // MIs[0] root
6693 /* 5381 */ // No operand predicates
6694 /* 5381 */ // MIs[0] x
6695 /* 5381 */ // No operand predicates
6696 /* 5381 */ // MIs[0] undef
6697 /* 5381 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6698 /* 5385 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6699 /* 5389 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6700 /* 5391 */ // Combiner Rule #253: merge_of_x_and_undef
6701 /* 5391 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner138),
6702 /* 5394 */ // Label 266: @5394
6703 /* 5394 */ GIM_Try, /*On fail goto*//*Label 267*/ GIMT_Encode4(5426), // Rule ID 423 //
6704 /* 5399 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule254Enabled),
6705 /* 5402 */ // MIs[0] root
6706 /* 5402 */ // No operand predicates
6707 /* 5402 */ // MIs[0] x
6708 /* 5402 */ // No operand predicates
6709 /* 5402 */ // MIs[0] zero
6710 /* 5402 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6711 /* 5406 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6712 /* 5410 */ // MIs[1] Operand 1
6713 /* 5410 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
6714 /* 5421 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6715 /* 5423 */ // Combiner Rule #254: merge_of_x_and_zero
6716 /* 5423 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner139),
6717 /* 5426 */ // Label 267: @5426
6718 /* 5426 */ GIM_Reject,
6719 /* 5427 */ // Label 265: @5427
6720 /* 5427 */ GIM_Reject,
6721 /* 5428 */ // Label 14: @5428
6722 /* 5428 */ GIM_Try, /*On fail goto*//*Label 268*/ GIMT_Encode4(5439), // Rule ID 111 //
6723 /* 5433 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
6724 /* 5436 */ // Combiner Rule #84: propagate_undef_all_ops; wip_match_opcode 'G_BUILD_VECTOR'
6725 /* 5436 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
6726 /* 5439 */ // Label 268: @5439
6727 /* 5439 */ GIM_Try, /*On fail goto*//*Label 269*/ GIMT_Encode4(5450), // Rule ID 150 //
6728 /* 5444 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
6729 /* 5447 */ // Combiner Rule #102: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR'
6730 /* 5447 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner41),
6731 /* 5450 */ // Label 269: @5450
6732 /* 5450 */ GIM_Try, /*On fail goto*//*Label 270*/ GIMT_Encode4(5492),
6733 /* 5455 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
6734 /* 5458 */ GIM_Try, /*On fail goto*//*Label 271*/ GIMT_Encode4(5469), // Rule ID 76 //
6735 /* 5463 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
6736 /* 5466 */ // MIs[0] dst
6737 /* 5466 */ // No operand predicates
6738 /* 5466 */ // MIs[0] srcs
6739 /* 5466 */ // No operand predicates
6740 /* 5466 */ // Combiner Rule #72: extract_all_elts_from_build_vector
6741 /* 5466 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner28),
6742 /* 5469 */ // Label 271: @5469
6743 /* 5469 */ GIM_Try, /*On fail goto*//*Label 272*/ GIMT_Encode4(5480), // Rule ID 414 //
6744 /* 5474 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule245Enabled),
6745 /* 5477 */ // MIs[0] dst
6746 /* 5477 */ // No operand predicates
6747 /* 5477 */ // MIs[0] unused
6748 /* 5477 */ // No operand predicates
6749 /* 5477 */ // Combiner Rule #245: combine_use_vector_truncate
6750 /* 5477 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
6751 /* 5480 */ // Label 272: @5480
6752 /* 5480 */ GIM_Try, /*On fail goto*//*Label 273*/ GIMT_Encode4(5491), // Rule ID 424 //
6753 /* 5485 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule255Enabled),
6754 /* 5488 */ // MIs[0] dst
6755 /* 5488 */ // No operand predicates
6756 /* 5488 */ // MIs[0] unused
6757 /* 5488 */ // No operand predicates
6758 /* 5488 */ // Combiner Rule #255: combine_build_unmerge
6759 /* 5488 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner140),
6760 /* 5491 */ // Label 273: @5491
6761 /* 5491 */ GIM_Reject,
6762 /* 5492 */ // Label 270: @5492
6763 /* 5492 */ GIM_Reject,
6764 /* 5493 */ // Label 15: @5493
6765 /* 5493 */ GIM_Try, /*On fail goto*//*Label 274*/ GIMT_Encode4(5504), // Rule ID 149 //
6766 /* 5498 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
6767 /* 5501 */ // Combiner Rule #102: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR_TRUNC'
6768 /* 5501 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner41),
6769 /* 5504 */ // Label 274: @5504
6770 /* 5504 */ GIM_Reject,
6771 /* 5505 */ // Label 16: @5505
6772 /* 5505 */ GIM_Try, /*On fail goto*//*Label 275*/ GIMT_Encode4(5519), // Rule ID 407 //
6773 /* 5510 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule238Enabled),
6774 /* 5513 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
6775 /* 5516 */ // MIs[0] dst
6776 /* 5516 */ // No operand predicates
6777 /* 5516 */ // MIs[0] srcs
6778 /* 5516 */ // No operand predicates
6779 /* 5516 */ // Combiner Rule #238: combine_concat_vector
6780 /* 5516 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6781 /* 5519 */ // Label 275: @5519
6782 /* 5519 */ GIM_Reject,
6783 /* 5520 */ // Label 17: @5520
6784 /* 5520 */ GIM_Try, /*On fail goto*//*Label 276*/ GIMT_Encode4(5541), // Rule ID 142 //
6785 /* 5525 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule96Enabled),
6786 /* 5528 */ // MIs[0] dst
6787 /* 5528 */ // No operand predicates
6788 /* 5528 */ // MIs[0] t
6789 /* 5528 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6790 /* 5532 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
6791 /* 5536 */ // MIs[1] ptr
6792 /* 5536 */ // No operand predicates
6793 /* 5536 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6794 /* 5538 */ // Combiner Rule #96: i2p_to_p2i
6795 /* 5538 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
6796 /* 5541 */ // Label 276: @5541
6797 /* 5541 */ GIM_Try, /*On fail goto*//*Label 277*/ GIMT_Encode4(5562), // Rule ID 100 //
6798 /* 5546 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
6799 /* 5549 */ // MIs[0] dst
6800 /* 5549 */ // No operand predicates
6801 /* 5549 */ // MIs[0] __unary_undef_to_undef_match_0.x
6802 /* 5549 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6803 /* 5553 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6804 /* 5557 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6805 /* 5559 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[3]]
6806 /* 5559 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
6807 /* 5562 */ // Label 277: @5562
6808 /* 5562 */ GIM_Reject,
6809 /* 5563 */ // Label 18: @5563
6810 /* 5563 */ GIM_Try, /*On fail goto*//*Label 278*/ GIMT_Encode4(5596), // Rule ID 141 //
6811 /* 5568 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
6812 /* 5571 */ // MIs[0] dst
6813 /* 5571 */ // No operand predicates
6814 /* 5571 */ // MIs[0] mid
6815 /* 5571 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6816 /* 5575 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_PTRTOINT),
6817 /* 5579 */ // MIs[1] x
6818 /* 5579 */ // No operand predicates
6819 /* 5579 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
6820 /* 5583 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
6821 /* 5588 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6822 /* 5590 */ // Combiner Rule #95: p2i_to_i2p
6823 /* 5590 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
6824 /* 5595 */ GIR_EraseRootFromParent_Done,
6825 /* 5596 */ // Label 278: @5596
6826 /* 5596 */ GIM_Try, /*On fail goto*//*Label 279*/ GIMT_Encode4(5617), // Rule ID 101 //
6827 /* 5601 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
6828 /* 5604 */ // MIs[0] dst
6829 /* 5604 */ // No operand predicates
6830 /* 5604 */ // MIs[0] __unary_undef_to_undef_match_0.x
6831 /* 5604 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6832 /* 5608 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6833 /* 5612 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6834 /* 5614 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[4]]
6835 /* 5614 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
6836 /* 5617 */ // Label 279: @5617
6837 /* 5617 */ GIM_Reject,
6838 /* 5618 */ // Label 19: @5618
6839 /* 5618 */ GIM_Try, /*On fail goto*//*Label 280*/ GIMT_Encode4(5650), // Rule ID 154 //
6840 /* 5623 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
6841 /* 5626 */ // MIs[0] dst
6842 /* 5626 */ // No operand predicates
6843 /* 5626 */ // MIs[0] src1
6844 /* 5626 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6845 /* 5630 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
6846 /* 5634 */ // MIs[1] src0
6847 /* 5634 */ // No operand predicates
6848 /* 5634 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
6849 /* 5638 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6850 /* 5640 */ // Combiner Rule #106: bitcast_bitcast_to_bitcast
6851 /* 5640 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_BITCAST),
6852 /* 5643 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6853 /* 5645 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src0
6854 /* 5649 */ GIR_EraseRootFromParent_Done,
6855 /* 5650 */ // Label 280: @5650
6856 /* 5650 */ GIM_Try, /*On fail goto*//*Label 281*/ GIMT_Encode4(5671), // Rule ID 153 //
6857 /* 5655 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
6858 /* 5658 */ // MIs[0] dst
6859 /* 5658 */ // No operand predicates
6860 /* 5658 */ // MIs[0] src1
6861 /* 5658 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6862 /* 5662 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
6863 /* 5666 */ // MIs[1] src0
6864 /* 5666 */ // No operand predicates
6865 /* 5666 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6866 /* 5668 */ // Combiner Rule #105: bitcast_bitcast_fold
6867 /* 5668 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner44),
6868 /* 5671 */ // Label 281: @5671
6869 /* 5671 */ GIM_Try, /*On fail goto*//*Label 282*/ GIMT_Encode4(5692), // Rule ID 98 //
6870 /* 5676 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
6871 /* 5679 */ // MIs[0] dst
6872 /* 5679 */ // No operand predicates
6873 /* 5679 */ // MIs[0] __unary_undef_to_undef_match_0.x
6874 /* 5679 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6875 /* 5683 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6876 /* 5687 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6877 /* 5689 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[1]]
6878 /* 5689 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
6879 /* 5692 */ // Label 282: @5692
6880 /* 5692 */ GIM_Reject,
6881 /* 5693 */ // Label 20: @5693
6882 /* 5693 */ GIM_Try, /*On fail goto*//*Label 283*/ GIMT_Encode4(5722), // Rule ID 25 //
6883 /* 5698 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
6884 /* 5701 */ // MIs[0] dst
6885 /* 5701 */ // No operand predicates
6886 /* 5701 */ // MIs[0] src
6887 /* 5701 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6888 /* 5705 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREEZE),
6889 /* 5709 */ // MIs[1] __idempotent_prop_match_0.x
6890 /* 5709 */ // No operand predicates
6891 /* 5709 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6892 /* 5714 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6893 /* 5716 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[0]]
6894 /* 5716 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6895 /* 5721 */ GIR_EraseRootFromParent_Done,
6896 /* 5722 */ // Label 283: @5722
6897 /* 5722 */ GIM_Try, /*On fail goto*//*Label 284*/ GIMT_Encode4(5745), // Rule ID 50 //
6898 /* 5727 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
6899 /* 5730 */ // MIs[0] root
6900 /* 5730 */ // No operand predicates
6901 /* 5730 */ // MIs[0] src
6902 /* 5730 */ // No operand predicates
6903 /* 5730 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
6904 /* 5734 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6905 /* 5739 */ // Combiner Rule #46: freeze_of_non_undef_non_poison
6906 /* 5739 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6907 /* 5744 */ GIR_EraseRootFromParent_Done,
6908 /* 5745 */ // Label 284: @5745
6909 /* 5745 */ GIM_Try, /*On fail goto*//*Label 285*/ GIMT_Encode4(5756), // Rule ID 51 //
6910 /* 5750 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
6911 /* 5753 */ // MIs[0] dst
6912 /* 5753 */ // No operand predicates
6913 /* 5753 */ // MIs[0] src
6914 /* 5753 */ // No operand predicates
6915 /* 5753 */ // Combiner Rule #47: push_freeze_to_prevent_poison_from_propagating
6916 /* 5753 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
6917 /* 5756 */ // Label 285: @5756
6918 /* 5756 */ GIM_Reject,
6919 /* 5757 */ // Label 21: @5757
6920 /* 5757 */ GIM_Try, /*On fail goto*//*Label 286*/ GIMT_Encode4(5778), // Rule ID 212 //
6921 /* 5762 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
6922 /* 5765 */ // MIs[0] dst
6923 /* 5765 */ // No operand predicates
6924 /* 5765 */ // MIs[0] src0
6925 /* 5765 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6926 /* 5769 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
6927 /* 5773 */ // MIs[1] cst
6928 /* 5773 */ // No operand predicates
6929 /* 5773 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6930 /* 5775 */ // Combiner Rule #159: constant_fold_intrinsic_trunc
6931 /* 5775 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
6932 /* 5778 */ // Label 286: @5778
6933 /* 5778 */ GIM_Reject,
6934 /* 5779 */ // Label 22: @5779
6935 /* 5779 */ GIM_Try, /*On fail goto*//*Label 287*/ GIMT_Encode4(5800), // Rule ID 213 //
6936 /* 5784 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
6937 /* 5787 */ // MIs[0] dst
6938 /* 5787 */ // No operand predicates
6939 /* 5787 */ // MIs[0] src0
6940 /* 5787 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6941 /* 5791 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
6942 /* 5795 */ // MIs[1] cst
6943 /* 5795 */ // No operand predicates
6944 /* 5795 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6945 /* 5797 */ // Combiner Rule #160: constant_fold_intrinsic_round
6946 /* 5797 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
6947 /* 5800 */ // Label 287: @5800
6948 /* 5800 */ GIM_Reject,
6949 /* 5801 */ // Label 23: @5801
6950 /* 5801 */ GIM_Try, /*On fail goto*//*Label 288*/ GIMT_Encode4(5822), // Rule ID 214 //
6951 /* 5806 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
6952 /* 5809 */ // MIs[0] dst
6953 /* 5809 */ // No operand predicates
6954 /* 5809 */ // MIs[0] src0
6955 /* 5809 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6956 /* 5813 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
6957 /* 5817 */ // MIs[1] cst
6958 /* 5817 */ // No operand predicates
6959 /* 5817 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6960 /* 5819 */ // Combiner Rule #161: constant_fold_intrinsic_roundeven
6961 /* 5819 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
6962 /* 5822 */ // Label 288: @5822
6963 /* 5822 */ GIM_Reject,
6964 /* 5823 */ // Label 24: @5823
6965 /* 5823 */ GIM_Try, /*On fail goto*//*Label 289*/ GIMT_Encode4(5834), // Rule ID 77 //
6966 /* 5828 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
6967 /* 5831 */ // Combiner Rule #73: extending_loads; wip_match_opcode 'G_LOAD'
6968 /* 5831 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
6969 /* 5834 */ // Label 289: @5834
6970 /* 5834 */ GIM_Reject,
6971 /* 5835 */ // Label 25: @5835
6972 /* 5835 */ GIM_Try, /*On fail goto*//*Label 290*/ GIMT_Encode4(5846), // Rule ID 78 //
6973 /* 5840 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
6974 /* 5843 */ // Combiner Rule #73: extending_loads; wip_match_opcode 'G_SEXTLOAD'
6975 /* 5843 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
6976 /* 5846 */ // Label 290: @5846
6977 /* 5846 */ GIM_Reject,
6978 /* 5847 */ // Label 26: @5847
6979 /* 5847 */ GIM_Try, /*On fail goto*//*Label 291*/ GIMT_Encode4(5858), // Rule ID 79 //
6980 /* 5852 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
6981 /* 5855 */ // Combiner Rule #73: extending_loads; wip_match_opcode 'G_ZEXTLOAD'
6982 /* 5855 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
6983 /* 5858 */ // Label 291: @5858
6984 /* 5858 */ GIM_Reject,
6985 /* 5859 */ // Label 27: @5859
6986 /* 5859 */ GIM_Try, /*On fail goto*//*Label 292*/ GIMT_Encode4(5870), // Rule ID 113 //
6987 /* 5864 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
6988 /* 5867 */ // Combiner Rule #86: erase_undef_store; wip_match_opcode 'G_STORE'
6989 /* 5867 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
6990 /* 5870 */ // Label 292: @5870
6991 /* 5870 */ GIM_Reject,
6992 /* 5871 */ // Label 28: @5871
6993 /* 5871 */ GIM_Try, /*On fail goto*//*Label 293*/ GIMT_Encode4(5892), // Rule ID 64 //
6994 /* 5876 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled),
6995 /* 5879 */ // MIs[0] root
6996 /* 5879 */ // No operand predicates
6997 /* 5879 */ // MIs[0] select
6998 /* 5879 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6999 /* 5883 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
7000 /* 5887 */ // MIs[1] cond
7001 /* 5887 */ // No operand predicates
7002 /* 5887 */ // MIs[1] true
7003 /* 5887 */ // No operand predicates
7004 /* 5887 */ // MIs[1] false
7005 /* 5887 */ // No operand predicates
7006 /* 5887 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7007 /* 5889 */ // Combiner Rule #60: select_of_anyext
7008 /* 5889 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
7009 /* 5892 */ // Label 293: @5892
7010 /* 5892 */ GIM_Try, /*On fail goto*//*Label 294*/ GIMT_Encode4(5913), // Rule ID 59 //
7011 /* 5897 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
7012 /* 5900 */ // MIs[0] root
7013 /* 5900 */ // No operand predicates
7014 /* 5900 */ // MIs[0] second
7015 /* 5900 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7016 /* 5904 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7017 /* 5908 */ // MIs[1] src
7018 /* 5908 */ // No operand predicates
7019 /* 5908 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7020 /* 5910 */ // Combiner Rule #55: anyext_of_anyext
7021 /* 5910 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7022 /* 5913 */ // Label 294: @5913
7023 /* 5913 */ GIM_Try, /*On fail goto*//*Label 295*/ GIMT_Encode4(5934), // Rule ID 61 //
7024 /* 5918 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
7025 /* 5921 */ // MIs[0] root
7026 /* 5921 */ // No operand predicates
7027 /* 5921 */ // MIs[0] second
7028 /* 5921 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7029 /* 5925 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
7030 /* 5929 */ // MIs[1] src
7031 /* 5929 */ // No operand predicates
7032 /* 5929 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7033 /* 5931 */ // Combiner Rule #57: anyext_of_sext
7034 /* 5931 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7035 /* 5934 */ // Label 295: @5934
7036 /* 5934 */ GIM_Try, /*On fail goto*//*Label 296*/ GIMT_Encode4(5955), // Rule ID 60 //
7037 /* 5939 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
7038 /* 5942 */ // MIs[0] root
7039 /* 5942 */ // No operand predicates
7040 /* 5942 */ // MIs[0] second
7041 /* 5942 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7042 /* 5946 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
7043 /* 5950 */ // MIs[1] src
7044 /* 5950 */ // No operand predicates
7045 /* 5950 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7046 /* 5952 */ // Combiner Rule #56: anyext_of_zext
7047 /* 5952 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7048 /* 5955 */ // Label 296: @5955
7049 /* 5955 */ GIM_Try, /*On fail goto*//*Label 297*/ GIMT_Encode4(5976), // Rule ID 99 //
7050 /* 5960 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
7051 /* 5963 */ // MIs[0] dst
7052 /* 5963 */ // No operand predicates
7053 /* 5963 */ // MIs[0] __unary_undef_to_undef_match_0.x
7054 /* 5963 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7055 /* 5967 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7056 /* 5971 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7057 /* 5973 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[2]]
7058 /* 5973 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
7059 /* 5976 */ // Label 297: @5976
7060 /* 5976 */ GIM_Try, /*On fail goto*//*Label 298*/ GIMT_Encode4(5987), // Rule ID 143 //
7061 /* 5981 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled),
7062 /* 5984 */ // MIs[0] dst
7063 /* 5984 */ // No operand predicates
7064 /* 5984 */ // MIs[0] src
7065 /* 5984 */ // No operand predicates
7066 /* 5984 */ // Combiner Rule #97: anyext_trunc_fold
7067 /* 5984 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
7068 /* 5987 */ // Label 298: @5987
7069 /* 5987 */ GIM_Try, /*On fail goto*//*Label 299*/ GIMT_Encode4(5998), // Rule ID 306 //
7070 /* 5992 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
7071 /* 5995 */ // MIs[0] dst
7072 /* 5995 */ // No operand predicates
7073 /* 5995 */ // MIs[0] d.src
7074 /* 5995 */ // No operand predicates
7075 /* 5995 */ // Combiner Rule #197: constant_fold_cast_op @ [d[2]]
7076 /* 5995 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
7077 /* 5998 */ // Label 299: @5998
7078 /* 5998 */ GIM_Reject,
7079 /* 5999 */ // Label 29: @5999
7080 /* 5999 */ GIM_Try, /*On fail goto*//*Label 300*/ GIMT_Encode4(6020), // Rule ID 65 //
7081 /* 6004 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule61Enabled),
7082 /* 6007 */ // MIs[0] root
7083 /* 6007 */ // No operand predicates
7084 /* 6007 */ // MIs[0] select
7085 /* 6007 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7086 /* 6011 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
7087 /* 6015 */ // MIs[1] cond
7088 /* 6015 */ // No operand predicates
7089 /* 6015 */ // MIs[1] true
7090 /* 6015 */ // No operand predicates
7091 /* 6015 */ // MIs[1] false
7092 /* 6015 */ // No operand predicates
7093 /* 6015 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7094 /* 6017 */ // Combiner Rule #61: select_of_truncate
7095 /* 6017 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
7096 /* 6020 */ // Label 300: @6020
7097 /* 6020 */ GIM_Try, /*On fail goto*//*Label 301*/ GIMT_Encode4(6049), // Rule ID 67 //
7098 /* 6025 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled),
7099 /* 6028 */ // MIs[0] root
7100 /* 6028 */ // No operand predicates
7101 /* 6028 */ // MIs[0] binop
7102 /* 6028 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7103 /* 6032 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
7104 /* 6036 */ // MIs[1] x
7105 /* 6036 */ // No operand predicates
7106 /* 6036 */ // MIs[1] const
7107 /* 6036 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7108 /* 6040 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7109 /* 6044 */ // MIs[2] imm
7110 /* 6044 */ // No operand predicates
7111 /* 6044 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7112 /* 6046 */ // Combiner Rule #63: narrow_binop_add
7113 /* 6046 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
7114 /* 6049 */ // Label 301: @6049
7115 /* 6049 */ GIM_Try, /*On fail goto*//*Label 302*/ GIMT_Encode4(6078), // Rule ID 70 //
7116 /* 6054 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule66Enabled),
7117 /* 6057 */ // MIs[0] root
7118 /* 6057 */ // No operand predicates
7119 /* 6057 */ // MIs[0] binop
7120 /* 6057 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7121 /* 6061 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
7122 /* 6065 */ // MIs[1] x
7123 /* 6065 */ // No operand predicates
7124 /* 6065 */ // MIs[1] const
7125 /* 6065 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7126 /* 6069 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7127 /* 6073 */ // MIs[2] imm
7128 /* 6073 */ // No operand predicates
7129 /* 6073 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7130 /* 6075 */ // Combiner Rule #66: narrow_binop_and
7131 /* 6075 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
7132 /* 6078 */ // Label 302: @6078
7133 /* 6078 */ GIM_Try, /*On fail goto*//*Label 303*/ GIMT_Encode4(6107), // Rule ID 69 //
7134 /* 6083 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
7135 /* 6086 */ // MIs[0] root
7136 /* 6086 */ // No operand predicates
7137 /* 6086 */ // MIs[0] binop
7138 /* 6086 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7139 /* 6090 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
7140 /* 6094 */ // MIs[1] x
7141 /* 6094 */ // No operand predicates
7142 /* 6094 */ // MIs[1] const
7143 /* 6094 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7144 /* 6098 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7145 /* 6102 */ // MIs[2] imm
7146 /* 6102 */ // No operand predicates
7147 /* 6102 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7148 /* 6104 */ // Combiner Rule #65: narrow_binop_mul
7149 /* 6104 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
7150 /* 6107 */ // Label 303: @6107
7151 /* 6107 */ GIM_Try, /*On fail goto*//*Label 304*/ GIMT_Encode4(6136), // Rule ID 71 //
7152 /* 6112 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule67Enabled),
7153 /* 6115 */ // MIs[0] root
7154 /* 6115 */ // No operand predicates
7155 /* 6115 */ // MIs[0] binop
7156 /* 6115 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7157 /* 6119 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
7158 /* 6123 */ // MIs[1] x
7159 /* 6123 */ // No operand predicates
7160 /* 6123 */ // MIs[1] const
7161 /* 6123 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7162 /* 6127 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7163 /* 6131 */ // MIs[2] imm
7164 /* 6131 */ // No operand predicates
7165 /* 6131 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7166 /* 6133 */ // Combiner Rule #67: narrow_binop_or
7167 /* 6133 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
7168 /* 6136 */ // Label 304: @6136
7169 /* 6136 */ GIM_Try, /*On fail goto*//*Label 305*/ GIMT_Encode4(6165), // Rule ID 68 //
7170 /* 6141 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
7171 /* 6144 */ // MIs[0] root
7172 /* 6144 */ // No operand predicates
7173 /* 6144 */ // MIs[0] binop
7174 /* 6144 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7175 /* 6148 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
7176 /* 6152 */ // MIs[1] x
7177 /* 6152 */ // No operand predicates
7178 /* 6152 */ // MIs[1] const
7179 /* 6152 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7180 /* 6156 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7181 /* 6160 */ // MIs[2] imm
7182 /* 6160 */ // No operand predicates
7183 /* 6160 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7184 /* 6162 */ // Combiner Rule #64: narrow_binop_sub
7185 /* 6162 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
7186 /* 6165 */ // Label 305: @6165
7187 /* 6165 */ GIM_Try, /*On fail goto*//*Label 306*/ GIMT_Encode4(6197), // Rule ID 431 //
7188 /* 6170 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule260Enabled),
7189 /* 6173 */ // MIs[0] dst
7190 /* 6173 */ // No operand predicates
7191 /* 6173 */ // MIs[0] min
7192 /* 6173 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7193 /* 6177 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMIN),
7194 /* 6181 */ // MIs[1] x
7195 /* 6181 */ // No operand predicates
7196 /* 6181 */ // MIs[1] y
7197 /* 6181 */ // No operand predicates
7198 /* 6181 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner23),
7199 /* 6185 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7200 /* 6187 */ // Combiner Rule #260: trunc_usatu
7201 /* 6187 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_TRUNC_USAT_U),
7202 /* 6190 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7203 /* 6192 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7204 /* 6196 */ GIR_EraseRootFromParent_Done,
7205 /* 6197 */ // Label 306: @6197
7206 /* 6197 */ GIM_Try, /*On fail goto*//*Label 307*/ GIMT_Encode4(6226), // Rule ID 72 //
7207 /* 6202 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
7208 /* 6205 */ // MIs[0] root
7209 /* 6205 */ // No operand predicates
7210 /* 6205 */ // MIs[0] binop
7211 /* 6205 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7212 /* 6209 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
7213 /* 6213 */ // MIs[1] x
7214 /* 6213 */ // No operand predicates
7215 /* 6213 */ // MIs[1] const
7216 /* 6213 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7217 /* 6217 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7218 /* 6221 */ // MIs[2] imm
7219 /* 6221 */ // No operand predicates
7220 /* 6221 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7221 /* 6223 */ // Combiner Rule #68: narrow_binop_xor
7222 /* 6223 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
7223 /* 6226 */ // Label 307: @6226
7224 /* 6226 */ GIM_Try, /*On fail goto*//*Label 308*/ GIMT_Encode4(6247), // Rule ID 54 //
7225 /* 6231 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
7226 /* 6234 */ // MIs[0] root
7227 /* 6234 */ // No operand predicates
7228 /* 6234 */ // MIs[0] ext
7229 /* 6234 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7230 /* 6238 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7231 /* 6242 */ // MIs[1] src
7232 /* 6242 */ // No operand predicates
7233 /* 6242 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7234 /* 6244 */ // Combiner Rule #50: truncate_of_anyext
7235 /* 6244 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
7236 /* 6247 */ // Label 308: @6247
7237 /* 6247 */ GIM_Try, /*On fail goto*//*Label 309*/ GIMT_Encode4(6271), // Rule ID 66 //
7238 /* 6252 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled),
7239 /* 6255 */ // MIs[0] root
7240 /* 6255 */ // No operand predicates
7241 /* 6255 */ // MIs[0] bv
7242 /* 6255 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7243 /* 6259 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
7244 /* 6263 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
7245 /* 6266 */ // MIs[1] unused
7246 /* 6266 */ // No operand predicates
7247 /* 6266 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7248 /* 6268 */ // Combiner Rule #62: buildvector_of_truncate
7249 /* 6268 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
7250 /* 6271 */ // Label 309: @6271
7251 /* 6271 */ GIM_Try, /*On fail goto*//*Label 310*/ GIMT_Encode4(6292), // Rule ID 53 //
7252 /* 6276 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
7253 /* 6279 */ // MIs[0] root
7254 /* 6279 */ // No operand predicates
7255 /* 6279 */ // MIs[0] ext
7256 /* 6279 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7257 /* 6283 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
7258 /* 6287 */ // MIs[1] src
7259 /* 6287 */ // No operand predicates
7260 /* 6287 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7261 /* 6289 */ // Combiner Rule #49: truncate_of_sext
7262 /* 6289 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
7263 /* 6292 */ // Label 310: @6292
7264 /* 6292 */ GIM_Try, /*On fail goto*//*Label 311*/ GIMT_Encode4(6313), // Rule ID 52 //
7265 /* 6297 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
7266 /* 6300 */ // MIs[0] root
7267 /* 6300 */ // No operand predicates
7268 /* 6300 */ // MIs[0] ext
7269 /* 6300 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7270 /* 6304 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
7271 /* 6308 */ // MIs[1] src
7272 /* 6308 */ // No operand predicates
7273 /* 6308 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7274 /* 6310 */ // Combiner Rule #48: truncate_of_zext
7275 /* 6310 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
7276 /* 6313 */ // Label 311: @6313
7277 /* 6313 */ GIM_Try, /*On fail goto*//*Label 312*/ GIMT_Encode4(6334), // Rule ID 97 //
7278 /* 6318 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
7279 /* 6321 */ // MIs[0] dst
7280 /* 6321 */ // No operand predicates
7281 /* 6321 */ // MIs[0] __unary_undef_to_undef_match_0.x
7282 /* 6321 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7283 /* 6325 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7284 /* 6329 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7285 /* 6331 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[0]]
7286 /* 6331 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
7287 /* 6334 */ // Label 312: @6334
7288 /* 6334 */ GIM_Try, /*On fail goto*//*Label 313*/ GIMT_Encode4(6355), // Rule ID 73 //
7289 /* 6339 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled),
7290 /* 6342 */ // MIs[0] root
7291 /* 6342 */ // No operand predicates
7292 /* 6342 */ // MIs[0] int
7293 /* 6342 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7294 /* 6346 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7295 /* 6350 */ // MIs[1] imm
7296 /* 6350 */ // No operand predicates
7297 /* 6350 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7298 /* 6352 */ // Combiner Rule #69: integer_of_truncate
7299 /* 6352 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
7300 /* 6355 */ // Label 313: @6355
7301 /* 6355 */ GIM_Try, /*On fail goto*//*Label 314*/ GIMT_Encode4(6366), // Rule ID 151 //
7302 /* 6360 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
7303 /* 6363 */ // MIs[0] dst
7304 /* 6363 */ // No operand predicates
7305 /* 6363 */ // MIs[0] src
7306 /* 6363 */ // No operand predicates
7307 /* 6363 */ // Combiner Rule #103: trunc_buildvector_fold
7308 /* 6363 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner42),
7309 /* 6366 */ // Label 314: @6366
7310 /* 6366 */ GIM_Try, /*On fail goto*//*Label 315*/ GIMT_Encode4(6377), // Rule ID 152 //
7311 /* 6371 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
7312 /* 6374 */ // MIs[0] dst
7313 /* 6374 */ // No operand predicates
7314 /* 6374 */ // MIs[0] src
7315 /* 6374 */ // No operand predicates
7316 /* 6374 */ // Combiner Rule #104: trunc_lshr_buildvector_fold
7317 /* 6374 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
7318 /* 6377 */ // Label 315: @6377
7319 /* 6377 */ GIM_Try, /*On fail goto*//*Label 316*/ GIMT_Encode4(6388), // Rule ID 201 //
7320 /* 6382 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
7321 /* 6385 */ // MIs[0] dst
7322 /* 6385 */ // No operand predicates
7323 /* 6385 */ // MIs[0] src
7324 /* 6385 */ // No operand predicates
7325 /* 6385 */ // Combiner Rule #148: trunc_shift
7326 /* 6385 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
7327 /* 6388 */ // Label 316: @6388
7328 /* 6388 */ GIM_Try, /*On fail goto*//*Label 317*/ GIMT_Encode4(6399), // Rule ID 429 //
7329 /* 6393 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule258Enabled),
7330 /* 6396 */ // MIs[0] dst
7331 /* 6396 */ // No operand predicates
7332 /* 6396 */ // MIs[0] src
7333 /* 6396 */ // No operand predicates
7334 /* 6396 */ // Combiner Rule #258: trunc_ssats
7335 /* 6396 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner143),
7336 /* 6399 */ // Label 317: @6399
7337 /* 6399 */ GIM_Try, /*On fail goto*//*Label 318*/ GIMT_Encode4(6410), // Rule ID 430 //
7338 /* 6404 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule259Enabled),
7339 /* 6407 */ // MIs[0] dst
7340 /* 6407 */ // No operand predicates
7341 /* 6407 */ // MIs[0] src
7342 /* 6407 */ // No operand predicates
7343 /* 6407 */ // Combiner Rule #259: trunc_ssatu
7344 /* 6407 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner144),
7345 /* 6410 */ // Label 318: @6410
7346 /* 6410 */ GIM_Reject,
7347 /* 6411 */ // Label 30: @6411
7348 /* 6411 */ GIM_Try, /*On fail goto*//*Label 319*/ GIMT_Encode4(6443), // Rule ID 432 //
7349 /* 6416 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule261Enabled),
7350 /* 6419 */ // MIs[0] dst
7351 /* 6419 */ // No operand predicates
7352 /* 6419 */ // MIs[0] src
7353 /* 6419 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7354 /* 6423 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPTOUI),
7355 /* 6427 */ // MIs[1] x
7356 /* 6427 */ // No operand predicates
7357 /* 6427 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner24),
7358 /* 6431 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7359 /* 6433 */ // Combiner Rule #261: truncusatu_to_fptouisat
7360 /* 6433 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FPTOUI_SAT),
7361 /* 6436 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7362 /* 6438 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7363 /* 6442 */ GIR_EraseRootFromParent_Done,
7364 /* 6443 */ // Label 319: @6443
7365 /* 6443 */ GIM_Reject,
7366 /* 6444 */ // Label 31: @6444
7367 /* 6444 */ GIM_Try, /*On fail goto*//*Label 320*/ GIMT_Encode4(6465), // Rule ID 58 //
7368 /* 6449 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
7369 /* 6452 */ // MIs[0] root
7370 /* 6452 */ // No operand predicates
7371 /* 6452 */ // MIs[0] second
7372 /* 6452 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7373 /* 6456 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7374 /* 6460 */ // MIs[1] src
7375 /* 6460 */ // No operand predicates
7376 /* 6460 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7377 /* 6462 */ // Combiner Rule #54: sext_of_anyext
7378 /* 6462 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7379 /* 6465 */ // Label 320: @6465
7380 /* 6465 */ GIM_Try, /*On fail goto*//*Label 321*/ GIMT_Encode4(6486), // Rule ID 57 //
7381 /* 6470 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
7382 /* 6473 */ // MIs[0] root
7383 /* 6473 */ // No operand predicates
7384 /* 6473 */ // MIs[0] second
7385 /* 6473 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7386 /* 6477 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
7387 /* 6481 */ // MIs[1] src
7388 /* 6481 */ // No operand predicates
7389 /* 6481 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7390 /* 6483 */ // Combiner Rule #53: sext_of_sext
7391 /* 6483 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7392 /* 6486 */ // Label 321: @6486
7393 /* 6486 */ GIM_Try, /*On fail goto*//*Label 322*/ GIMT_Encode4(6507), // Rule ID 408 //
7394 /* 6491 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule239Enabled),
7395 /* 6494 */ // MIs[0] root
7396 /* 6494 */ // No operand predicates
7397 /* 6494 */ // MIs[0] src
7398 /* 6494 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7399 /* 6498 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
7400 /* 6502 */ // MIs[1] x
7401 /* 6502 */ // No operand predicates
7402 /* 6502 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7403 /* 6504 */ // Combiner Rule #239: sext_trunc
7404 /* 6504 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner124),
7405 /* 6507 */ // Label 322: @6507
7406 /* 6507 */ GIM_Try, /*On fail goto*//*Label 323*/ GIMT_Encode4(6518), // Rule ID 305 //
7407 /* 6512 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
7408 /* 6515 */ // MIs[0] dst
7409 /* 6515 */ // No operand predicates
7410 /* 6515 */ // MIs[0] d.src
7411 /* 6515 */ // No operand predicates
7412 /* 6515 */ // Combiner Rule #197: constant_fold_cast_op @ [d[1]]
7413 /* 6515 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
7414 /* 6518 */ // Label 323: @6518
7415 /* 6518 */ GIM_Reject,
7416 /* 6519 */ // Label 32: @6519
7417 /* 6519 */ GIM_Try, /*On fail goto*//*Label 324*/ GIMT_Encode4(6540), // Rule ID 62 //
7418 /* 6524 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
7419 /* 6527 */ // MIs[0] dst
7420 /* 6527 */ // No operand predicates
7421 /* 6527 */ // MIs[0] x
7422 /* 6527 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7423 /* 6531 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
7424 /* 6535 */ // MIs[1] src
7425 /* 6535 */ // No operand predicates
7426 /* 6535 */ // MIs[1] a
7427 /* 6535 */ // No operand predicates
7428 /* 6535 */ // MIs[0] b
7429 /* 6535 */ // No operand predicates
7430 /* 6535 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7431 /* 6537 */ // Combiner Rule #58: sext_inreg_of_sext_inreg
7432 /* 6537 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
7433 /* 6540 */ // Label 324: @6540
7434 /* 6540 */ GIM_Try, /*On fail goto*//*Label 325*/ GIMT_Encode4(6580), // Rule ID 195 //
7435 /* 6545 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule142Enabled),
7436 /* 6548 */ // MIs[0] dst
7437 /* 6548 */ // No operand predicates
7438 /* 6548 */ // MIs[0] tmp4
7439 /* 6548 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7440 /* 6552 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7441 /* 6556 */ // MIs[1] tmp2
7442 /* 6556 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7443 /* 6560 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
7444 /* 6564 */ GIM_CheckNumOperands, /*MI*/2, /*Expected*/3,
7445 /* 6567 */ // MIs[2] tmp3
7446 /* 6567 */ // No operand predicates
7447 /* 6567 */ // MIs[2] tmp1
7448 /* 6567 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
7449 /* 6571 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7450 /* 6575 */ // MIs[3] src
7451 /* 6575 */ // No operand predicates
7452 /* 6575 */ // MIs[0] amt
7453 /* 6575 */ // No operand predicates
7454 /* 6575 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
7455 /* 6577 */ // Combiner Rule #142: redundant_aext_unmerge_sext_inreg
7456 /* 6577 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
7457 /* 6580 */ // Label 325: @6580
7458 /* 6580 */ GIM_Try, /*On fail goto*//*Label 326*/ GIMT_Encode4(6612), // Rule ID 193 //
7459 /* 6585 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule140Enabled),
7460 /* 6588 */ // MIs[0] dst
7461 /* 6588 */ // No operand predicates
7462 /* 6588 */ // MIs[0] tmp
7463 /* 6588 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7464 /* 6592 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7465 /* 6596 */ // MIs[1] src
7466 /* 6596 */ // No operand predicates
7467 /* 6596 */ // MIs[0] amt
7468 /* 6596 */ // No operand predicates
7469 /* 6596 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner18),
7470 /* 6600 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7471 /* 6602 */ // Combiner Rule #140: redundant_aext_sext_inreg
7472 /* 6602 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
7473 /* 6605 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7474 /* 6607 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
7475 /* 6611 */ GIR_EraseRootFromParent_Done,
7476 /* 6612 */ // Label 326: @6612
7477 /* 6612 */ GIM_Try, /*On fail goto*//*Label 327*/ GIMT_Encode4(6652), // Rule ID 194 //
7478 /* 6617 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule141Enabled),
7479 /* 6620 */ // MIs[0] dst
7480 /* 6620 */ // No operand predicates
7481 /* 6620 */ // MIs[0] tmp4
7482 /* 6620 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7483 /* 6624 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
7484 /* 6628 */ // MIs[1] tmp2
7485 /* 6628 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7486 /* 6632 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
7487 /* 6636 */ GIM_CheckNumOperands, /*MI*/2, /*Expected*/3,
7488 /* 6639 */ // MIs[2] tmp3
7489 /* 6639 */ // No operand predicates
7490 /* 6639 */ // MIs[2] tmp1
7491 /* 6639 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
7492 /* 6643 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
7493 /* 6647 */ // MIs[3] src
7494 /* 6647 */ // No operand predicates
7495 /* 6647 */ // MIs[0] amt
7496 /* 6647 */ // No operand predicates
7497 /* 6647 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
7498 /* 6649 */ // Combiner Rule #141: redundant_zext_unmerge_sext_inreg
7499 /* 6649 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
7500 /* 6652 */ // Label 327: @6652
7501 /* 6652 */ GIM_Try, /*On fail goto*//*Label 328*/ GIMT_Encode4(6684), // Rule ID 192 //
7502 /* 6657 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule139Enabled),
7503 /* 6660 */ // MIs[0] dst
7504 /* 6660 */ // No operand predicates
7505 /* 6660 */ // MIs[0] tmp
7506 /* 6660 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7507 /* 6664 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
7508 /* 6668 */ // MIs[1] src
7509 /* 6668 */ // No operand predicates
7510 /* 6668 */ // MIs[0] amt
7511 /* 6668 */ // No operand predicates
7512 /* 6668 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner18),
7513 /* 6672 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7514 /* 6674 */ // Combiner Rule #139: redundant_zext_sext_inreg
7515 /* 6674 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
7516 /* 6677 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7517 /* 6679 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
7518 /* 6683 */ GIR_EraseRootFromParent_Done,
7519 /* 6684 */ // Label 328: @6684
7520 /* 6684 */ GIM_Try, /*On fail goto*//*Label 329*/ GIMT_Encode4(6707), // Rule ID 191 //
7521 /* 6689 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule138Enabled),
7522 /* 6692 */ // MIs[0] dst
7523 /* 6692 */ // No operand predicates
7524 /* 6692 */ // MIs[0] src
7525 /* 6692 */ // No operand predicates
7526 /* 6692 */ // MIs[0] sz
7527 /* 6692 */ // No operand predicates
7528 /* 6692 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner17),
7529 /* 6696 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7530 /* 6701 */ // Combiner Rule #138: redundant_sext_inreg
7531 /* 6701 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7532 /* 6706 */ GIR_EraseRootFromParent_Done,
7533 /* 6707 */ // Label 329: @6707
7534 /* 6707 */ GIM_Try, /*On fail goto*//*Label 330*/ GIMT_Encode4(6718), // Rule ID 180 //
7535 /* 6712 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule127Enabled),
7536 /* 6715 */ // MIs[0] dst
7537 /* 6715 */ // No operand predicates
7538 /* 6715 */ // MIs[0] src
7539 /* 6715 */ // No operand predicates
7540 /* 6715 */ // MIs[0] sz
7541 /* 6715 */ // No operand predicates
7542 /* 6715 */ // Combiner Rule #127: sext_inreg_of_load
7543 /* 6715 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner57),
7544 /* 6718 */ // Label 330: @6718
7545 /* 6718 */ GIM_Try, /*On fail goto*//*Label 331*/ GIMT_Encode4(6729), // Rule ID 200 //
7546 /* 6723 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
7547 /* 6726 */ // MIs[0] dst
7548 /* 6726 */ // No operand predicates
7549 /* 6726 */ // MIs[0] src
7550 /* 6726 */ // No operand predicates
7551 /* 6726 */ // MIs[0] imm
7552 /* 6726 */ // No operand predicates
7553 /* 6726 */ // Combiner Rule #147: sext_inreg_to_zext_inreg
7554 /* 6726 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner68),
7555 /* 6729 */ // Label 331: @6729
7556 /* 6729 */ GIM_Try, /*On fail goto*//*Label 332*/ GIMT_Encode4(6740), // Rule ID 266 //
7557 /* 6734 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
7558 /* 6737 */ // MIs[0] dst
7559 /* 6737 */ // No operand predicates
7560 /* 6737 */ // MIs[0] src
7561 /* 6737 */ // No operand predicates
7562 /* 6737 */ // MIs[0] sz
7563 /* 6737 */ // No operand predicates
7564 /* 6737 */ // Combiner Rule #190: bitfield_extract_from_sext_inreg
7565 /* 6737 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
7566 /* 6740 */ // Label 332: @6740
7567 /* 6740 */ GIM_Reject,
7568 /* 6741 */ // Label 33: @6741
7569 /* 6741 */ GIM_Try, /*On fail goto*//*Label 333*/ GIMT_Encode4(6762), // Rule ID 63 //
7570 /* 6746 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled),
7571 /* 6749 */ // MIs[0] root
7572 /* 6749 */ // No operand predicates
7573 /* 6749 */ // MIs[0] select
7574 /* 6749 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7575 /* 6753 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
7576 /* 6757 */ // MIs[1] cond
7577 /* 6757 */ // No operand predicates
7578 /* 6757 */ // MIs[1] true
7579 /* 6757 */ // No operand predicates
7580 /* 6757 */ // MIs[1] false
7581 /* 6757 */ // No operand predicates
7582 /* 6757 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7583 /* 6759 */ // Combiner Rule #59: select_of_zext
7584 /* 6759 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
7585 /* 6762 */ // Label 333: @6762
7586 /* 6762 */ GIM_Try, /*On fail goto*//*Label 334*/ GIMT_Encode4(6783), // Rule ID 56 //
7587 /* 6767 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
7588 /* 6770 */ // MIs[0] root
7589 /* 6770 */ // No operand predicates
7590 /* 6770 */ // MIs[0] second
7591 /* 6770 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7592 /* 6774 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7593 /* 6778 */ // MIs[1] src
7594 /* 6778 */ // No operand predicates
7595 /* 6778 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7596 /* 6780 */ // Combiner Rule #52: zext_of_anyext
7597 /* 6780 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7598 /* 6783 */ // Label 334: @6783
7599 /* 6783 */ GIM_Try, /*On fail goto*//*Label 335*/ GIMT_Encode4(6810), // Rule ID 409 //
7600 /* 6788 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule240Enabled),
7601 /* 6791 */ // MIs[0] root
7602 /* 6791 */ // No operand predicates
7603 /* 6791 */ // MIs[0] src
7604 /* 6791 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7605 /* 6795 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
7606 /* 6799 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::NoUWrap),
7607 /* 6805 */ // MIs[1] x
7608 /* 6805 */ // No operand predicates
7609 /* 6805 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7610 /* 6807 */ // Combiner Rule #240: zext_trunc
7611 /* 6807 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner125),
7612 /* 6810 */ // Label 335: @6810
7613 /* 6810 */ GIM_Try, /*On fail goto*//*Label 336*/ GIMT_Encode4(6831), // Rule ID 55 //
7614 /* 6815 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
7615 /* 6818 */ // MIs[0] root
7616 /* 6818 */ // No operand predicates
7617 /* 6818 */ // MIs[0] second
7618 /* 6818 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7619 /* 6822 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
7620 /* 6826 */ // MIs[1] src
7621 /* 6826 */ // No operand predicates
7622 /* 6826 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7623 /* 6828 */ // Combiner Rule #51: zext_of_zext
7624 /* 6828 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7625 /* 6831 */ // Label 336: @6831
7626 /* 6831 */ GIM_Try, /*On fail goto*//*Label 337*/ GIMT_Encode4(6848), // Rule ID 410 //
7627 /* 6836 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule241Enabled),
7628 /* 6839 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NonNeg),
7629 /* 6845 */ // MIs[0] root
7630 /* 6845 */ // No operand predicates
7631 /* 6845 */ // MIs[0] x
7632 /* 6845 */ // No operand predicates
7633 /* 6845 */ // Combiner Rule #241: nneg_zext
7634 /* 6845 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner126),
7635 /* 6848 */ // Label 337: @6848
7636 /* 6848 */ GIM_Try, /*On fail goto*//*Label 338*/ GIMT_Encode4(6859), // Rule ID 199 //
7637 /* 6853 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
7638 /* 6856 */ // MIs[0] dst
7639 /* 6856 */ // No operand predicates
7640 /* 6856 */ // MIs[0] src
7641 /* 6856 */ // No operand predicates
7642 /* 6856 */ // Combiner Rule #146: zext_trunc_fold
7643 /* 6856 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner67),
7644 /* 6859 */ // Label 338: @6859
7645 /* 6859 */ GIM_Try, /*On fail goto*//*Label 339*/ GIMT_Encode4(6870), // Rule ID 304 //
7646 /* 6864 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
7647 /* 6867 */ // MIs[0] dst
7648 /* 6867 */ // No operand predicates
7649 /* 6867 */ // MIs[0] d.src
7650 /* 6867 */ // No operand predicates
7651 /* 6867 */ // Combiner Rule #197: constant_fold_cast_op @ [d[0]]
7652 /* 6867 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
7653 /* 6870 */ // Label 339: @6870
7654 /* 6870 */ GIM_Reject,
7655 /* 6871 */ // Label 34: @6871
7656 /* 6871 */ GIM_Try, /*On fail goto*//*Label 340*/ GIMT_Encode4(6882), // Rule ID 236 //
7657 /* 6876 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
7658 /* 6879 */ // Combiner Rule #175: shift_immed_chain; wip_match_opcode 'G_SHL'
7659 /* 6879 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
7660 /* 6882 */ // Label 340: @6882
7661 /* 6882 */ GIM_Try, /*On fail goto*//*Label 341*/ GIMT_Encode4(6893), // Rule ID 241 //
7662 /* 6887 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
7663 /* 6890 */ // Combiner Rule #176: shift_of_shifted_logic_chain; wip_match_opcode 'G_SHL'
7664 /* 6890 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
7665 /* 6893 */ // Label 341: @6893
7666 /* 6893 */ GIM_Try, /*On fail goto*//*Label 342*/ GIMT_Encode4(6904), // Rule ID 279 //
7667 /* 6898 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
7668 /* 6901 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_SHL'
7669 /* 6901 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
7670 /* 6904 */ // Label 342: @6904
7671 /* 6904 */ GIM_Try, /*On fail goto*//*Label 343*/ GIMT_Encode4(6915), // Rule ID 344 //
7672 /* 6909 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
7673 /* 6912 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_SHL'
7674 /* 6912 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7675 /* 6915 */ // Label 343: @6915
7676 /* 6915 */ GIM_Try, /*On fail goto*//*Label 344*/ GIMT_Encode4(6993), // Rule ID 264 //
7677 /* 6920 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
7678 /* 6923 */ // MIs[0] dst
7679 /* 6923 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
7680 /* 6927 */ // MIs[0] binop_dst
7681 /* 6927 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7682 /* 6931 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
7683 /* 6935 */ // MIs[1] x
7684 /* 6935 */ // No operand predicates
7685 /* 6935 */ // MIs[1] c1
7686 /* 6935 */ // No operand predicates
7687 /* 6935 */ // MIs[0] c2
7688 /* 6935 */ // No operand predicates
7689 /* 6935 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner22),
7690 /* 6939 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7691 /* 6941 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
7692 /* 6944 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7693 /* 6947 */ // Combiner Rule #188: commute_shift_add
7694 /* 6947 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
7695 /* 6950 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7696 /* 6955 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7697 /* 6959 */ GIR_RootToRootCopy, /*OpIdx*/2, // c2
7698 /* 6961 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
7699 /* 6965 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7700 /* 6970 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/2, // c1
7701 /* 6974 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // c2
7702 /* 6978 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
7703 /* 6982 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
7704 /* 6986 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
7705 /* 6989 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
7706 /* 6992 */ GIR_EraseRootFromParent_Done,
7707 /* 6993 */ // Label 344: @6993
7708 /* 6993 */ GIM_Try, /*On fail goto*//*Label 345*/ GIMT_Encode4(7071), // Rule ID 265 //
7709 /* 6998 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule189Enabled),
7710 /* 7001 */ // MIs[0] dst
7711 /* 7001 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
7712 /* 7005 */ // MIs[0] binop_dst
7713 /* 7005 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7714 /* 7009 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
7715 /* 7013 */ // MIs[1] x
7716 /* 7013 */ // No operand predicates
7717 /* 7013 */ // MIs[1] c1
7718 /* 7013 */ // No operand predicates
7719 /* 7013 */ // MIs[0] c2
7720 /* 7013 */ // No operand predicates
7721 /* 7013 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner22),
7722 /* 7017 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7723 /* 7019 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
7724 /* 7022 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7725 /* 7025 */ // Combiner Rule #189: commute_shift_or
7726 /* 7025 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
7727 /* 7028 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7728 /* 7033 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7729 /* 7037 */ GIR_RootToRootCopy, /*OpIdx*/2, // c2
7730 /* 7039 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
7731 /* 7043 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7732 /* 7048 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/2, // c1
7733 /* 7052 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // c2
7734 /* 7056 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7735 /* 7060 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
7736 /* 7064 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
7737 /* 7067 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
7738 /* 7070 */ GIR_EraseRootFromParent_Done,
7739 /* 7071 */ // Label 345: @7071
7740 /* 7071 */ GIM_Try, /*On fail goto*//*Label 346*/ GIMT_Encode4(7106), // Rule ID 48 //
7741 /* 7076 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
7742 /* 7079 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
7743 /* 7085 */ // MIs[0] root
7744 /* 7085 */ // No operand predicates
7745 /* 7085 */ // MIs[0] left
7746 /* 7085 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7747 /* 7089 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
7748 /* 7093 */ // MIs[1] imm
7749 /* 7093 */ // No operand predicates
7750 /* 7093 */ // MIs[0] x
7751 /* 7093 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7752 /* 7097 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7753 /* 7101 */ // MIs[2] imm1
7754 /* 7101 */ // No operand predicates
7755 /* 7101 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7756 /* 7103 */ // Combiner Rule #44: shl_of_vscale
7757 /* 7103 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
7758 /* 7106 */ // Label 346: @7106
7759 /* 7106 */ GIM_Try, /*On fail goto*//*Label 347*/ GIMT_Encode4(7127), // Rule ID 90 //
7760 /* 7111 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
7761 /* 7114 */ // MIs[0] dst
7762 /* 7114 */ // No operand predicates
7763 /* 7114 */ // MIs[0] __binop_left_undef_to_zero_match_0.x
7764 /* 7114 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7765 /* 7118 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7766 /* 7122 */ // MIs[0] __binop_left_undef_to_zero_match_0.y
7767 /* 7122 */ // No operand predicates
7768 /* 7122 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7769 /* 7124 */ // Combiner Rule #79: binop_left_undef_to_zero @ [__binop_left_undef_to_zero_match_0[0]]
7770 /* 7124 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
7771 /* 7127 */ // Label 347: @7127
7772 /* 7127 */ GIM_Try, /*On fail goto*//*Label 348*/ GIMT_Encode4(7167), // Rule ID 132 //
7773 /* 7132 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
7774 /* 7135 */ // MIs[0] dst
7775 /* 7135 */ // No operand predicates
7776 /* 7135 */ // MIs[0] zero
7777 /* 7135 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7778 /* 7139 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7779 /* 7143 */ // MIs[1] Operand 1
7780 /* 7143 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
7781 /* 7154 */ // MIs[0] rhs
7782 /* 7154 */ // No operand predicates
7783 /* 7154 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7784 /* 7159 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7785 /* 7161 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[0]]
7786 /* 7161 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7787 /* 7166 */ GIR_EraseRootFromParent_Done,
7788 /* 7167 */ // Label 348: @7167
7789 /* 7167 */ GIM_Try, /*On fail goto*//*Label 349*/ GIMT_Encode4(7188), // Rule ID 93 //
7790 /* 7172 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
7791 /* 7175 */ // MIs[0] dst
7792 /* 7175 */ // No operand predicates
7793 /* 7175 */ // MIs[0] __binop_right_undef_to_undef_match_0.x
7794 /* 7175 */ // No operand predicates
7795 /* 7175 */ // MIs[0] __binop_right_undef_to_undef_match_0.y
7796 /* 7175 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7797 /* 7179 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7798 /* 7183 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7799 /* 7185 */ // Combiner Rule #80: binop_right_undef_to_undef @ [__binop_right_undef_to_undef_match_0[0]]
7800 /* 7185 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
7801 /* 7188 */ // Label 349: @7188
7802 /* 7188 */ GIM_Try, /*On fail goto*//*Label 350*/ GIMT_Encode4(7211), // Rule ID 122 //
7803 /* 7193 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
7804 /* 7196 */ // MIs[0] dst
7805 /* 7196 */ // No operand predicates
7806 /* 7196 */ // MIs[0] lhs
7807 /* 7196 */ // No operand predicates
7808 /* 7196 */ // MIs[0] Operand 2
7809 /* 7196 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7810 /* 7200 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7811 /* 7205 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[4]]
7812 /* 7205 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7813 /* 7210 */ GIR_EraseRootFromParent_Done,
7814 /* 7211 */ // Label 350: @7211
7815 /* 7211 */ GIM_Try, /*On fail goto*//*Label 351*/ GIMT_Encode4(7222), // Rule ID 165 //
7816 /* 7216 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
7817 /* 7219 */ // MIs[0] root
7818 /* 7219 */ // No operand predicates
7819 /* 7219 */ // MIs[0] mi.shifted
7820 /* 7219 */ // No operand predicates
7821 /* 7219 */ // MIs[0] mi.amt
7822 /* 7219 */ // No operand predicates
7823 /* 7219 */ // Combiner Rule #114: shifts_too_big @ [mi[0]]
7824 /* 7219 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
7825 /* 7222 */ // Label 351: @7222
7826 /* 7222 */ GIM_Try, /*On fail goto*//*Label 352*/ GIMT_Encode4(7233), // Rule ID 181 //
7827 /* 7227 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule128Enabled),
7828 /* 7230 */ // MIs[0] dst
7829 /* 7230 */ // No operand predicates
7830 /* 7230 */ // MIs[0] src0
7831 /* 7230 */ // No operand predicates
7832 /* 7230 */ // MIs[0] src1
7833 /* 7230 */ // No operand predicates
7834 /* 7230 */ // Combiner Rule #128: reduce_shl_of_extend
7835 /* 7230 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner58),
7836 /* 7233 */ // Label 352: @7233
7837 /* 7233 */ GIM_Reject,
7838 /* 7234 */ // Label 35: @7234
7839 /* 7234 */ GIM_Try, /*On fail goto*//*Label 353*/ GIMT_Encode4(7245), // Rule ID 238 //
7840 /* 7239 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
7841 /* 7242 */ // Combiner Rule #175: shift_immed_chain; wip_match_opcode 'G_LSHR'
7842 /* 7242 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
7843 /* 7245 */ // Label 353: @7245
7844 /* 7245 */ GIM_Try, /*On fail goto*//*Label 354*/ GIMT_Encode4(7256), // Rule ID 243 //
7845 /* 7250 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
7846 /* 7253 */ // Combiner Rule #176: shift_of_shifted_logic_chain; wip_match_opcode 'G_LSHR'
7847 /* 7253 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
7848 /* 7256 */ // Label 354: @7256
7849 /* 7256 */ GIM_Try, /*On fail goto*//*Label 355*/ GIMT_Encode4(7267), // Rule ID 276 //
7850 /* 7261 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
7851 /* 7264 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_LSHR'
7852 /* 7264 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
7853 /* 7267 */ // Label 355: @7267
7854 /* 7267 */ GIM_Try, /*On fail goto*//*Label 356*/ GIMT_Encode4(7278), // Rule ID 342 //
7855 /* 7272 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
7856 /* 7275 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_LSHR'
7857 /* 7275 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7858 /* 7278 */ // Label 356: @7278
7859 /* 7278 */ GIM_Try, /*On fail goto*//*Label 357*/ GIMT_Encode4(7367), // Rule ID 450 //
7860 /* 7283 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule276Enabled),
7861 /* 7286 */ // MIs[0] dst
7862 /* 7286 */ // No operand predicates
7863 /* 7286 */ // MIs[0] sum
7864 /* 7286 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7865 /* 7290 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
7866 /* 7294 */ // MIs[1] inner
7867 /* 7294 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7868 /* 7298 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
7869 /* 7302 */ // MIs[2] ext1
7870 /* 7302 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
7871 /* 7306 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
7872 /* 7310 */ // MIs[3] x
7873 /* 7310 */ GIM_RecordRegType, /*MI*/3, /*Op*/1, /*TempTypeIdx*/255,
7874 /* 7314 */ // MIs[2] ext2
7875 /* 7314 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/4, /*MI*/2, /*OpIdx*/2, // MIs[4]
7876 /* 7318 */ GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_ZEXT),
7877 /* 7322 */ // MIs[4] y
7878 /* 7322 */ // No operand predicates
7879 /* 7322 */ // MIs[1] Operand 2
7880 /* 7322 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
7881 /* 7326 */ // MIs[0] Operand 2
7882 /* 7326 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
7883 /* 7330 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner30),
7884 /* 7334 */ GIM_CheckIsSafeToFold, /*NumInsns*/4,
7885 /* 7336 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7886 /* 7339 */ // Combiner Rule #276: avgceil_u_match
7887 /* 7339 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UAVGCEIL),
7888 /* 7342 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7889 /* 7347 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // x
7890 /* 7351 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // y
7891 /* 7355 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
7892 /* 7359 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
7893 /* 7363 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7894 /* 7366 */ GIR_EraseRootFromParent_Done,
7895 /* 7367 */ // Label 357: @7367
7896 /* 7367 */ GIM_Try, /*On fail goto*//*Label 358*/ GIMT_Encode4(7444), // Rule ID 448 //
7897 /* 7372 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule274Enabled),
7898 /* 7375 */ // MIs[0] dst
7899 /* 7375 */ // No operand predicates
7900 /* 7375 */ // MIs[0] sum
7901 /* 7375 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7902 /* 7379 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
7903 /* 7383 */ // MIs[1] ext1
7904 /* 7383 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7905 /* 7387 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
7906 /* 7391 */ // MIs[2] x
7907 /* 7391 */ GIM_RecordRegType, /*MI*/2, /*Op*/1, /*TempTypeIdx*/255,
7908 /* 7395 */ // MIs[1] ext2
7909 /* 7395 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
7910 /* 7399 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
7911 /* 7403 */ // MIs[3] y
7912 /* 7403 */ // No operand predicates
7913 /* 7403 */ // MIs[0] Operand 2
7914 /* 7403 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
7915 /* 7407 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner28),
7916 /* 7411 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
7917 /* 7413 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7918 /* 7416 */ // Combiner Rule #274: avgfloor_u_match
7919 /* 7416 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UAVGFLOOR),
7920 /* 7419 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7921 /* 7424 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // x
7922 /* 7428 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // y
7923 /* 7432 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
7924 /* 7436 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
7925 /* 7440 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7926 /* 7443 */ GIR_EraseRootFromParent_Done,
7927 /* 7444 */ // Label 358: @7444
7928 /* 7444 */ GIM_Try, /*On fail goto*//*Label 359*/ GIMT_Encode4(7473), // Rule ID 433 //
7929 /* 7449 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule262Enabled),
7930 /* 7452 */ // MIs[0] dst
7931 /* 7452 */ // No operand predicates
7932 /* 7452 */ // MIs[0] d2
7933 /* 7452 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7934 /* 7456 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
7935 /* 7460 */ // MIs[1] d1
7936 /* 7460 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7937 /* 7464 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
7938 /* 7468 */ // MIs[2] x
7939 /* 7468 */ // No operand predicates
7940 /* 7468 */ // MIs[2] y
7941 /* 7468 */ // No operand predicates
7942 /* 7468 */ // MIs[0] z
7943 /* 7468 */ // No operand predicates
7944 /* 7468 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7945 /* 7470 */ // Combiner Rule #262: lshr_of_trunc_of_lshr
7946 /* 7470 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner145),
7947 /* 7473 */ // Label 359: @7473
7948 /* 7473 */ GIM_Try, /*On fail goto*//*Label 360*/ GIMT_Encode4(7513), // Rule ID 133 //
7949 /* 7478 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
7950 /* 7481 */ // MIs[0] dst
7951 /* 7481 */ // No operand predicates
7952 /* 7481 */ // MIs[0] zero
7953 /* 7481 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7954 /* 7485 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7955 /* 7489 */ // MIs[1] Operand 1
7956 /* 7489 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
7957 /* 7500 */ // MIs[0] rhs
7958 /* 7500 */ // No operand predicates
7959 /* 7500 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7960 /* 7505 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7961 /* 7507 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[1]]
7962 /* 7507 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7963 /* 7512 */ GIR_EraseRootFromParent_Done,
7964 /* 7513 */ // Label 360: @7513
7965 /* 7513 */ GIM_Try, /*On fail goto*//*Label 361*/ GIMT_Encode4(7534), // Rule ID 95 //
7966 /* 7518 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
7967 /* 7521 */ // MIs[0] dst
7968 /* 7521 */ // No operand predicates
7969 /* 7521 */ // MIs[0] __binop_right_undef_to_undef_match_0.x
7970 /* 7521 */ // No operand predicates
7971 /* 7521 */ // MIs[0] __binop_right_undef_to_undef_match_0.y
7972 /* 7521 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7973 /* 7525 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7974 /* 7529 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7975 /* 7531 */ // Combiner Rule #80: binop_right_undef_to_undef @ [__binop_right_undef_to_undef_match_0[2]]
7976 /* 7531 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
7977 /* 7534 */ // Label 361: @7534
7978 /* 7534 */ GIM_Try, /*On fail goto*//*Label 362*/ GIMT_Encode4(7557), // Rule ID 124 //
7979 /* 7539 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
7980 /* 7542 */ // MIs[0] dst
7981 /* 7542 */ // No operand predicates
7982 /* 7542 */ // MIs[0] lhs
7983 /* 7542 */ // No operand predicates
7984 /* 7542 */ // MIs[0] Operand 2
7985 /* 7542 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7986 /* 7546 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7987 /* 7551 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[6]]
7988 /* 7551 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7989 /* 7556 */ GIR_EraseRootFromParent_Done,
7990 /* 7557 */ // Label 362: @7557
7991 /* 7557 */ GIM_Try, /*On fail goto*//*Label 363*/ GIMT_Encode4(7568), // Rule ID 167 //
7992 /* 7562 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
7993 /* 7565 */ // MIs[0] root
7994 /* 7565 */ // No operand predicates
7995 /* 7565 */ // MIs[0] mi.shifted
7996 /* 7565 */ // No operand predicates
7997 /* 7565 */ // MIs[0] mi.amt
7998 /* 7565 */ // No operand predicates
7999 /* 7565 */ // Combiner Rule #114: shifts_too_big @ [mi[2]]
8000 /* 7565 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
8001 /* 7568 */ // Label 363: @7568
8002 /* 7568 */ GIM_Try, /*On fail goto*//*Label 364*/ GIMT_Encode4(7579), // Rule ID 269 //
8003 /* 7573 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
8004 /* 7576 */ // MIs[0] dst
8005 /* 7576 */ // No operand predicates
8006 /* 7576 */ // MIs[0] root.src
8007 /* 7576 */ // No operand predicates
8008 /* 7576 */ // MIs[0] root.amt
8009 /* 7576 */ // No operand predicates
8010 /* 7576 */ // Combiner Rule #192: bitfield_extract_from_shr @ [root[1]]
8011 /* 7576 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner90),
8012 /* 7579 */ // Label 364: @7579
8013 /* 7579 */ GIM_Try, /*On fail goto*//*Label 365*/ GIMT_Encode4(7590), // Rule ID 271 //
8014 /* 7584 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
8015 /* 7587 */ // MIs[0] dst
8016 /* 7587 */ // No operand predicates
8017 /* 7587 */ // MIs[0] root.src
8018 /* 7587 */ // No operand predicates
8019 /* 7587 */ // MIs[0] root.amt
8020 /* 7587 */ // No operand predicates
8021 /* 7587 */ // Combiner Rule #193: bitfield_extract_from_shr_and @ [root[1]]
8022 /* 7587 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
8023 /* 7590 */ // Label 365: @7590
8024 /* 7590 */ GIM_Reject,
8025 /* 7591 */ // Label 36: @7591
8026 /* 7591 */ GIM_Try, /*On fail goto*//*Label 366*/ GIMT_Encode4(7602), // Rule ID 237 //
8027 /* 7596 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
8028 /* 7599 */ // Combiner Rule #175: shift_immed_chain; wip_match_opcode 'G_ASHR'
8029 /* 7599 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
8030 /* 7602 */ // Label 366: @7602
8031 /* 7602 */ GIM_Try, /*On fail goto*//*Label 367*/ GIMT_Encode4(7613), // Rule ID 242 //
8032 /* 7607 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
8033 /* 7610 */ // Combiner Rule #176: shift_of_shifted_logic_chain; wip_match_opcode 'G_ASHR'
8034 /* 7610 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
8035 /* 7613 */ // Label 367: @7613
8036 /* 7613 */ GIM_Try, /*On fail goto*//*Label 368*/ GIMT_Encode4(7624), // Rule ID 275 //
8037 /* 7618 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
8038 /* 7621 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_ASHR'
8039 /* 7621 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
8040 /* 7624 */ // Label 368: @7624
8041 /* 7624 */ GIM_Try, /*On fail goto*//*Label 369*/ GIMT_Encode4(7635), // Rule ID 343 //
8042 /* 7629 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
8043 /* 7632 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_ASHR'
8044 /* 7632 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
8045 /* 7635 */ // Label 369: @7635
8046 /* 7635 */ GIM_Try, /*On fail goto*//*Label 370*/ GIMT_Encode4(7724), // Rule ID 451 //
8047 /* 7640 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule277Enabled),
8048 /* 7643 */ // MIs[0] dst
8049 /* 7643 */ // No operand predicates
8050 /* 7643 */ // MIs[0] sum
8051 /* 7643 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8052 /* 7647 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
8053 /* 7651 */ // MIs[1] inner
8054 /* 7651 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8055 /* 7655 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
8056 /* 7659 */ // MIs[2] ext1
8057 /* 7659 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
8058 /* 7663 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_SEXT),
8059 /* 7667 */ // MIs[3] x
8060 /* 7667 */ GIM_RecordRegType, /*MI*/3, /*Op*/1, /*TempTypeIdx*/255,
8061 /* 7671 */ // MIs[2] ext2
8062 /* 7671 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/4, /*MI*/2, /*OpIdx*/2, // MIs[4]
8063 /* 7675 */ GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_SEXT),
8064 /* 7679 */ // MIs[4] y
8065 /* 7679 */ // No operand predicates
8066 /* 7679 */ // MIs[1] Operand 2
8067 /* 7679 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
8068 /* 7683 */ // MIs[0] Operand 2
8069 /* 7683 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
8070 /* 7687 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner31),
8071 /* 7691 */ GIM_CheckIsSafeToFold, /*NumInsns*/4,
8072 /* 7693 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8073 /* 7696 */ // Combiner Rule #277: avgceil_s_match
8074 /* 7696 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SAVGCEIL),
8075 /* 7699 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8076 /* 7704 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // x
8077 /* 7708 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // y
8078 /* 7712 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
8079 /* 7716 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
8080 /* 7720 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
8081 /* 7723 */ GIR_EraseRootFromParent_Done,
8082 /* 7724 */ // Label 370: @7724
8083 /* 7724 */ GIM_Try, /*On fail goto*//*Label 371*/ GIMT_Encode4(7801), // Rule ID 449 //
8084 /* 7729 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule275Enabled),
8085 /* 7732 */ // MIs[0] dst
8086 /* 7732 */ // No operand predicates
8087 /* 7732 */ // MIs[0] sum
8088 /* 7732 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8089 /* 7736 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
8090 /* 7740 */ // MIs[1] ext1
8091 /* 7740 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8092 /* 7744 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
8093 /* 7748 */ // MIs[2] x
8094 /* 7748 */ GIM_RecordRegType, /*MI*/2, /*Op*/1, /*TempTypeIdx*/255,
8095 /* 7752 */ // MIs[1] ext2
8096 /* 7752 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
8097 /* 7756 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_SEXT),
8098 /* 7760 */ // MIs[3] y
8099 /* 7760 */ // No operand predicates
8100 /* 7760 */ // MIs[0] Operand 2
8101 /* 7760 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
8102 /* 7764 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner29),
8103 /* 7768 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
8104 /* 7770 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8105 /* 7773 */ // Combiner Rule #275: avgfloor_s_match
8106 /* 7773 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SAVGFLOOR),
8107 /* 7776 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8108 /* 7781 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // x
8109 /* 7785 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // y
8110 /* 7789 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
8111 /* 7793 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
8112 /* 7797 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
8113 /* 7800 */ GIR_EraseRootFromParent_Done,
8114 /* 7801 */ // Label 371: @7801
8115 /* 7801 */ GIM_Try, /*On fail goto*//*Label 372*/ GIMT_Encode4(7841), // Rule ID 134 //
8116 /* 7806 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
8117 /* 7809 */ // MIs[0] dst
8118 /* 7809 */ // No operand predicates
8119 /* 7809 */ // MIs[0] zero
8120 /* 7809 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8121 /* 7813 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8122 /* 7817 */ // MIs[1] Operand 1
8123 /* 7817 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
8124 /* 7828 */ // MIs[0] rhs
8125 /* 7828 */ // No operand predicates
8126 /* 7828 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8127 /* 7833 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8128 /* 7835 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[2]]
8129 /* 7835 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8130 /* 7840 */ GIR_EraseRootFromParent_Done,
8131 /* 7841 */ // Label 372: @7841
8132 /* 7841 */ GIM_Try, /*On fail goto*//*Label 373*/ GIMT_Encode4(7862), // Rule ID 94 //
8133 /* 7846 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
8134 /* 7849 */ // MIs[0] dst
8135 /* 7849 */ // No operand predicates
8136 /* 7849 */ // MIs[0] __binop_right_undef_to_undef_match_0.x
8137 /* 7849 */ // No operand predicates
8138 /* 7849 */ // MIs[0] __binop_right_undef_to_undef_match_0.y
8139 /* 7849 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8140 /* 7853 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8141 /* 7857 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8142 /* 7859 */ // Combiner Rule #80: binop_right_undef_to_undef @ [__binop_right_undef_to_undef_match_0[1]]
8143 /* 7859 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
8144 /* 7862 */ // Label 373: @7862
8145 /* 7862 */ GIM_Try, /*On fail goto*//*Label 374*/ GIMT_Encode4(7885), // Rule ID 123 //
8146 /* 7867 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
8147 /* 7870 */ // MIs[0] dst
8148 /* 7870 */ // No operand predicates
8149 /* 7870 */ // MIs[0] lhs
8150 /* 7870 */ // No operand predicates
8151 /* 7870 */ // MIs[0] Operand 2
8152 /* 7870 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
8153 /* 7874 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8154 /* 7879 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[5]]
8155 /* 7879 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8156 /* 7884 */ GIR_EraseRootFromParent_Done,
8157 /* 7885 */ // Label 374: @7885
8158 /* 7885 */ GIM_Try, /*On fail goto*//*Label 375*/ GIMT_Encode4(7896), // Rule ID 166 //
8159 /* 7890 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
8160 /* 7893 */ // MIs[0] root
8161 /* 7893 */ // No operand predicates
8162 /* 7893 */ // MIs[0] mi.shifted
8163 /* 7893 */ // No operand predicates
8164 /* 7893 */ // MIs[0] mi.amt
8165 /* 7893 */ // No operand predicates
8166 /* 7893 */ // Combiner Rule #114: shifts_too_big @ [mi[1]]
8167 /* 7893 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
8168 /* 7896 */ // Label 375: @7896
8169 /* 7896 */ GIM_Try, /*On fail goto*//*Label 376*/ GIMT_Encode4(7907), // Rule ID 178 //
8170 /* 7901 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule125Enabled),
8171 /* 7904 */ // MIs[0] dst
8172 /* 7904 */ // No operand predicates
8173 /* 7904 */ // MIs[0] src1
8174 /* 7904 */ // No operand predicates
8175 /* 7904 */ // MIs[0] src2
8176 /* 7904 */ // No operand predicates
8177 /* 7904 */ // Combiner Rule #125: shl_ashr_to_sext_inreg
8178 /* 7904 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
8179 /* 7907 */ // Label 376: @7907
8180 /* 7907 */ GIM_Try, /*On fail goto*//*Label 377*/ GIMT_Encode4(7918), // Rule ID 268 //
8181 /* 7912 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
8182 /* 7915 */ // MIs[0] dst
8183 /* 7915 */ // No operand predicates
8184 /* 7915 */ // MIs[0] root.src
8185 /* 7915 */ // No operand predicates
8186 /* 7915 */ // MIs[0] root.amt
8187 /* 7915 */ // No operand predicates
8188 /* 7915 */ // Combiner Rule #192: bitfield_extract_from_shr @ [root[0]]
8189 /* 7915 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner90),
8190 /* 7918 */ // Label 377: @7918
8191 /* 7918 */ GIM_Try, /*On fail goto*//*Label 378*/ GIMT_Encode4(7929), // Rule ID 270 //
8192 /* 7923 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
8193 /* 7926 */ // MIs[0] dst
8194 /* 7926 */ // No operand predicates
8195 /* 7926 */ // MIs[0] root.src
8196 /* 7926 */ // No operand predicates
8197 /* 7926 */ // MIs[0] root.amt
8198 /* 7926 */ // No operand predicates
8199 /* 7926 */ // Combiner Rule #193: bitfield_extract_from_shr_and @ [root[0]]
8200 /* 7926 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
8201 /* 7929 */ // Label 378: @7929
8202 /* 7929 */ GIM_Reject,
8203 /* 7930 */ // Label 37: @7930
8204 /* 7930 */ GIM_Try, /*On fail goto*//*Label 379*/ GIMT_Encode4(7950), // Rule ID 255 //
8205 /* 7935 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
8206 /* 7938 */ // MIs[0] x
8207 /* 7938 */ // No operand predicates
8208 /* 7938 */ // MIs[0] y
8209 /* 7938 */ // No operand predicates
8210 /* 7938 */ // MIs[0] z
8211 /* 7938 */ // No operand predicates
8212 /* 7938 */ // MIs[0] Operand 3
8213 /* 7938 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
8214 /* 7942 */ // Combiner Rule #182: funnel_shift_left_zero
8215 /* 7942 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8216 /* 7945 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
8217 /* 7947 */ GIR_RootToRootCopy, /*OpIdx*/1, // y
8218 /* 7949 */ GIR_EraseRootFromParent_Done,
8219 /* 7950 */ // Label 379: @7950
8220 /* 7950 */ GIM_Try, /*On fail goto*//*Label 380*/ GIMT_Encode4(7961), // Rule ID 252 //
8221 /* 7955 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
8222 /* 7958 */ // MIs[0] dst
8223 /* 7958 */ // No operand predicates
8224 /* 7958 */ // MIs[0] root.x
8225 /* 7958 */ // No operand predicates
8226 /* 7958 */ // MIs[0] root.y
8227 /* 7958 */ // No operand predicates
8228 /* 7958 */ // MIs[0] root.amt
8229 /* 7958 */ // No operand predicates
8230 /* 7958 */ // Combiner Rule #180: funnel_shift_to_rotate @ [root[0]]
8231 /* 7958 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
8232 /* 7961 */ // Label 380: @7961
8233 /* 7961 */ GIM_Try, /*On fail goto*//*Label 381*/ GIMT_Encode4(7972), // Rule ID 256 //
8234 /* 7966 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
8235 /* 7969 */ // MIs[0] dst
8236 /* 7969 */ // No operand predicates
8237 /* 7969 */ // MIs[0] root.x
8238 /* 7969 */ // No operand predicates
8239 /* 7969 */ // MIs[0] root.y
8240 /* 7969 */ // No operand predicates
8241 /* 7969 */ // MIs[0] root.amt
8242 /* 7969 */ // No operand predicates
8243 /* 7969 */ // Combiner Rule #183: funnel_shift_overshift @ [root[0]]
8244 /* 7969 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
8245 /* 7972 */ // Label 381: @7972
8246 /* 7972 */ GIM_Reject,
8247 /* 7973 */ // Label 38: @7973
8248 /* 7973 */ GIM_Try, /*On fail goto*//*Label 382*/ GIMT_Encode4(7993), // Rule ID 254 //
8249 /* 7978 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
8250 /* 7981 */ // MIs[0] x
8251 /* 7981 */ // No operand predicates
8252 /* 7981 */ // MIs[0] y
8253 /* 7981 */ // No operand predicates
8254 /* 7981 */ // MIs[0] z
8255 /* 7981 */ // No operand predicates
8256 /* 7981 */ // MIs[0] Operand 3
8257 /* 7981 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
8258 /* 7985 */ // Combiner Rule #181: funnel_shift_right_zero
8259 /* 7985 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8260 /* 7988 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
8261 /* 7990 */ GIR_RootToRootCopy, /*OpIdx*/2, // z
8262 /* 7992 */ GIR_EraseRootFromParent_Done,
8263 /* 7993 */ // Label 382: @7993
8264 /* 7993 */ GIM_Try, /*On fail goto*//*Label 383*/ GIMT_Encode4(8004), // Rule ID 253 //
8265 /* 7998 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
8266 /* 8001 */ // MIs[0] dst
8267 /* 8001 */ // No operand predicates
8268 /* 8001 */ // MIs[0] root.x
8269 /* 8001 */ // No operand predicates
8270 /* 8001 */ // MIs[0] root.y
8271 /* 8001 */ // No operand predicates
8272 /* 8001 */ // MIs[0] root.amt
8273 /* 8001 */ // No operand predicates
8274 /* 8001 */ // Combiner Rule #180: funnel_shift_to_rotate @ [root[1]]
8275 /* 8001 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
8276 /* 8004 */ // Label 383: @8004
8277 /* 8004 */ GIM_Try, /*On fail goto*//*Label 384*/ GIMT_Encode4(8015), // Rule ID 257 //
8278 /* 8009 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
8279 /* 8012 */ // MIs[0] dst
8280 /* 8012 */ // No operand predicates
8281 /* 8012 */ // MIs[0] root.x
8282 /* 8012 */ // No operand predicates
8283 /* 8012 */ // MIs[0] root.y
8284 /* 8012 */ // No operand predicates
8285 /* 8012 */ // MIs[0] root.amt
8286 /* 8012 */ // No operand predicates
8287 /* 8012 */ // Combiner Rule #183: funnel_shift_overshift @ [root[1]]
8288 /* 8012 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
8289 /* 8015 */ // Label 384: @8015
8290 /* 8015 */ GIM_Reject,
8291 /* 8016 */ // Label 39: @8016
8292 /* 8016 */ GIM_Try, /*On fail goto*//*Label 385*/ GIMT_Encode4(8039), // Rule ID 127 //
8293 /* 8021 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
8294 /* 8024 */ // MIs[0] dst
8295 /* 8024 */ // No operand predicates
8296 /* 8024 */ // MIs[0] lhs
8297 /* 8024 */ // No operand predicates
8298 /* 8024 */ // MIs[0] Operand 2
8299 /* 8024 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
8300 /* 8028 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8301 /* 8033 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[9]]
8302 /* 8033 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8303 /* 8038 */ GIR_EraseRootFromParent_Done,
8304 /* 8039 */ // Label 385: @8039
8305 /* 8039 */ GIM_Reject,
8306 /* 8040 */ // Label 40: @8040
8307 /* 8040 */ GIM_Try, /*On fail goto*//*Label 386*/ GIMT_Encode4(8063), // Rule ID 126 //
8308 /* 8045 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
8309 /* 8048 */ // MIs[0] dst
8310 /* 8048 */ // No operand predicates
8311 /* 8048 */ // MIs[0] lhs
8312 /* 8048 */ // No operand predicates
8313 /* 8048 */ // MIs[0] Operand 2
8314 /* 8048 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
8315 /* 8052 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8316 /* 8057 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[8]]
8317 /* 8057 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8318 /* 8062 */ GIR_EraseRootFromParent_Done,
8319 /* 8063 */ // Label 386: @8063
8320 /* 8063 */ GIM_Reject,
8321 /* 8064 */ // Label 41: @8064
8322 /* 8064 */ GIM_Try, /*On fail goto*//*Label 387*/ GIMT_Encode4(8075), // Rule ID 171 //
8323 /* 8069 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
8324 /* 8072 */ // MIs[0] root
8325 /* 8072 */ // No operand predicates
8326 /* 8072 */ // MIs[0] pred
8327 /* 8072 */ // No operand predicates
8328 /* 8072 */ // MIs[0] lhs
8329 /* 8072 */ // No operand predicates
8330 /* 8072 */ // MIs[0] rhs
8331 /* 8072 */ // No operand predicates
8332 /* 8072 */ // Combiner Rule #118: canonicalize_icmp
8333 /* 8072 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
8334 /* 8075 */ // Label 387: @8075
8335 /* 8075 */ GIM_Try, /*On fail goto*//*Label 388*/ GIMT_Encode4(8086), // Rule ID 173 //
8336 /* 8080 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule120Enabled),
8337 /* 8083 */ // MIs[0] dst
8338 /* 8083 */ // No operand predicates
8339 /* 8083 */ // MIs[0] pred
8340 /* 8083 */ // No operand predicates
8341 /* 8083 */ // MIs[0] src1
8342 /* 8083 */ // No operand predicates
8343 /* 8083 */ // MIs[0] src2
8344 /* 8083 */ // No operand predicates
8345 /* 8083 */ // Combiner Rule #120: icmp_to_true_false_known_bits
8346 /* 8083 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner53),
8347 /* 8086 */ // Label 388: @8086
8348 /* 8086 */ GIM_Try, /*On fail goto*//*Label 389*/ GIMT_Encode4(8097), // Rule ID 174 //
8349 /* 8091 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
8350 /* 8094 */ // MIs[0] dst
8351 /* 8094 */ // No operand predicates
8352 /* 8094 */ // MIs[0] pred
8353 /* 8094 */ // No operand predicates
8354 /* 8094 */ // MIs[0] src1
8355 /* 8094 */ // No operand predicates
8356 /* 8094 */ // MIs[0] src2
8357 /* 8094 */ // No operand predicates
8358 /* 8094 */ // Combiner Rule #121: icmp_to_lhs_known_bits
8359 /* 8094 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
8360 /* 8097 */ // Label 389: @8097
8361 /* 8097 */ GIM_Try, /*On fail goto*//*Label 390*/ GIMT_Encode4(8108), // Rule ID 177 //
8362 /* 8102 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule124Enabled),
8363 /* 8105 */ // MIs[0] dst
8364 /* 8105 */ // No operand predicates
8365 /* 8105 */ // MIs[0] pred
8366 /* 8105 */ // No operand predicates
8367 /* 8105 */ // MIs[0] src1
8368 /* 8105 */ // No operand predicates
8369 /* 8105 */ // MIs[0] src2
8370 /* 8105 */ // No operand predicates
8371 /* 8105 */ // Combiner Rule #124: redundant_binop_in_equality
8372 /* 8105 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
8373 /* 8108 */ // Label 390: @8108
8374 /* 8108 */ GIM_Reject,
8375 /* 8109 */ // Label 42: @8109
8376 /* 8109 */ GIM_Try, /*On fail goto*//*Label 391*/ GIMT_Encode4(8120), // Rule ID 172 //
8377 /* 8114 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
8378 /* 8117 */ // MIs[0] root
8379 /* 8117 */ // No operand predicates
8380 /* 8117 */ // MIs[0] pred
8381 /* 8117 */ // No operand predicates
8382 /* 8117 */ // MIs[0] lhs
8383 /* 8117 */ // No operand predicates
8384 /* 8117 */ // MIs[0] rhs
8385 /* 8117 */ // No operand predicates
8386 /* 8117 */ // Combiner Rule #119: canonicalize_fcmp
8387 /* 8117 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
8388 /* 8120 */ // Label 391: @8120
8389 /* 8120 */ GIM_Reject,
8390 /* 8121 */ // Label 43: @8121
8391 /* 8121 */ GIM_Try, /*On fail goto*//*Label 392*/ GIMT_Encode4(8170), // Rule ID 189 //
8392 /* 8126 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled),
8393 /* 8129 */ // MIs[0] dst
8394 /* 8129 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
8395 /* 8133 */ // MIs[0] c
8396 /* 8133 */ // No operand predicates
8397 /* 8133 */ // MIs[0] x
8398 /* 8133 */ // No operand predicates
8399 /* 8133 */ // MIs[0] Operand 3
8400 /* 8133 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
8401 /* 8137 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner16),
8402 /* 8141 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8403 /* 8144 */ // Combiner Rule #136: select_zero_false
8404 /* 8144 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FREEZE),
8405 /* 8147 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8406 /* 8152 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
8407 /* 8154 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
8408 /* 8158 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
8409 /* 8162 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // c
8410 /* 8166 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
8411 /* 8169 */ GIR_EraseRootFromParent_Done,
8412 /* 8170 */ // Label 392: @8170
8413 /* 8170 */ GIM_Try, /*On fail goto*//*Label 393*/ GIMT_Encode4(8191), // Rule ID 187 //
8414 /* 8175 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule134Enabled),
8415 /* 8178 */ // MIs[0] root
8416 /* 8178 */ // No operand predicates
8417 /* 8178 */ // MIs[0] tst
8418 /* 8178 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8419 /* 8182 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
8420 /* 8186 */ // MIs[1] tst1
8421 /* 8186 */ // No operand predicates
8422 /* 8186 */ // MIs[1] a
8423 /* 8186 */ // No operand predicates
8424 /* 8186 */ // MIs[1] b
8425 /* 8186 */ // No operand predicates
8426 /* 8186 */ // MIs[0] x
8427 /* 8186 */ // No operand predicates
8428 /* 8186 */ // MIs[0] y
8429 /* 8186 */ // No operand predicates
8430 /* 8186 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8431 /* 8188 */ // Combiner Rule #134: select_to_iminmax
8432 /* 8188 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner61),
8433 /* 8191 */ // Label 393: @8191
8434 /* 8191 */ GIM_Try, /*On fail goto*//*Label 394*/ GIMT_Encode4(8227), // Rule ID 190 //
8435 /* 8196 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled),
8436 /* 8199 */ // MIs[0] dst
8437 /* 8199 */ // No operand predicates
8438 /* 8199 */ // MIs[0] c
8439 /* 8199 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8440 /* 8203 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
8441 /* 8207 */ // MIs[1] src
8442 /* 8207 */ // No operand predicates
8443 /* 8207 */ // MIs[1] Operand 2
8444 /* 8207 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 255,
8445 /* 8211 */ // MIs[0] x
8446 /* 8211 */ // No operand predicates
8447 /* 8211 */ // MIs[0] y
8448 /* 8211 */ // No operand predicates
8449 /* 8211 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8450 /* 8213 */ // Combiner Rule #137: select_not
8451 /* 8213 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SELECT),
8452 /* 8216 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8453 /* 8218 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
8454 /* 8222 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
8455 /* 8224 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
8456 /* 8226 */ GIR_EraseRootFromParent_Done,
8457 /* 8227 */ // Label 394: @8227
8458 /* 8227 */ GIM_Try, /*On fail goto*//*Label 395*/ GIMT_Encode4(8256), // Rule ID 183 //
8459 /* 8232 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule130Enabled),
8460 /* 8235 */ // MIs[0] dst
8461 /* 8235 */ // No operand predicates
8462 /* 8235 */ // MIs[0] undef
8463 /* 8235 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8464 /* 8239 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8465 /* 8243 */ // MIs[0] x
8466 /* 8243 */ // No operand predicates
8467 /* 8243 */ // MIs[0] y
8468 /* 8243 */ // No operand predicates
8469 /* 8243 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
8470 /* 8248 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8471 /* 8250 */ // Combiner Rule #130: select_undef_cmp
8472 /* 8250 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
8473 /* 8255 */ GIR_EraseRootFromParent_Done,
8474 /* 8256 */ // Label 395: @8256
8475 /* 8256 */ GIM_Try, /*On fail goto*//*Label 396*/ GIMT_Encode4(8296), // Rule ID 184 //
8476 /* 8261 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled),
8477 /* 8264 */ // MIs[0] dst
8478 /* 8264 */ // No operand predicates
8479 /* 8264 */ // MIs[0] cond
8480 /* 8264 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8481 /* 8268 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8482 /* 8272 */ // MIs[1] Operand 1
8483 /* 8272 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
8484 /* 8283 */ // MIs[0] tval
8485 /* 8283 */ // No operand predicates
8486 /* 8283 */ // MIs[0] fval
8487 /* 8283 */ // No operand predicates
8488 /* 8283 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
8489 /* 8288 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8490 /* 8290 */ // Combiner Rule #131: select_constant_cmp_false
8491 /* 8290 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
8492 /* 8295 */ GIR_EraseRootFromParent_Done,
8493 /* 8296 */ // Label 396: @8296
8494 /* 8296 */ GIM_Try, /*On fail goto*//*Label 397*/ GIMT_Encode4(8336), // Rule ID 185 //
8495 /* 8301 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled),
8496 /* 8304 */ // MIs[0] dst
8497 /* 8304 */ // No operand predicates
8498 /* 8304 */ // MIs[0] cond
8499 /* 8304 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8500 /* 8308 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8501 /* 8312 */ // MIs[1] Operand 1
8502 /* 8312 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(1),
8503 /* 8323 */ // MIs[0] tval
8504 /* 8323 */ // No operand predicates
8505 /* 8323 */ // MIs[0] fval
8506 /* 8323 */ // No operand predicates
8507 /* 8323 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
8508 /* 8328 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8509 /* 8330 */ // Combiner Rule #132: select_constant_cmp_true
8510 /* 8330 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
8511 /* 8335 */ GIR_EraseRootFromParent_Done,
8512 /* 8336 */ // Label 397: @8336
8513 /* 8336 */ GIM_Try, /*On fail goto*//*Label 398*/ GIMT_Encode4(8360), // Rule ID 116 //
8514 /* 8341 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
8515 /* 8344 */ // MIs[0] dst
8516 /* 8344 */ // No operand predicates
8517 /* 8344 */ // MIs[0] cond
8518 /* 8344 */ // No operand predicates
8519 /* 8344 */ // MIs[0] x
8520 /* 8344 */ // No operand predicates
8521 /* 8344 */ // MIs[0] x
8522 /* 8344 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/0, /*OtherOpIdx*/2,
8523 /* 8349 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
8524 /* 8354 */ // Combiner Rule #88: select_same_val_trivial
8525 /* 8354 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
8526 /* 8359 */ GIR_EraseRootFromParent_Done,
8527 /* 8360 */ // Label 398: @8360
8528 /* 8360 */ GIM_Try, /*On fail goto*//*Label 399*/ GIMT_Encode4(8383), // Rule ID 117 //
8529 /* 8365 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
8530 /* 8368 */ // MIs[0] dst
8531 /* 8368 */ // No operand predicates
8532 /* 8368 */ // MIs[0] cond
8533 /* 8368 */ // No operand predicates
8534 /* 8368 */ // MIs[0] tval
8535 /* 8368 */ // No operand predicates
8536 /* 8368 */ // MIs[0] fval
8537 /* 8368 */ // No operand predicates
8538 /* 8368 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
8539 /* 8372 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
8540 /* 8377 */ // Combiner Rule #89: select_same_val_equiv
8541 /* 8377 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
8542 /* 8382 */ GIR_EraseRootFromParent_Done,
8543 /* 8383 */ // Label 399: @8383
8544 /* 8383 */ GIM_Try, /*On fail goto*//*Label 400*/ GIMT_Encode4(8394), // Rule ID 186 //
8545 /* 8388 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule133Enabled),
8546 /* 8391 */ // MIs[0] dst
8547 /* 8391 */ // No operand predicates
8548 /* 8391 */ // MIs[0] cond
8549 /* 8391 */ // No operand predicates
8550 /* 8391 */ // MIs[0] tval
8551 /* 8391 */ // No operand predicates
8552 /* 8391 */ // MIs[0] fval
8553 /* 8391 */ // No operand predicates
8554 /* 8391 */ // Combiner Rule #133: select_constant_cmp_general
8555 /* 8391 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner60),
8556 /* 8394 */ // Label 400: @8394
8557 /* 8394 */ GIM_Try, /*On fail goto*//*Label 401*/ GIMT_Encode4(8405), // Rule ID 188 //
8558 /* 8399 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule135Enabled),
8559 /* 8402 */ // MIs[0] dst
8560 /* 8402 */ // No operand predicates
8561 /* 8402 */ // MIs[0] cond
8562 /* 8402 */ // No operand predicates
8563 /* 8402 */ // MIs[0] tval
8564 /* 8402 */ // No operand predicates
8565 /* 8402 */ // MIs[0] fval
8566 /* 8402 */ // No operand predicates
8567 /* 8402 */ // Combiner Rule #135: match_selects
8568 /* 8402 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner62),
8569 /* 8405 */ // Label 401: @8405
8570 /* 8405 */ GIM_Try, /*On fail goto*//*Label 402*/ GIMT_Encode4(8416), // Rule ID 367 //
8571 /* 8410 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule225Enabled),
8572 /* 8413 */ // MIs[0] dst
8573 /* 8413 */ // No operand predicates
8574 /* 8413 */ // MIs[0] cond
8575 /* 8413 */ // No operand predicates
8576 /* 8413 */ // MIs[0] tval
8577 /* 8413 */ // No operand predicates
8578 /* 8413 */ // MIs[0] fval
8579 /* 8413 */ // No operand predicates
8580 /* 8413 */ // Combiner Rule #225: select_to_minmax
8581 /* 8413 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner116),
8582 /* 8416 */ // Label 402: @8416
8583 /* 8416 */ GIM_Reject,
8584 /* 8417 */ // Label 44: @8417
8585 /* 8417 */ GIM_Try, /*On fail goto*//*Label 403*/ GIMT_Encode4(8428), // Rule ID 378 //
8586 /* 8422 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
8587 /* 8425 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDO'
8588 /* 8425 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8589 /* 8428 */ // Label 403: @8428
8590 /* 8428 */ GIM_Try, /*On fail goto*//*Label 404*/ GIMT_Encode4(8439), // Rule ID 426 //
8591 /* 8433 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule256Enabled),
8592 /* 8436 */ // Combiner Rule #256: match_addos; wip_match_opcode 'G_UADDO'
8593 /* 8436 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner141),
8594 /* 8439 */ // Label 404: @8439
8595 /* 8439 */ GIM_Reject,
8596 /* 8440 */ // Label 45: @8440
8597 /* 8440 */ GIM_Try, /*On fail goto*//*Label 405*/ GIMT_Encode4(8451), // Rule ID 225 //
8598 /* 8445 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
8599 /* 8448 */ // Combiner Rule #170: adde_to_addo; wip_match_opcode 'G_UADDE'
8600 /* 8448 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
8601 /* 8451 */ // Label 405: @8451
8602 /* 8451 */ GIM_Reject,
8603 /* 8452 */ // Label 46: @8452
8604 /* 8452 */ GIM_Try, /*On fail goto*//*Label 406*/ GIMT_Encode4(8463), // Rule ID 428 //
8605 /* 8457 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule257Enabled),
8606 /* 8460 */ // Combiner Rule #257: match_subo_no_overflow; wip_match_opcode 'G_USUBO'
8607 /* 8460 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner142),
8608 /* 8463 */ // Label 406: @8463
8609 /* 8463 */ GIM_Reject,
8610 /* 8464 */ // Label 47: @8464
8611 /* 8464 */ GIM_Try, /*On fail goto*//*Label 407*/ GIMT_Encode4(8475), // Rule ID 227 //
8612 /* 8469 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
8613 /* 8472 */ // Combiner Rule #170: adde_to_addo; wip_match_opcode 'G_USUBE'
8614 /* 8472 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
8615 /* 8475 */ // Label 407: @8475
8616 /* 8475 */ GIM_Reject,
8617 /* 8476 */ // Label 48: @8476
8618 /* 8476 */ GIM_Try, /*On fail goto*//*Label 408*/ GIMT_Encode4(8487), // Rule ID 379 //
8619 /* 8481 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
8620 /* 8484 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDO'
8621 /* 8484 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8622 /* 8487 */ // Label 408: @8487
8623 /* 8487 */ GIM_Try, /*On fail goto*//*Label 409*/ GIMT_Encode4(8498), // Rule ID 425 //
8624 /* 8492 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule256Enabled),
8625 /* 8495 */ // Combiner Rule #256: match_addos; wip_match_opcode 'G_SADDO'
8626 /* 8495 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner141),
8627 /* 8498 */ // Label 409: @8498
8628 /* 8498 */ GIM_Reject,
8629 /* 8499 */ // Label 49: @8499
8630 /* 8499 */ GIM_Try, /*On fail goto*//*Label 410*/ GIMT_Encode4(8510), // Rule ID 226 //
8631 /* 8504 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
8632 /* 8507 */ // Combiner Rule #170: adde_to_addo; wip_match_opcode 'G_SADDE'
8633 /* 8507 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
8634 /* 8510 */ // Label 410: @8510
8635 /* 8510 */ GIM_Reject,
8636 /* 8511 */ // Label 50: @8511
8637 /* 8511 */ GIM_Try, /*On fail goto*//*Label 411*/ GIMT_Encode4(8522), // Rule ID 427 //
8638 /* 8516 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule257Enabled),
8639 /* 8519 */ // Combiner Rule #257: match_subo_no_overflow; wip_match_opcode 'G_SSUBO'
8640 /* 8519 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner142),
8641 /* 8522 */ // Label 411: @8522
8642 /* 8522 */ GIM_Reject,
8643 /* 8523 */ // Label 51: @8523
8644 /* 8523 */ GIM_Try, /*On fail goto*//*Label 412*/ GIMT_Encode4(8534), // Rule ID 228 //
8645 /* 8528 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
8646 /* 8531 */ // Combiner Rule #170: adde_to_addo; wip_match_opcode 'G_SSUBE'
8647 /* 8531 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
8648 /* 8534 */ // Label 412: @8534
8649 /* 8534 */ GIM_Reject,
8650 /* 8535 */ // Label 52: @8535
8651 /* 8535 */ GIM_Try, /*On fail goto*//*Label 413*/ GIMT_Encode4(8546), // Rule ID 221 //
8652 /* 8540 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
8653 /* 8543 */ // Combiner Rule #168: mulo_by_2; wip_match_opcode 'G_UMULO'
8654 /* 8543 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner75),
8655 /* 8546 */ // Label 413: @8546
8656 /* 8546 */ GIM_Try, /*On fail goto*//*Label 414*/ GIMT_Encode4(8557), // Rule ID 223 //
8657 /* 8551 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
8658 /* 8554 */ // Combiner Rule #169: mulo_by_0; wip_match_opcode 'G_UMULO'
8659 /* 8554 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76),
8660 /* 8557 */ // Label 414: @8557
8661 /* 8557 */ GIM_Try, /*On fail goto*//*Label 415*/ GIMT_Encode4(8568), // Rule ID 380 //
8662 /* 8562 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
8663 /* 8565 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULO'
8664 /* 8565 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8665 /* 8568 */ // Label 415: @8568
8666 /* 8568 */ GIM_Reject,
8667 /* 8569 */ // Label 53: @8569
8668 /* 8569 */ GIM_Try, /*On fail goto*//*Label 416*/ GIMT_Encode4(8580), // Rule ID 222 //
8669 /* 8574 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
8670 /* 8577 */ // Combiner Rule #168: mulo_by_2; wip_match_opcode 'G_SMULO'
8671 /* 8577 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner75),
8672 /* 8580 */ // Label 416: @8580
8673 /* 8580 */ GIM_Try, /*On fail goto*//*Label 417*/ GIMT_Encode4(8591), // Rule ID 224 //
8674 /* 8585 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
8675 /* 8588 */ // Combiner Rule #169: mulo_by_0; wip_match_opcode 'G_SMULO'
8676 /* 8588 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76),
8677 /* 8591 */ // Label 417: @8591
8678 /* 8591 */ GIM_Try, /*On fail goto*//*Label 418*/ GIMT_Encode4(8602), // Rule ID 381 //
8679 /* 8596 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
8680 /* 8599 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULO'
8681 /* 8599 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8682 /* 8602 */ // Label 418: @8602
8683 /* 8602 */ GIM_Reject,
8684 /* 8603 */ // Label 54: @8603
8685 /* 8603 */ GIM_Try, /*On fail goto*//*Label 419*/ GIMT_Encode4(8614), // Rule ID 382 //
8686 /* 8608 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
8687 /* 8611 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULH'
8688 /* 8611 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8689 /* 8614 */ // Label 419: @8614
8690 /* 8614 */ GIM_Try, /*On fail goto*//*Label 420*/ GIMT_Encode4(8625), // Rule ID 316 //
8691 /* 8619 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
8692 /* 8622 */ // MIs[0] dst
8693 /* 8622 */ // No operand predicates
8694 /* 8622 */ // MIs[0] src1
8695 /* 8622 */ // No operand predicates
8696 /* 8622 */ // MIs[0] src2
8697 /* 8622 */ // No operand predicates
8698 /* 8622 */ // Combiner Rule #200: mulh_to_lshr
8699 /* 8622 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
8700 /* 8625 */ // Label 420: @8625
8701 /* 8625 */ GIM_Reject,
8702 /* 8626 */ // Label 55: @8626
8703 /* 8626 */ GIM_Try, /*On fail goto*//*Label 421*/ GIMT_Encode4(8637), // Rule ID 383 //
8704 /* 8631 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
8705 /* 8634 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULH'
8706 /* 8634 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8707 /* 8637 */ // Label 421: @8637
8708 /* 8637 */ GIM_Reject,
8709 /* 8638 */ // Label 56: @8638
8710 /* 8638 */ GIM_Try, /*On fail goto*//*Label 422*/ GIMT_Encode4(8649), // Rule ID 384 //
8711 /* 8643 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
8712 /* 8646 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDSAT'
8713 /* 8646 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8714 /* 8649 */ // Label 422: @8649
8715 /* 8649 */ GIM_Reject,
8716 /* 8650 */ // Label 57: @8650
8717 /* 8650 */ GIM_Try, /*On fail goto*//*Label 423*/ GIMT_Encode4(8661), // Rule ID 385 //
8718 /* 8655 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
8719 /* 8658 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDSAT'
8720 /* 8658 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8721 /* 8661 */ // Label 423: @8661
8722 /* 8661 */ GIM_Reject,
8723 /* 8662 */ // Label 58: @8662
8724 /* 8662 */ GIM_Try, /*On fail goto*//*Label 424*/ GIMT_Encode4(8673), // Rule ID 240 //
8725 /* 8667 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
8726 /* 8670 */ // Combiner Rule #175: shift_immed_chain; wip_match_opcode 'G_USHLSAT'
8727 /* 8670 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
8728 /* 8673 */ // Label 424: @8673
8729 /* 8673 */ GIM_Try, /*On fail goto*//*Label 425*/ GIMT_Encode4(8684), // Rule ID 244 //
8730 /* 8678 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
8731 /* 8681 */ // Combiner Rule #176: shift_of_shifted_logic_chain; wip_match_opcode 'G_USHLSAT'
8732 /* 8681 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
8733 /* 8684 */ // Label 425: @8684
8734 /* 8684 */ GIM_Reject,
8735 /* 8685 */ // Label 59: @8685
8736 /* 8685 */ GIM_Try, /*On fail goto*//*Label 426*/ GIMT_Encode4(8696), // Rule ID 239 //
8737 /* 8690 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
8738 /* 8693 */ // Combiner Rule #175: shift_immed_chain; wip_match_opcode 'G_SSHLSAT'
8739 /* 8693 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
8740 /* 8696 */ // Label 426: @8696
8741 /* 8696 */ GIM_Try, /*On fail goto*//*Label 427*/ GIMT_Encode4(8707), // Rule ID 245 //
8742 /* 8701 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
8743 /* 8704 */ // Combiner Rule #176: shift_of_shifted_logic_chain; wip_match_opcode 'G_SSHLSAT'
8744 /* 8704 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
8745 /* 8707 */ // Label 427: @8707
8746 /* 8707 */ GIM_Reject,
8747 /* 8708 */ // Label 60: @8708
8748 /* 8708 */ GIM_Try, /*On fail goto*//*Label 428*/ GIMT_Encode4(8719), // Rule ID 386 //
8749 /* 8713 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
8750 /* 8716 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIX'
8751 /* 8716 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8752 /* 8719 */ // Label 428: @8719
8753 /* 8719 */ GIM_Reject,
8754 /* 8720 */ // Label 61: @8720
8755 /* 8720 */ GIM_Try, /*On fail goto*//*Label 429*/ GIMT_Encode4(8731), // Rule ID 387 //
8756 /* 8725 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
8757 /* 8728 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIX'
8758 /* 8728 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8759 /* 8731 */ // Label 429: @8731
8760 /* 8731 */ GIM_Reject,
8761 /* 8732 */ // Label 62: @8732
8762 /* 8732 */ GIM_Try, /*On fail goto*//*Label 430*/ GIMT_Encode4(8743), // Rule ID 388 //
8763 /* 8737 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
8764 /* 8740 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIXSAT'
8765 /* 8740 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8766 /* 8743 */ // Label 430: @8743
8767 /* 8743 */ GIM_Reject,
8768 /* 8744 */ // Label 63: @8744
8769 /* 8744 */ GIM_Try, /*On fail goto*//*Label 431*/ GIMT_Encode4(8755), // Rule ID 389 //
8770 /* 8749 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
8771 /* 8752 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIXSAT'
8772 /* 8752 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8773 /* 8755 */ // Label 431: @8755
8774 /* 8755 */ GIM_Reject,
8775 /* 8756 */ // Label 64: @8756
8776 /* 8756 */ GIM_Try, /*On fail goto*//*Label 432*/ GIMT_Encode4(8767), // Rule ID 317 //
8777 /* 8761 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
8778 /* 8764 */ // Combiner Rule #201: redundant_neg_operands_fadd_fsub; wip_match_opcode 'G_FADD'
8779 /* 8764 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
8780 /* 8767 */ // Label 432: @8767
8781 /* 8767 */ GIM_Try, /*On fail goto*//*Label 433*/ GIMT_Encode4(8778), // Rule ID 350 //
8782 /* 8772 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
8783 /* 8775 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FADD'
8784 /* 8775 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
8785 /* 8778 */ // Label 433: @8778
8786 /* 8778 */ GIM_Try, /*On fail goto*//*Label 434*/ GIMT_Encode4(8789), // Rule ID 390 //
8787 /* 8783 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
8788 /* 8786 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FADD'
8789 /* 8786 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
8790 /* 8789 */ // Label 434: @8789
8791 /* 8789 */ GIM_Try, /*On fail goto*//*Label 435*/ GIMT_Encode4(8812), // Rule ID 156 //
8792 /* 8794 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
8793 /* 8797 */ // MIs[0] dst
8794 /* 8797 */ // No operand predicates
8795 /* 8797 */ // MIs[0] x
8796 /* 8797 */ // No operand predicates
8797 /* 8797 */ // MIs[0] y
8798 /* 8797 */ // No operand predicates
8799 /* 8797 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
8800 /* 8801 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8801 /* 8806 */ // Combiner Rule #108: right_identity_neg_zero_fp
8802 /* 8806 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8803 /* 8811 */ GIR_EraseRootFromParent_Done,
8804 /* 8812 */ // Label 435: @8812
8805 /* 8812 */ GIM_Try, /*On fail goto*//*Label 436*/ GIMT_Encode4(8841), // Rule ID 157 //
8806 /* 8817 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule109Enabled),
8807 /* 8820 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmNsz),
8808 /* 8826 */ // MIs[0] dst
8809 /* 8826 */ // No operand predicates
8810 /* 8826 */ // MIs[0] x
8811 /* 8826 */ // No operand predicates
8812 /* 8826 */ // MIs[0] y
8813 /* 8826 */ // No operand predicates
8814 /* 8826 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner11),
8815 /* 8830 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8816 /* 8835 */ // Combiner Rule #109: right_identity_neg_zero_fp_nsz
8817 /* 8835 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8818 /* 8840 */ GIR_EraseRootFromParent_Done,
8819 /* 8841 */ // Label 436: @8841
8820 /* 8841 */ GIM_Try, /*On fail goto*//*Label 437*/ GIMT_Encode4(8852), // Rule ID 290 //
8821 /* 8846 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
8822 /* 8849 */ // MIs[0] d
8823 /* 8849 */ // No operand predicates
8824 /* 8849 */ // MIs[0] mi.src0
8825 /* 8849 */ // No operand predicates
8826 /* 8849 */ // MIs[0] mi.src1
8827 /* 8849 */ // No operand predicates
8828 /* 8849 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[0]]
8829 /* 8849 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
8830 /* 8852 */ // Label 437: @8852
8831 /* 8852 */ GIM_Try, /*On fail goto*//*Label 438*/ GIMT_Encode4(8863), // Rule ID 324 //
8832 /* 8857 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
8833 /* 8860 */ // MIs[0] dst
8834 /* 8860 */ // No operand predicates
8835 /* 8860 */ // MIs[0] src1
8836 /* 8860 */ // No operand predicates
8837 /* 8860 */ // MIs[0] src2
8838 /* 8860 */ // No operand predicates
8839 /* 8860 */ // Combiner Rule #207: combine_fadd_fmul_to_fmad_or_fma
8840 /* 8860 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner100),
8841 /* 8863 */ // Label 438: @8863
8842 /* 8863 */ GIM_Try, /*On fail goto*//*Label 439*/ GIMT_Encode4(8874), // Rule ID 325 //
8843 /* 8868 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
8844 /* 8871 */ // MIs[0] dst
8845 /* 8871 */ // No operand predicates
8846 /* 8871 */ // MIs[0] src1
8847 /* 8871 */ // No operand predicates
8848 /* 8871 */ // MIs[0] src2
8849 /* 8871 */ // No operand predicates
8850 /* 8871 */ // Combiner Rule #208: combine_fadd_fpext_fmul_to_fmad_or_fma
8851 /* 8871 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
8852 /* 8874 */ // Label 439: @8874
8853 /* 8874 */ GIM_Try, /*On fail goto*//*Label 440*/ GIMT_Encode4(8885), // Rule ID 326 //
8854 /* 8879 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
8855 /* 8882 */ // MIs[0] dst
8856 /* 8882 */ // No operand predicates
8857 /* 8882 */ // MIs[0] src1
8858 /* 8882 */ // No operand predicates
8859 /* 8882 */ // MIs[0] src2
8860 /* 8882 */ // No operand predicates
8861 /* 8882 */ // Combiner Rule #209: combine_fadd_fma_fmul_to_fmad_or_fma
8862 /* 8882 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
8863 /* 8885 */ // Label 440: @8885
8864 /* 8885 */ GIM_Try, /*On fail goto*//*Label 441*/ GIMT_Encode4(8896), // Rule ID 327 //
8865 /* 8890 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
8866 /* 8893 */ // MIs[0] dst
8867 /* 8893 */ // No operand predicates
8868 /* 8893 */ // MIs[0] src1
8869 /* 8893 */ // No operand predicates
8870 /* 8893 */ // MIs[0] src2
8871 /* 8893 */ // No operand predicates
8872 /* 8893 */ // Combiner Rule #210: combine_fadd_fpext_fma_fmul_to_fmad_or_fma
8873 /* 8893 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
8874 /* 8896 */ // Label 441: @8896
8875 /* 8896 */ GIM_Reject,
8876 /* 8897 */ // Label 65: @8897
8877 /* 8897 */ GIM_Try, /*On fail goto*//*Label 442*/ GIMT_Encode4(8908), // Rule ID 318 //
8878 /* 8902 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
8879 /* 8905 */ // Combiner Rule #201: redundant_neg_operands_fadd_fsub; wip_match_opcode 'G_FSUB'
8880 /* 8905 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
8881 /* 8908 */ // Label 442: @8908
8882 /* 8908 */ GIM_Try, /*On fail goto*//*Label 443*/ GIMT_Encode4(8919), // Rule ID 351 //
8883 /* 8913 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
8884 /* 8916 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FSUB'
8885 /* 8916 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
8886 /* 8919 */ // Label 443: @8919
8887 /* 8919 */ GIM_Try, /*On fail goto*//*Label 444*/ GIMT_Encode4(8930), // Rule ID 291 //
8888 /* 8924 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
8889 /* 8927 */ // MIs[0] d
8890 /* 8927 */ // No operand predicates
8891 /* 8927 */ // MIs[0] mi.src0
8892 /* 8927 */ // No operand predicates
8893 /* 8927 */ // MIs[0] mi.src1
8894 /* 8927 */ // No operand predicates
8895 /* 8927 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[1]]
8896 /* 8927 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
8897 /* 8930 */ // Label 444: @8930
8898 /* 8930 */ GIM_Try, /*On fail goto*//*Label 445*/ GIMT_Encode4(8941), // Rule ID 328 //
8899 /* 8935 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
8900 /* 8938 */ // MIs[0] dst
8901 /* 8938 */ // No operand predicates
8902 /* 8938 */ // MIs[0] src1
8903 /* 8938 */ // No operand predicates
8904 /* 8938 */ // MIs[0] src2
8905 /* 8938 */ // No operand predicates
8906 /* 8938 */ // Combiner Rule #211: combine_fsub_fmul_to_fmad_or_fma
8907 /* 8938 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
8908 /* 8941 */ // Label 445: @8941
8909 /* 8941 */ GIM_Try, /*On fail goto*//*Label 446*/ GIMT_Encode4(8952), // Rule ID 329 //
8910 /* 8946 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
8911 /* 8949 */ // MIs[0] dst
8912 /* 8949 */ // No operand predicates
8913 /* 8949 */ // MIs[0] src1
8914 /* 8949 */ // No operand predicates
8915 /* 8949 */ // MIs[0] src2
8916 /* 8949 */ // No operand predicates
8917 /* 8949 */ // Combiner Rule #212: combine_fsub_fneg_fmul_to_fmad_or_fma
8918 /* 8949 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
8919 /* 8952 */ // Label 446: @8952
8920 /* 8952 */ GIM_Try, /*On fail goto*//*Label 447*/ GIMT_Encode4(8963), // Rule ID 330 //
8921 /* 8957 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
8922 /* 8960 */ // MIs[0] dst
8923 /* 8960 */ // No operand predicates
8924 /* 8960 */ // MIs[0] src1
8925 /* 8960 */ // No operand predicates
8926 /* 8960 */ // MIs[0] src2
8927 /* 8960 */ // No operand predicates
8928 /* 8960 */ // Combiner Rule #213: combine_fsub_fpext_fmul_to_fmad_or_fma
8929 /* 8960 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
8930 /* 8963 */ // Label 447: @8963
8931 /* 8963 */ GIM_Try, /*On fail goto*//*Label 448*/ GIMT_Encode4(8974), // Rule ID 331 //
8932 /* 8968 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
8933 /* 8971 */ // MIs[0] dst
8934 /* 8971 */ // No operand predicates
8935 /* 8971 */ // MIs[0] src1
8936 /* 8971 */ // No operand predicates
8937 /* 8971 */ // MIs[0] src2
8938 /* 8971 */ // No operand predicates
8939 /* 8971 */ // Combiner Rule #214: combine_fsub_fpext_fneg_fmul_to_fmad_or_fma
8940 /* 8971 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
8941 /* 8974 */ // Label 448: @8974
8942 /* 8974 */ GIM_Try, /*On fail goto*//*Label 449*/ GIMT_Encode4(8985), // Rule ID 368 //
8943 /* 8979 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule226Enabled),
8944 /* 8982 */ // MIs[0] dst
8945 /* 8982 */ // No operand predicates
8946 /* 8982 */ // MIs[0] src1
8947 /* 8982 */ // No operand predicates
8948 /* 8982 */ // MIs[0] src2
8949 /* 8982 */ // No operand predicates
8950 /* 8982 */ // Combiner Rule #226: fsub_to_fneg
8951 /* 8982 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner117),
8952 /* 8985 */ // Label 449: @8985
8953 /* 8985 */ GIM_Reject,
8954 /* 8986 */ // Label 66: @8986
8955 /* 8986 */ GIM_Try, /*On fail goto*//*Label 450*/ GIMT_Encode4(8997), // Rule ID 349 //
8956 /* 8991 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
8957 /* 8994 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FMUL'
8958 /* 8994 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
8959 /* 8997 */ // Label 450: @8997
8960 /* 8997 */ GIM_Try, /*On fail goto*//*Label 451*/ GIMT_Encode4(9008), // Rule ID 391 //
8961 /* 9002 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
8962 /* 9005 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMUL'
8963 /* 9005 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
8964 /* 9008 */ // Label 451: @9008
8965 /* 9008 */ GIM_Try, /*On fail goto*//*Label 452*/ GIMT_Encode4(9051), // Rule ID 319 //
8966 /* 9013 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule202Enabled),
8967 /* 9016 */ // MIs[0] dst
8968 /* 9016 */ // No operand predicates
8969 /* 9016 */ // MIs[0] nx
8970 /* 9016 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8971 /* 9020 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
8972 /* 9024 */ // MIs[1] x
8973 /* 9024 */ // No operand predicates
8974 /* 9024 */ // MIs[0] ny
8975 /* 9024 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
8976 /* 9028 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
8977 /* 9032 */ // MIs[2] y
8978 /* 9032 */ // No operand predicates
8979 /* 9032 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8980 /* 9034 */ // Combiner Rule #202: G_FMUL_fneg_fneg
8981 /* 9034 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMUL),
8982 /* 9037 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8983 /* 9039 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
8984 /* 9043 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
8985 /* 9047 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
8986 /* 9050 */ GIR_EraseRootFromParent_Done,
8987 /* 9051 */ // Label 452: @9051
8988 /* 9051 */ GIM_Try, /*On fail goto*//*Label 453*/ GIMT_Encode4(9074), // Rule ID 146 //
8989 /* 9056 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule100Enabled),
8990 /* 9059 */ // MIs[0] dst
8991 /* 9059 */ // No operand predicates
8992 /* 9059 */ // MIs[0] x
8993 /* 9059 */ // No operand predicates
8994 /* 9059 */ // MIs[0] y
8995 /* 9059 */ // No operand predicates
8996 /* 9059 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner8),
8997 /* 9063 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8998 /* 9068 */ // Combiner Rule #100: right_identity_one_fp
8999 /* 9068 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9000 /* 9073 */ GIR_EraseRootFromParent_Done,
9001 /* 9074 */ // Label 453: @9074
9002 /* 9074 */ GIM_Try, /*On fail goto*//*Label 454*/ GIMT_Encode4(9094), // Rule ID 158 //
9003 /* 9079 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled),
9004 /* 9082 */ // MIs[0] dst
9005 /* 9082 */ // No operand predicates
9006 /* 9082 */ // MIs[0] x
9007 /* 9082 */ // No operand predicates
9008 /* 9082 */ // MIs[0] y
9009 /* 9082 */ // No operand predicates
9010 /* 9082 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
9011 /* 9086 */ // Combiner Rule #110: right_identity_neg_one_fp
9012 /* 9086 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
9013 /* 9089 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9014 /* 9091 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
9015 /* 9093 */ GIR_EraseRootFromParent_Done,
9016 /* 9094 */ // Label 454: @9094
9017 /* 9094 */ GIM_Try, /*On fail goto*//*Label 455*/ GIMT_Encode4(9105), // Rule ID 292 //
9018 /* 9099 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9019 /* 9102 */ // MIs[0] d
9020 /* 9102 */ // No operand predicates
9021 /* 9102 */ // MIs[0] mi.src0
9022 /* 9102 */ // No operand predicates
9023 /* 9102 */ // MIs[0] mi.src1
9024 /* 9102 */ // No operand predicates
9025 /* 9102 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[2]]
9026 /* 9102 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
9027 /* 9105 */ // Label 455: @9105
9028 /* 9105 */ GIM_Reject,
9029 /* 9106 */ // Label 67: @9106
9030 /* 9106 */ GIM_Try, /*On fail goto*//*Label 456*/ GIMT_Encode4(9151), // Rule ID 322 //
9031 /* 9111 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule205Enabled),
9032 /* 9114 */ // MIs[0] dst
9033 /* 9114 */ // No operand predicates
9034 /* 9114 */ // MIs[0] nx
9035 /* 9114 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9036 /* 9118 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
9037 /* 9122 */ // MIs[1] x
9038 /* 9122 */ // No operand predicates
9039 /* 9122 */ // MIs[0] ny
9040 /* 9122 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
9041 /* 9126 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
9042 /* 9130 */ // MIs[2] y
9043 /* 9130 */ // No operand predicates
9044 /* 9130 */ // MIs[0] z
9045 /* 9130 */ // No operand predicates
9046 /* 9130 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9047 /* 9132 */ // Combiner Rule #205: G_FMA_fneg_fneg
9048 /* 9132 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMA),
9049 /* 9135 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9050 /* 9137 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
9051 /* 9141 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
9052 /* 9145 */ GIR_RootToRootCopy, /*OpIdx*/3, // z
9053 /* 9147 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
9054 /* 9150 */ GIR_EraseRootFromParent_Done,
9055 /* 9151 */ // Label 456: @9151
9056 /* 9151 */ GIM_Try, /*On fail goto*//*Label 457*/ GIMT_Encode4(9162), // Rule ID 303 //
9057 /* 9156 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule196Enabled),
9058 /* 9159 */ // MIs[0] dst
9059 /* 9159 */ // No operand predicates
9060 /* 9159 */ // MIs[0] d.src0
9061 /* 9159 */ // No operand predicates
9062 /* 9159 */ // MIs[0] d.src1
9063 /* 9159 */ // No operand predicates
9064 /* 9159 */ // MIs[0] d.src2
9065 /* 9159 */ // No operand predicates
9066 /* 9159 */ // Combiner Rule #196: constant_fold_fma @ [d[1]]
9067 /* 9159 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
9068 /* 9162 */ // Label 457: @9162
9069 /* 9162 */ GIM_Reject,
9070 /* 9163 */ // Label 68: @9163
9071 /* 9163 */ GIM_Try, /*On fail goto*//*Label 458*/ GIMT_Encode4(9208), // Rule ID 321 //
9072 /* 9168 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
9073 /* 9171 */ // MIs[0] dst
9074 /* 9171 */ // No operand predicates
9075 /* 9171 */ // MIs[0] nx
9076 /* 9171 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9077 /* 9175 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
9078 /* 9179 */ // MIs[1] x
9079 /* 9179 */ // No operand predicates
9080 /* 9179 */ // MIs[0] ny
9081 /* 9179 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
9082 /* 9183 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
9083 /* 9187 */ // MIs[2] y
9084 /* 9187 */ // No operand predicates
9085 /* 9187 */ // MIs[0] z
9086 /* 9187 */ // No operand predicates
9087 /* 9187 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9088 /* 9189 */ // Combiner Rule #204: G_FMAD_fneg_fneg
9089 /* 9189 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMAD),
9090 /* 9192 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9091 /* 9194 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
9092 /* 9198 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
9093 /* 9202 */ GIR_RootToRootCopy, /*OpIdx*/3, // z
9094 /* 9204 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
9095 /* 9207 */ GIR_EraseRootFromParent_Done,
9096 /* 9208 */ // Label 458: @9208
9097 /* 9208 */ GIM_Try, /*On fail goto*//*Label 459*/ GIMT_Encode4(9219), // Rule ID 302 //
9098 /* 9213 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule196Enabled),
9099 /* 9216 */ // MIs[0] dst
9100 /* 9216 */ // No operand predicates
9101 /* 9216 */ // MIs[0] d.src0
9102 /* 9216 */ // No operand predicates
9103 /* 9216 */ // MIs[0] d.src1
9104 /* 9216 */ // No operand predicates
9105 /* 9216 */ // MIs[0] d.src2
9106 /* 9216 */ // No operand predicates
9107 /* 9216 */ // Combiner Rule #196: constant_fold_fma @ [d[0]]
9108 /* 9216 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
9109 /* 9219 */ // Label 459: @9219
9110 /* 9219 */ GIM_Reject,
9111 /* 9220 */ // Label 69: @9220
9112 /* 9220 */ GIM_Try, /*On fail goto*//*Label 460*/ GIMT_Encode4(9231), // Rule ID 352 //
9113 /* 9225 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
9114 /* 9228 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FDIV'
9115 /* 9228 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9116 /* 9231 */ // Label 460: @9231
9117 /* 9231 */ GIM_Try, /*On fail goto*//*Label 461*/ GIMT_Encode4(9274), // Rule ID 320 //
9118 /* 9236 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule203Enabled),
9119 /* 9239 */ // MIs[0] dst
9120 /* 9239 */ // No operand predicates
9121 /* 9239 */ // MIs[0] nx
9122 /* 9239 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9123 /* 9243 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
9124 /* 9247 */ // MIs[1] x
9125 /* 9247 */ // No operand predicates
9126 /* 9247 */ // MIs[0] ny
9127 /* 9247 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
9128 /* 9251 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
9129 /* 9255 */ // MIs[2] y
9130 /* 9255 */ // No operand predicates
9131 /* 9255 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9132 /* 9257 */ // Combiner Rule #203: G_FDIV_fneg_fneg
9133 /* 9257 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FDIV),
9134 /* 9260 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9135 /* 9262 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
9136 /* 9266 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
9137 /* 9270 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
9138 /* 9273 */ GIR_EraseRootFromParent_Done,
9139 /* 9274 */ // Label 461: @9274
9140 /* 9274 */ GIM_Try, /*On fail goto*//*Label 462*/ GIMT_Encode4(9285), // Rule ID 293 //
9141 /* 9279 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9142 /* 9282 */ // MIs[0] d
9143 /* 9282 */ // No operand predicates
9144 /* 9282 */ // MIs[0] mi.src0
9145 /* 9282 */ // No operand predicates
9146 /* 9282 */ // MIs[0] mi.src1
9147 /* 9282 */ // No operand predicates
9148 /* 9282 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[3]]
9149 /* 9282 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
9150 /* 9285 */ // Label 462: @9285
9151 /* 9285 */ GIM_Try, /*On fail goto*//*Label 463*/ GIMT_Encode4(9296), // Rule ID 365 //
9152 /* 9290 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule223Enabled),
9153 /* 9293 */ // MIs[0] dst
9154 /* 9293 */ // No operand predicates
9155 /* 9293 */ // MIs[0] src1
9156 /* 9293 */ // No operand predicates
9157 /* 9293 */ // MIs[0] src2
9158 /* 9293 */ // No operand predicates
9159 /* 9293 */ // Combiner Rule #223: fdiv_repeated_divison
9160 /* 9293 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114),
9161 /* 9296 */ // Label 463: @9296
9162 /* 9296 */ GIM_Reject,
9163 /* 9297 */ // Label 70: @9297
9164 /* 9297 */ GIM_Try, /*On fail goto*//*Label 464*/ GIMT_Encode4(9308), // Rule ID 353 //
9165 /* 9302 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
9166 /* 9305 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FREM'
9167 /* 9305 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9168 /* 9308 */ // Label 464: @9308
9169 /* 9308 */ GIM_Try, /*On fail goto*//*Label 465*/ GIMT_Encode4(9319), // Rule ID 294 //
9170 /* 9313 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9171 /* 9316 */ // MIs[0] d
9172 /* 9316 */ // No operand predicates
9173 /* 9316 */ // MIs[0] mi.src0
9174 /* 9316 */ // No operand predicates
9175 /* 9316 */ // MIs[0] mi.src1
9176 /* 9316 */ // No operand predicates
9177 /* 9316 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[4]]
9178 /* 9316 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
9179 /* 9319 */ // Label 465: @9319
9180 /* 9319 */ GIM_Reject,
9181 /* 9320 */ // Label 71: @9320
9182 /* 9320 */ GIM_Try, /*On fail goto*//*Label 466*/ GIMT_Encode4(9341), // Rule ID 233 //
9183 /* 9325 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
9184 /* 9328 */ // MIs[0] dst
9185 /* 9328 */ // No operand predicates
9186 /* 9328 */ // MIs[0] float
9187 /* 9328 */ // No operand predicates
9188 /* 9328 */ // MIs[0] int
9189 /* 9328 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9190 /* 9332 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
9191 /* 9336 */ // MIs[1] imm
9192 /* 9336 */ // No operand predicates
9193 /* 9336 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9194 /* 9338 */ // Combiner Rule #172: expand_const_fpowi
9195 /* 9338 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
9196 /* 9341 */ // Label 466: @9341
9197 /* 9341 */ GIM_Reject,
9198 /* 9342 */ // Label 72: @9342
9199 /* 9342 */ GIM_Try, /*On fail goto*//*Label 467*/ GIMT_Encode4(9363), // Rule ID 207 //
9200 /* 9347 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule154Enabled),
9201 /* 9350 */ // MIs[0] dst
9202 /* 9350 */ // No operand predicates
9203 /* 9350 */ // MIs[0] src0
9204 /* 9350 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9205 /* 9354 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
9206 /* 9358 */ // MIs[1] cst
9207 /* 9358 */ // No operand predicates
9208 /* 9358 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9209 /* 9360 */ // Combiner Rule #154: constant_fold_flog2
9210 /* 9360 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
9211 /* 9363 */ // Label 467: @9363
9212 /* 9363 */ GIM_Reject,
9213 /* 9364 */ // Label 73: @9364
9214 /* 9364 */ GIM_Try, /*On fail goto*//*Label 468*/ GIMT_Encode4(9385), // Rule ID 204 //
9215 /* 9369 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
9216 /* 9372 */ // MIs[0] dst
9217 /* 9372 */ // No operand predicates
9218 /* 9372 */ // MIs[0] src0
9219 /* 9372 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9220 /* 9376 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
9221 /* 9380 */ // MIs[1] cst
9222 /* 9380 */ // No operand predicates
9223 /* 9380 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9224 /* 9382 */ // Combiner Rule #151: constant_fold_fneg
9225 /* 9382 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
9226 /* 9385 */ // Label 468: @9385
9227 /* 9385 */ GIM_Try, /*On fail goto*//*Label 469*/ GIMT_Encode4(9414), // Rule ID 144 //
9228 /* 9390 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule98Enabled),
9229 /* 9393 */ // MIs[0] dst
9230 /* 9393 */ // No operand predicates
9231 /* 9393 */ // MIs[0] t
9232 /* 9393 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9233 /* 9397 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
9234 /* 9401 */ // MIs[1] src
9235 /* 9401 */ // No operand predicates
9236 /* 9401 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
9237 /* 9406 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9238 /* 9408 */ // Combiner Rule #98: fneg_fneg_fold
9239 /* 9408 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
9240 /* 9413 */ GIR_EraseRootFromParent_Done,
9241 /* 9414 */ // Label 469: @9414
9242 /* 9414 */ GIM_Reject,
9243 /* 9415 */ // Label 74: @9415
9244 /* 9415 */ GIM_Try, /*On fail goto*//*Label 470*/ GIMT_Encode4(9436), // Rule ID 209 //
9245 /* 9420 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
9246 /* 9423 */ // MIs[0] dst
9247 /* 9423 */ // No operand predicates
9248 /* 9423 */ // MIs[0] src0
9249 /* 9423 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9250 /* 9427 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
9251 /* 9431 */ // MIs[1] cst
9252 /* 9431 */ // No operand predicates
9253 /* 9431 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9254 /* 9433 */ // Combiner Rule #156: constant_fold_fpext
9255 /* 9433 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
9256 /* 9436 */ // Label 470: @9436
9257 /* 9436 */ GIM_Reject,
9258 /* 9437 */ // Label 75: @9437
9259 /* 9437 */ GIM_Try, /*On fail goto*//*Label 471*/ GIMT_Encode4(9458), // Rule ID 208 //
9260 /* 9442 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
9261 /* 9445 */ // MIs[0] dst
9262 /* 9445 */ // No operand predicates
9263 /* 9445 */ // MIs[0] src0
9264 /* 9445 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9265 /* 9449 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
9266 /* 9453 */ // MIs[1] cst
9267 /* 9453 */ // No operand predicates
9268 /* 9453 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9269 /* 9455 */ // Combiner Rule #155: constant_fold_fptrunc
9270 /* 9455 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
9271 /* 9458 */ // Label 471: @9458
9272 /* 9458 */ GIM_Try, /*On fail goto*//*Label 472*/ GIMT_Encode4(9479), // Rule ID 155 //
9273 /* 9463 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
9274 /* 9466 */ // MIs[0] dst
9275 /* 9466 */ // No operand predicates
9276 /* 9466 */ // MIs[0] src1
9277 /* 9466 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9278 /* 9470 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
9279 /* 9474 */ // MIs[1] src0
9280 /* 9474 */ // No operand predicates
9281 /* 9474 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9282 /* 9476 */ // Combiner Rule #107: fptrunc_fpext_fold
9283 /* 9476 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner44),
9284 /* 9479 */ // Label 472: @9479
9285 /* 9479 */ GIM_Reject,
9286 /* 9480 */ // Label 76: @9480
9287 /* 9480 */ GIM_Try, /*On fail goto*//*Label 473*/ GIMT_Encode4(9501), // Rule ID 102 //
9288 /* 9485 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
9289 /* 9488 */ // MIs[0] dst
9290 /* 9488 */ // No operand predicates
9291 /* 9488 */ // MIs[0] __unary_undef_to_undef_match_0.x
9292 /* 9488 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9293 /* 9492 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9294 /* 9496 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9295 /* 9498 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[5]]
9296 /* 9498 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
9297 /* 9501 */ // Label 473: @9501
9298 /* 9501 */ GIM_Reject,
9299 /* 9502 */ // Label 77: @9502
9300 /* 9502 */ GIM_Try, /*On fail goto*//*Label 474*/ GIMT_Encode4(9523), // Rule ID 103 //
9301 /* 9507 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
9302 /* 9510 */ // MIs[0] dst
9303 /* 9510 */ // No operand predicates
9304 /* 9510 */ // MIs[0] __unary_undef_to_undef_match_0.x
9305 /* 9510 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9306 /* 9514 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9307 /* 9518 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9308 /* 9520 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[6]]
9309 /* 9520 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
9310 /* 9523 */ // Label 474: @9523
9311 /* 9523 */ GIM_Reject,
9312 /* 9524 */ // Label 78: @9524
9313 /* 9524 */ GIM_Try, /*On fail goto*//*Label 475*/ GIMT_Encode4(9545), // Rule ID 83 //
9314 /* 9529 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
9315 /* 9532 */ // MIs[0] dst
9316 /* 9532 */ // No operand predicates
9317 /* 9532 */ // MIs[0] __undef_to_fp_zero_match_0.x
9318 /* 9532 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9319 /* 9536 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9320 /* 9540 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9321 /* 9542 */ // Combiner Rule #76: undef_to_fp_zero @ [__undef_to_fp_zero_match_0[1]]
9322 /* 9542 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
9323 /* 9545 */ // Label 475: @9545
9324 /* 9545 */ GIM_Try, /*On fail goto*//*Label 476*/ GIMT_Encode4(9560), // Rule ID 217 //
9325 /* 9550 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
9326 /* 9553 */ // MIs[0] dst
9327 /* 9553 */ // No operand predicates
9328 /* 9553 */ // MIs[0] Operand 1
9329 /* 9553 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
9330 /* 9557 */ // Combiner Rule #164: itof_const_zero_fold_si
9331 /* 9557 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
9332 /* 9560 */ // Label 476: @9560
9333 /* 9560 */ GIM_Reject,
9334 /* 9561 */ // Label 79: @9561
9335 /* 9561 */ GIM_Try, /*On fail goto*//*Label 477*/ GIMT_Encode4(9582), // Rule ID 82 //
9336 /* 9566 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
9337 /* 9569 */ // MIs[0] dst
9338 /* 9569 */ // No operand predicates
9339 /* 9569 */ // MIs[0] __undef_to_fp_zero_match_0.x
9340 /* 9569 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9341 /* 9573 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9342 /* 9577 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9343 /* 9579 */ // Combiner Rule #76: undef_to_fp_zero @ [__undef_to_fp_zero_match_0[0]]
9344 /* 9579 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
9345 /* 9582 */ // Label 477: @9582
9346 /* 9582 */ GIM_Try, /*On fail goto*//*Label 478*/ GIMT_Encode4(9597), // Rule ID 218 //
9347 /* 9587 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
9348 /* 9590 */ // MIs[0] dst
9349 /* 9590 */ // No operand predicates
9350 /* 9590 */ // MIs[0] Operand 1
9351 /* 9590 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
9352 /* 9594 */ // Combiner Rule #165: itof_const_zero_fold_ui
9353 /* 9594 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
9354 /* 9597 */ // Label 478: @9597
9355 /* 9597 */ GIM_Reject,
9356 /* 9598 */ // Label 80: @9598
9357 /* 9598 */ GIM_Try, /*On fail goto*//*Label 479*/ GIMT_Encode4(9627), // Rule ID 26 //
9358 /* 9603 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
9359 /* 9606 */ // MIs[0] dst
9360 /* 9606 */ // No operand predicates
9361 /* 9606 */ // MIs[0] src
9362 /* 9606 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9363 /* 9610 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
9364 /* 9614 */ // MIs[1] __idempotent_prop_match_0.x
9365 /* 9614 */ // No operand predicates
9366 /* 9614 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9367 /* 9619 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9368 /* 9621 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[1]]
9369 /* 9621 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9370 /* 9626 */ GIR_EraseRootFromParent_Done,
9371 /* 9627 */ // Label 479: @9627
9372 /* 9627 */ GIM_Try, /*On fail goto*//*Label 480*/ GIMT_Encode4(9648), // Rule ID 205 //
9373 /* 9632 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
9374 /* 9635 */ // MIs[0] dst
9375 /* 9635 */ // No operand predicates
9376 /* 9635 */ // MIs[0] src0
9377 /* 9635 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9378 /* 9639 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
9379 /* 9643 */ // MIs[1] cst
9380 /* 9643 */ // No operand predicates
9381 /* 9643 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9382 /* 9645 */ // Combiner Rule #152: constant_fold_fabs
9383 /* 9645 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
9384 /* 9648 */ // Label 480: @9648
9385 /* 9648 */ GIM_Try, /*On fail goto*//*Label 481*/ GIMT_Encode4(9676), // Rule ID 315 //
9386 /* 9653 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule199Enabled),
9387 /* 9656 */ // MIs[0] dst
9388 /* 9656 */ // No operand predicates
9389 /* 9656 */ // MIs[0] tmp
9390 /* 9656 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9391 /* 9660 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
9392 /* 9664 */ // MIs[1] x
9393 /* 9664 */ // No operand predicates
9394 /* 9664 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9395 /* 9666 */ // Combiner Rule #199: fabs_fneg_fold
9396 /* 9666 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FABS),
9397 /* 9669 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9398 /* 9671 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
9399 /* 9675 */ GIR_EraseRootFromParent_Done,
9400 /* 9676 */ // Label 481: @9676
9401 /* 9676 */ GIM_Reject,
9402 /* 9677 */ // Label 81: @9677
9403 /* 9677 */ GIM_Try, /*On fail goto*//*Label 482*/ GIMT_Encode4(9688), // Rule ID 295 //
9404 /* 9682 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9405 /* 9685 */ // MIs[0] d
9406 /* 9685 */ // No operand predicates
9407 /* 9685 */ // MIs[0] mi.src0
9408 /* 9685 */ // No operand predicates
9409 /* 9685 */ // MIs[0] mi.src1
9410 /* 9685 */ // No operand predicates
9411 /* 9685 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[5]]
9412 /* 9685 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
9413 /* 9688 */ // Label 482: @9688
9414 /* 9688 */ GIM_Reject,
9415 /* 9689 */ // Label 82: @9689
9416 /* 9689 */ GIM_Try, /*On fail goto*//*Label 483*/ GIMT_Encode4(9718), // Rule ID 27 //
9417 /* 9694 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
9418 /* 9697 */ // MIs[0] dst
9419 /* 9697 */ // No operand predicates
9420 /* 9697 */ // MIs[0] src
9421 /* 9697 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9422 /* 9701 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCANONICALIZE),
9423 /* 9705 */ // MIs[1] __idempotent_prop_match_0.x
9424 /* 9705 */ // No operand predicates
9425 /* 9705 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9426 /* 9710 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9427 /* 9712 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[2]]
9428 /* 9712 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9429 /* 9717 */ GIR_EraseRootFromParent_Done,
9430 /* 9718 */ // Label 483: @9718
9431 /* 9718 */ GIM_Reject,
9432 /* 9719 */ // Label 83: @9719
9433 /* 9719 */ GIM_Try, /*On fail goto*//*Label 484*/ GIMT_Encode4(9730), // Rule ID 354 //
9434 /* 9724 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
9435 /* 9727 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FMINNUM'
9436 /* 9727 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9437 /* 9730 */ // Label 484: @9730
9438 /* 9730 */ GIM_Try, /*On fail goto*//*Label 485*/ GIMT_Encode4(9741), // Rule ID 392 //
9439 /* 9735 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
9440 /* 9738 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM'
9441 /* 9738 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
9442 /* 9741 */ // Label 485: @9741
9443 /* 9741 */ GIM_Try, /*On fail goto*//*Label 486*/ GIMT_Encode4(9752), // Rule ID 229 //
9444 /* 9746 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
9445 /* 9749 */ // MIs[0] dst
9446 /* 9749 */ // No operand predicates
9447 /* 9749 */ // MIs[0] root.src0
9448 /* 9749 */ // No operand predicates
9449 /* 9749 */ // MIs[0] root.src1
9450 /* 9749 */ // No operand predicates
9451 /* 9749 */ // Combiner Rule #171: combine_minmax_nan @ [root[0]]
9452 /* 9749 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
9453 /* 9752 */ // Label 486: @9752
9454 /* 9752 */ GIM_Try, /*On fail goto*//*Label 487*/ GIMT_Encode4(9763), // Rule ID 296 //
9455 /* 9757 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9456 /* 9760 */ // MIs[0] d
9457 /* 9760 */ // No operand predicates
9458 /* 9760 */ // MIs[0] mi.src0
9459 /* 9760 */ // No operand predicates
9460 /* 9760 */ // MIs[0] mi.src1
9461 /* 9760 */ // No operand predicates
9462 /* 9760 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[6]]
9463 /* 9760 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
9464 /* 9763 */ // Label 487: @9763
9465 /* 9763 */ GIM_Reject,
9466 /* 9764 */ // Label 84: @9764
9467 /* 9764 */ GIM_Try, /*On fail goto*//*Label 488*/ GIMT_Encode4(9775), // Rule ID 355 //
9468 /* 9769 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
9469 /* 9772 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FMAXNUM'
9470 /* 9772 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9471 /* 9775 */ // Label 488: @9775
9472 /* 9775 */ GIM_Try, /*On fail goto*//*Label 489*/ GIMT_Encode4(9786), // Rule ID 393 //
9473 /* 9780 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
9474 /* 9783 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM'
9475 /* 9783 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
9476 /* 9786 */ // Label 489: @9786
9477 /* 9786 */ GIM_Try, /*On fail goto*//*Label 490*/ GIMT_Encode4(9797), // Rule ID 230 //
9478 /* 9791 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
9479 /* 9794 */ // MIs[0] dst
9480 /* 9794 */ // No operand predicates
9481 /* 9794 */ // MIs[0] root.src0
9482 /* 9794 */ // No operand predicates
9483 /* 9794 */ // MIs[0] root.src1
9484 /* 9794 */ // No operand predicates
9485 /* 9794 */ // Combiner Rule #171: combine_minmax_nan @ [root[1]]
9486 /* 9794 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
9487 /* 9797 */ // Label 490: @9797
9488 /* 9797 */ GIM_Try, /*On fail goto*//*Label 491*/ GIMT_Encode4(9808), // Rule ID 297 //
9489 /* 9802 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9490 /* 9805 */ // MIs[0] d
9491 /* 9805 */ // No operand predicates
9492 /* 9805 */ // MIs[0] mi.src0
9493 /* 9805 */ // No operand predicates
9494 /* 9805 */ // MIs[0] mi.src1
9495 /* 9805 */ // No operand predicates
9496 /* 9805 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[7]]
9497 /* 9805 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
9498 /* 9808 */ // Label 491: @9808
9499 /* 9808 */ GIM_Reject,
9500 /* 9809 */ // Label 85: @9809
9501 /* 9809 */ GIM_Try, /*On fail goto*//*Label 492*/ GIMT_Encode4(9820), // Rule ID 394 //
9502 /* 9814 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
9503 /* 9817 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM_IEEE'
9504 /* 9817 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
9505 /* 9820 */ // Label 492: @9820
9506 /* 9820 */ GIM_Reject,
9507 /* 9821 */ // Label 86: @9821
9508 /* 9821 */ GIM_Try, /*On fail goto*//*Label 493*/ GIMT_Encode4(9832), // Rule ID 395 //
9509 /* 9826 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
9510 /* 9829 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM_IEEE'
9511 /* 9829 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
9512 /* 9832 */ // Label 493: @9832
9513 /* 9832 */ GIM_Reject,
9514 /* 9833 */ // Label 87: @9833
9515 /* 9833 */ GIM_Try, /*On fail goto*//*Label 494*/ GIMT_Encode4(9844), // Rule ID 356 //
9516 /* 9838 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
9517 /* 9841 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FMINIMUM'
9518 /* 9841 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9519 /* 9844 */ // Label 494: @9844
9520 /* 9844 */ GIM_Try, /*On fail goto*//*Label 495*/ GIMT_Encode4(9855), // Rule ID 396 //
9521 /* 9849 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
9522 /* 9852 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINIMUM'
9523 /* 9852 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
9524 /* 9855 */ // Label 495: @9855
9525 /* 9855 */ GIM_Try, /*On fail goto*//*Label 496*/ GIMT_Encode4(9866), // Rule ID 231 //
9526 /* 9860 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
9527 /* 9863 */ // MIs[0] dst
9528 /* 9863 */ // No operand predicates
9529 /* 9863 */ // MIs[0] root.src0
9530 /* 9863 */ // No operand predicates
9531 /* 9863 */ // MIs[0] root.src1
9532 /* 9863 */ // No operand predicates
9533 /* 9863 */ // Combiner Rule #171: combine_minmax_nan @ [root[2]]
9534 /* 9863 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
9535 /* 9866 */ // Label 496: @9866
9536 /* 9866 */ GIM_Try, /*On fail goto*//*Label 497*/ GIMT_Encode4(9877), // Rule ID 298 //
9537 /* 9871 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9538 /* 9874 */ // MIs[0] d
9539 /* 9874 */ // No operand predicates
9540 /* 9874 */ // MIs[0] mi.src0
9541 /* 9874 */ // No operand predicates
9542 /* 9874 */ // MIs[0] mi.src1
9543 /* 9874 */ // No operand predicates
9544 /* 9874 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[8]]
9545 /* 9874 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
9546 /* 9877 */ // Label 497: @9877
9547 /* 9877 */ GIM_Reject,
9548 /* 9878 */ // Label 88: @9878
9549 /* 9878 */ GIM_Try, /*On fail goto*//*Label 498*/ GIMT_Encode4(9889), // Rule ID 357 //
9550 /* 9883 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
9551 /* 9886 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FMAXIMUM'
9552 /* 9886 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9553 /* 9889 */ // Label 498: @9889
9554 /* 9889 */ GIM_Try, /*On fail goto*//*Label 499*/ GIMT_Encode4(9900), // Rule ID 397 //
9555 /* 9894 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
9556 /* 9897 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXIMUM'
9557 /* 9897 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
9558 /* 9900 */ // Label 499: @9900
9559 /* 9900 */ GIM_Try, /*On fail goto*//*Label 500*/ GIMT_Encode4(9911), // Rule ID 232 //
9560 /* 9905 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
9561 /* 9908 */ // MIs[0] dst
9562 /* 9908 */ // No operand predicates
9563 /* 9908 */ // MIs[0] root.src0
9564 /* 9908 */ // No operand predicates
9565 /* 9908 */ // MIs[0] root.src1
9566 /* 9908 */ // No operand predicates
9567 /* 9908 */ // Combiner Rule #171: combine_minmax_nan @ [root[3]]
9568 /* 9908 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
9569 /* 9911 */ // Label 500: @9911
9570 /* 9911 */ GIM_Try, /*On fail goto*//*Label 501*/ GIMT_Encode4(9922), // Rule ID 299 //
9571 /* 9916 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9572 /* 9919 */ // MIs[0] d
9573 /* 9919 */ // No operand predicates
9574 /* 9919 */ // MIs[0] mi.src0
9575 /* 9919 */ // No operand predicates
9576 /* 9919 */ // MIs[0] mi.src1
9577 /* 9919 */ // No operand predicates
9578 /* 9919 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[9]]
9579 /* 9919 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
9580 /* 9922 */ // Label 501: @9922
9581 /* 9922 */ GIM_Reject,
9582 /* 9923 */ // Label 89: @9923
9583 /* 9923 */ GIM_Try, /*On fail goto*//*Label 502*/ GIMT_Encode4(9934), // Rule ID 300 //
9584 /* 9928 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9585 /* 9931 */ // MIs[0] d
9586 /* 9931 */ // No operand predicates
9587 /* 9931 */ // MIs[0] mi.src0
9588 /* 9931 */ // No operand predicates
9589 /* 9931 */ // MIs[0] mi.src1
9590 /* 9931 */ // No operand predicates
9591 /* 9931 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[10]]
9592 /* 9931 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
9593 /* 9934 */ // Label 502: @9934
9594 /* 9934 */ GIM_Reject,
9595 /* 9935 */ // Label 90: @9935
9596 /* 9935 */ GIM_Try, /*On fail goto*//*Label 503*/ GIMT_Encode4(9946), // Rule ID 301 //
9597 /* 9940 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9598 /* 9943 */ // MIs[0] d
9599 /* 9943 */ // No operand predicates
9600 /* 9943 */ // MIs[0] mi.src0
9601 /* 9943 */ // No operand predicates
9602 /* 9943 */ // MIs[0] mi.src1
9603 /* 9943 */ // No operand predicates
9604 /* 9943 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[11]]
9605 /* 9943 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
9606 /* 9946 */ // Label 503: @9946
9607 /* 9946 */ GIM_Reject,
9608 /* 9947 */ // Label 91: @9947
9609 /* 9947 */ GIM_Try, /*On fail goto*//*Label 504*/ GIMT_Encode4(9958), // Rule ID 273 //
9610 /* 9952 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
9611 /* 9955 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_PTR_ADD'
9612 /* 9955 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
9613 /* 9958 */ // Label 504: @9958
9614 /* 9958 */ GIM_Try, /*On fail goto*//*Label 505*/ GIMT_Encode4(9969), // Rule ID 334 //
9615 /* 9963 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
9616 /* 9966 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_PTR_ADD'
9617 /* 9966 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9618 /* 9969 */ // Label 505: @9969
9619 /* 9969 */ GIM_Try, /*On fail goto*//*Label 506*/ GIMT_Encode4(10006), // Rule ID 219 //
9620 /* 9974 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
9621 /* 9977 */ // MIs[0] dst
9622 /* 9977 */ // No operand predicates
9623 /* 9977 */ // MIs[0] base
9624 /* 9977 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9625 /* 9981 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
9626 /* 9985 */ // MIs[1] c1reg
9627 /* 9985 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
9628 /* 9989 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
9629 /* 9993 */ // MIs[2] c1imm
9630 /* 9993 */ // No operand predicates
9631 /* 9993 */ // MIs[0] c2reg
9632 /* 9993 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
9633 /* 9997 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
9634 /* 10001 */ // MIs[3] c2imm
9635 /* 10001 */ // No operand predicates
9636 /* 10001 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
9637 /* 10003 */ // Combiner Rule #166: const_ptradd_to_i2p
9638 /* 10003 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner73),
9639 /* 10006 */ // Label 506: @10006
9640 /* 10006 */ GIM_Try, /*On fail goto*//*Label 507*/ GIMT_Encode4(10029), // Rule ID 125 //
9641 /* 10011 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
9642 /* 10014 */ // MIs[0] dst
9643 /* 10014 */ // No operand predicates
9644 /* 10014 */ // MIs[0] lhs
9645 /* 10014 */ // No operand predicates
9646 /* 10014 */ // MIs[0] Operand 2
9647 /* 10014 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
9648 /* 10018 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9649 /* 10023 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[7]]
9650 /* 10023 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9651 /* 10028 */ GIR_EraseRootFromParent_Done,
9652 /* 10029 */ // Label 507: @10029
9653 /* 10029 */ GIM_Try, /*On fail goto*//*Label 508*/ GIMT_Encode4(10049), // Rule ID 235 //
9654 /* 10034 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
9655 /* 10037 */ // MIs[0] dst
9656 /* 10037 */ // No operand predicates
9657 /* 10037 */ // MIs[0] base
9658 /* 10037 */ // No operand predicates
9659 /* 10037 */ // MIs[0] offset
9660 /* 10037 */ // No operand predicates
9661 /* 10037 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner19),
9662 /* 10041 */ // Combiner Rule #174: ptr_add_with_zero
9663 /* 10041 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_INTTOPTR),
9664 /* 10044 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9665 /* 10046 */ GIR_RootToRootCopy, /*OpIdx*/2, // offset
9666 /* 10048 */ GIR_EraseRootFromParent_Done,
9667 /* 10049 */ // Label 508: @10049
9668 /* 10049 */ GIM_Try, /*On fail goto*//*Label 509*/ GIMT_Encode4(10060), // Rule ID 168 //
9669 /* 10054 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule115Enabled),
9670 /* 10057 */ // MIs[0] dst
9671 /* 10057 */ // No operand predicates
9672 /* 10057 */ // MIs[0] base
9673 /* 10057 */ // No operand predicates
9674 /* 10057 */ // MIs[0] offset
9675 /* 10057 */ // No operand predicates
9676 /* 10057 */ // Combiner Rule #115: reassoc_ptradd
9677 /* 10057 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
9678 /* 10060 */ // Label 509: @10060
9679 /* 10060 */ GIM_Try, /*On fail goto*//*Label 510*/ GIMT_Encode4(10071), // Rule ID 170 //
9680 /* 10065 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled),
9681 /* 10068 */ // MIs[0] dst
9682 /* 10068 */ // No operand predicates
9683 /* 10068 */ // MIs[0] base
9684 /* 10068 */ // No operand predicates
9685 /* 10068 */ // MIs[0] offset
9686 /* 10068 */ // No operand predicates
9687 /* 10068 */ // Combiner Rule #117: ptr_add_immed_chain
9688 /* 10068 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner50),
9689 /* 10071 */ // Label 510: @10071
9690 /* 10071 */ GIM_Reject,
9691 /* 10072 */ // Label 92: @10072
9692 /* 10072 */ GIM_Try, /*On fail goto*//*Label 511*/ GIMT_Encode4(10083), // Rule ID 286 //
9693 /* 10077 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
9694 /* 10080 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_SMIN'
9695 /* 10080 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
9696 /* 10083 */ // Label 511: @10083
9697 /* 10083 */ GIM_Try, /*On fail goto*//*Label 512*/ GIMT_Encode4(10094), // Rule ID 345 //
9698 /* 10088 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
9699 /* 10091 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_SMIN'
9700 /* 10091 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9701 /* 10094 */ // Label 512: @10094
9702 /* 10094 */ GIM_Try, /*On fail goto*//*Label 513*/ GIMT_Encode4(10105), // Rule ID 374 //
9703 /* 10099 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9704 /* 10102 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SMIN'
9705 /* 10102 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9706 /* 10105 */ // Label 513: @10105
9707 /* 10105 */ GIM_Reject,
9708 /* 10106 */ // Label 93: @10106
9709 /* 10106 */ GIM_Try, /*On fail goto*//*Label 514*/ GIMT_Encode4(10117), // Rule ID 287 //
9710 /* 10111 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
9711 /* 10114 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_SMAX'
9712 /* 10114 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
9713 /* 10117 */ // Label 514: @10117
9714 /* 10117 */ GIM_Try, /*On fail goto*//*Label 515*/ GIMT_Encode4(10128), // Rule ID 346 //
9715 /* 10122 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
9716 /* 10125 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_SMAX'
9717 /* 10125 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9718 /* 10128 */ // Label 515: @10128
9719 /* 10128 */ GIM_Try, /*On fail goto*//*Label 516*/ GIMT_Encode4(10139), // Rule ID 375 //
9720 /* 10133 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9721 /* 10136 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SMAX'
9722 /* 10136 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9723 /* 10139 */ // Label 516: @10139
9724 /* 10139 */ GIM_Reject,
9725 /* 10140 */ // Label 94: @10140
9726 /* 10140 */ GIM_Try, /*On fail goto*//*Label 517*/ GIMT_Encode4(10151), // Rule ID 288 //
9727 /* 10145 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
9728 /* 10148 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_UMIN'
9729 /* 10148 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
9730 /* 10151 */ // Label 517: @10151
9731 /* 10151 */ GIM_Try, /*On fail goto*//*Label 518*/ GIMT_Encode4(10162), // Rule ID 347 //
9732 /* 10156 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
9733 /* 10159 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_UMIN'
9734 /* 10159 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9735 /* 10162 */ // Label 518: @10162
9736 /* 10162 */ GIM_Try, /*On fail goto*//*Label 519*/ GIMT_Encode4(10173), // Rule ID 376 //
9737 /* 10167 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9738 /* 10170 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UMIN'
9739 /* 10170 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9740 /* 10173 */ // Label 519: @10173
9741 /* 10173 */ GIM_Reject,
9742 /* 10174 */ // Label 95: @10174
9743 /* 10174 */ GIM_Try, /*On fail goto*//*Label 520*/ GIMT_Encode4(10185), // Rule ID 289 //
9744 /* 10179 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
9745 /* 10182 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_UMAX'
9746 /* 10182 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
9747 /* 10185 */ // Label 520: @10185
9748 /* 10185 */ GIM_Try, /*On fail goto*//*Label 521*/ GIMT_Encode4(10196), // Rule ID 348 //
9749 /* 10190 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
9750 /* 10193 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_UMAX'
9751 /* 10193 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9752 /* 10196 */ // Label 521: @10196
9753 /* 10196 */ GIM_Try, /*On fail goto*//*Label 522*/ GIMT_Encode4(10207), // Rule ID 377 //
9754 /* 10201 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9755 /* 10204 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UMAX'
9756 /* 10204 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9757 /* 10207 */ // Label 522: @10207
9758 /* 10207 */ GIM_Reject,
9759 /* 10208 */ // Label 96: @10208
9760 /* 10208 */ GIM_Try, /*On fail goto*//*Label 523*/ GIMT_Encode4(10229), // Rule ID 96 //
9761 /* 10213 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
9762 /* 10216 */ // MIs[0] dst
9763 /* 10216 */ // No operand predicates
9764 /* 10216 */ // MIs[0] __unary_undef_to_zero_match_0.x
9765 /* 10216 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9766 /* 10220 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9767 /* 10224 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9768 /* 10226 */ // Combiner Rule #81: unary_undef_to_zero @ [__unary_undef_to_zero_match_0[0]]
9769 /* 10226 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
9770 /* 10229 */ // Label 523: @10229
9771 /* 10229 */ GIM_Try, /*On fail goto*//*Label 524*/ GIMT_Encode4(10240), // Rule ID 312 //
9772 /* 10234 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
9773 /* 10237 */ // MIs[0] dst
9774 /* 10237 */ // No operand predicates
9775 /* 10237 */ // MIs[0] mi.src
9776 /* 10237 */ // No operand predicates
9777 /* 10237 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[5]]
9778 /* 10237 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
9779 /* 10240 */ // Label 524: @10240
9780 /* 10240 */ GIM_Reject,
9781 /* 10241 */ // Label 97: @10241
9782 /* 10241 */ GIM_Try, /*On fail goto*//*Label 525*/ GIMT_Encode4(10252), // Rule ID 203 //
9783 /* 10246 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
9784 /* 10249 */ // MIs[0] tgt
9785 /* 10249 */ // No operand predicates
9786 /* 10249 */ // Combiner Rule #150: opt_brcond_by_inverting_cond
9787 /* 10249 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner71),
9788 /* 10252 */ // Label 525: @10252
9789 /* 10252 */ GIM_Reject,
9790 /* 10253 */ // Label 98: @10253
9791 /* 10253 */ GIM_Try, /*On fail goto*//*Label 526*/ GIMT_Encode4(10264), // Rule ID 114 //
9792 /* 10258 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
9793 /* 10261 */ // Combiner Rule #87: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_INSERT_VECTOR_ELT'
9794 /* 10261 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
9795 /* 10264 */ // Label 526: @10264
9796 /* 10264 */ GIM_Try, /*On fail goto*//*Label 527*/ GIMT_Encode4(10303), // Rule ID 45 //
9797 /* 10269 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
9798 /* 10272 */ // MIs[0] root
9799 /* 10272 */ // No operand predicates
9800 /* 10272 */ // MIs[0] src
9801 /* 10272 */ // No operand predicates
9802 /* 10272 */ // MIs[0] elt
9803 /* 10272 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9804 /* 10276 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_EXTRACT_VECTOR_ELT),
9805 /* 10280 */ // MIs[1] src
9806 /* 10280 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
9807 /* 10285 */ // MIs[1] idx
9808 /* 10285 */ // No operand predicates
9809 /* 10285 */ // MIs[0] idx
9810 /* 10285 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
9811 /* 10290 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9812 /* 10295 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9813 /* 10297 */ // Combiner Rule #41: insert_vector_element_extract_vector_element
9814 /* 10297 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9815 /* 10302 */ GIR_EraseRootFromParent_Done,
9816 /* 10303 */ // Label 527: @10303
9817 /* 10303 */ GIM_Try, /*On fail goto*//*Label 528*/ GIMT_Encode4(10336), // Rule ID 31 //
9818 /* 10308 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
9819 /* 10311 */ // MIs[0] root
9820 /* 10311 */ // No operand predicates
9821 /* 10311 */ // MIs[0] src
9822 /* 10311 */ // No operand predicates
9823 /* 10311 */ // MIs[0] elt
9824 /* 10311 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9825 /* 10315 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9826 /* 10319 */ // MIs[0] idx
9827 /* 10319 */ // No operand predicates
9828 /* 10319 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
9829 /* 10323 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9830 /* 10328 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9831 /* 10330 */ // Combiner Rule #27: insert_vector_element_elt_undef
9832 /* 10330 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9833 /* 10335 */ GIR_EraseRootFromParent_Done,
9834 /* 10336 */ // Label 528: @10336
9835 /* 10336 */ GIM_Try, /*On fail goto*//*Label 529*/ GIMT_Encode4(10360), // Rule ID 30 //
9836 /* 10341 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
9837 /* 10344 */ // MIs[0] root
9838 /* 10344 */ // No operand predicates
9839 /* 10344 */ // MIs[0] src
9840 /* 10344 */ // No operand predicates
9841 /* 10344 */ // MIs[0] elt
9842 /* 10344 */ // No operand predicates
9843 /* 10344 */ // MIs[0] idx
9844 /* 10344 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
9845 /* 10348 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9846 /* 10352 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9847 /* 10354 */ // Combiner Rule #26: insert_vector_element_idx_undef
9848 /* 10354 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9849 /* 10357 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
9850 /* 10359 */ GIR_EraseRootFromParent_Done,
9851 /* 10360 */ // Label 529: @10360
9852 /* 10360 */ GIM_Try, /*On fail goto*//*Label 530*/ GIMT_Encode4(10371), // Rule ID 33 //
9853 /* 10365 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
9854 /* 10368 */ // MIs[0] dst
9855 /* 10368 */ // No operand predicates
9856 /* 10368 */ // MIs[0] src
9857 /* 10368 */ // No operand predicates
9858 /* 10368 */ // MIs[0] elt
9859 /* 10368 */ // No operand predicates
9860 /* 10368 */ // MIs[0] idx
9861 /* 10368 */ // No operand predicates
9862 /* 10368 */ // Combiner Rule #29: insert_vector_elt_oob
9863 /* 10368 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
9864 /* 10371 */ // Label 530: @10371
9865 /* 10371 */ GIM_Try, /*On fail goto*//*Label 531*/ GIMT_Encode4(10382), // Rule ID 74 //
9866 /* 10376 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
9867 /* 10379 */ // MIs[0] dst
9868 /* 10379 */ // No operand predicates
9869 /* 10379 */ // MIs[0] src
9870 /* 10379 */ // No operand predicates
9871 /* 10379 */ // MIs[0] elt
9872 /* 10379 */ // No operand predicates
9873 /* 10379 */ // MIs[0] idx
9874 /* 10379 */ // No operand predicates
9875 /* 10379 */ // Combiner Rule #70: combine_insert_vec_elts_build_vector
9876 /* 10379 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner26),
9877 /* 10382 */ // Label 531: @10382
9878 /* 10382 */ GIM_Reject,
9879 /* 10383 */ // Label 99: @10383
9880 /* 10383 */ GIM_Try, /*On fail goto*//*Label 532*/ GIMT_Encode4(10394), // Rule ID 115 //
9881 /* 10388 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
9882 /* 10391 */ // Combiner Rule #87: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
9883 /* 10391 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
9884 /* 10394 */ // Label 532: @10394
9885 /* 10394 */ GIM_Try, /*On fail goto*//*Label 533*/ GIMT_Encode4(10418), // Rule ID 43 //
9886 /* 10399 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
9887 /* 10402 */ // MIs[0] root
9888 /* 10402 */ // No operand predicates
9889 /* 10402 */ // MIs[0] src
9890 /* 10402 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9891 /* 10406 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9892 /* 10410 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/9,
9893 /* 10413 */ // MIs[1] x
9894 /* 10413 */ // No operand predicates
9895 /* 10413 */ // MIs[1] y
9896 /* 10413 */ // No operand predicates
9897 /* 10413 */ // MIs[1] z
9898 /* 10413 */ // No operand predicates
9899 /* 10413 */ // MIs[1] a
9900 /* 10413 */ // No operand predicates
9901 /* 10413 */ // MIs[1] b
9902 /* 10413 */ // No operand predicates
9903 /* 10413 */ // MIs[1] c
9904 /* 10413 */ // No operand predicates
9905 /* 10413 */ // MIs[1] d
9906 /* 10413 */ // No operand predicates
9907 /* 10413 */ // MIs[1] e
9908 /* 10413 */ // No operand predicates
9909 /* 10413 */ // MIs[0] idx
9910 /* 10413 */ // No operand predicates
9911 /* 10413 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9912 /* 10415 */ // Combiner Rule #39: extract_vector_element_build_vector_trunc8
9913 /* 10415 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
9914 /* 10418 */ // Label 533: @10418
9915 /* 10418 */ GIM_Try, /*On fail goto*//*Label 534*/ GIMT_Encode4(10442), // Rule ID 42 //
9916 /* 10423 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
9917 /* 10426 */ // MIs[0] root
9918 /* 10426 */ // No operand predicates
9919 /* 10426 */ // MIs[0] src
9920 /* 10426 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9921 /* 10430 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9922 /* 10434 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/8,
9923 /* 10437 */ // MIs[1] x
9924 /* 10437 */ // No operand predicates
9925 /* 10437 */ // MIs[1] y
9926 /* 10437 */ // No operand predicates
9927 /* 10437 */ // MIs[1] z
9928 /* 10437 */ // No operand predicates
9929 /* 10437 */ // MIs[1] a
9930 /* 10437 */ // No operand predicates
9931 /* 10437 */ // MIs[1] b
9932 /* 10437 */ // No operand predicates
9933 /* 10437 */ // MIs[1] c
9934 /* 10437 */ // No operand predicates
9935 /* 10437 */ // MIs[1] d
9936 /* 10437 */ // No operand predicates
9937 /* 10437 */ // MIs[0] idx
9938 /* 10437 */ // No operand predicates
9939 /* 10437 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9940 /* 10439 */ // Combiner Rule #38: extract_vector_element_build_vector_trunc7
9941 /* 10439 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
9942 /* 10442 */ // Label 534: @10442
9943 /* 10442 */ GIM_Try, /*On fail goto*//*Label 535*/ GIMT_Encode4(10466), // Rule ID 41 //
9944 /* 10447 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
9945 /* 10450 */ // MIs[0] root
9946 /* 10450 */ // No operand predicates
9947 /* 10450 */ // MIs[0] src
9948 /* 10450 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9949 /* 10454 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9950 /* 10458 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/7,
9951 /* 10461 */ // MIs[1] x
9952 /* 10461 */ // No operand predicates
9953 /* 10461 */ // MIs[1] y
9954 /* 10461 */ // No operand predicates
9955 /* 10461 */ // MIs[1] z
9956 /* 10461 */ // No operand predicates
9957 /* 10461 */ // MIs[1] a
9958 /* 10461 */ // No operand predicates
9959 /* 10461 */ // MIs[1] b
9960 /* 10461 */ // No operand predicates
9961 /* 10461 */ // MIs[1] c
9962 /* 10461 */ // No operand predicates
9963 /* 10461 */ // MIs[0] idx
9964 /* 10461 */ // No operand predicates
9965 /* 10461 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9966 /* 10463 */ // Combiner Rule #37: extract_vector_element_build_vector_trunc6
9967 /* 10463 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
9968 /* 10466 */ // Label 535: @10466
9969 /* 10466 */ GIM_Try, /*On fail goto*//*Label 536*/ GIMT_Encode4(10490), // Rule ID 40 //
9970 /* 10471 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
9971 /* 10474 */ // MIs[0] root
9972 /* 10474 */ // No operand predicates
9973 /* 10474 */ // MIs[0] src
9974 /* 10474 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9975 /* 10478 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9976 /* 10482 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/6,
9977 /* 10485 */ // MIs[1] x
9978 /* 10485 */ // No operand predicates
9979 /* 10485 */ // MIs[1] y
9980 /* 10485 */ // No operand predicates
9981 /* 10485 */ // MIs[1] z
9982 /* 10485 */ // No operand predicates
9983 /* 10485 */ // MIs[1] a
9984 /* 10485 */ // No operand predicates
9985 /* 10485 */ // MIs[1] b
9986 /* 10485 */ // No operand predicates
9987 /* 10485 */ // MIs[0] idx
9988 /* 10485 */ // No operand predicates
9989 /* 10485 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9990 /* 10487 */ // Combiner Rule #36: extract_vector_element_build_vector_trunc5
9991 /* 10487 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
9992 /* 10490 */ // Label 536: @10490
9993 /* 10490 */ GIM_Try, /*On fail goto*//*Label 537*/ GIMT_Encode4(10514), // Rule ID 39 //
9994 /* 10495 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
9995 /* 10498 */ // MIs[0] root
9996 /* 10498 */ // No operand predicates
9997 /* 10498 */ // MIs[0] src
9998 /* 10498 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9999 /* 10502 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
10000 /* 10506 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/5,
10001 /* 10509 */ // MIs[1] x
10002 /* 10509 */ // No operand predicates
10003 /* 10509 */ // MIs[1] y
10004 /* 10509 */ // No operand predicates
10005 /* 10509 */ // MIs[1] z
10006 /* 10509 */ // No operand predicates
10007 /* 10509 */ // MIs[1] a
10008 /* 10509 */ // No operand predicates
10009 /* 10509 */ // MIs[0] idx
10010 /* 10509 */ // No operand predicates
10011 /* 10509 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10012 /* 10511 */ // Combiner Rule #35: extract_vector_element_build_vector_trunc4
10013 /* 10511 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
10014 /* 10514 */ // Label 537: @10514
10015 /* 10514 */ GIM_Try, /*On fail goto*//*Label 538*/ GIMT_Encode4(10538), // Rule ID 38 //
10016 /* 10519 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
10017 /* 10522 */ // MIs[0] root
10018 /* 10522 */ // No operand predicates
10019 /* 10522 */ // MIs[0] src
10020 /* 10522 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10021 /* 10526 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
10022 /* 10530 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
10023 /* 10533 */ // MIs[1] x
10024 /* 10533 */ // No operand predicates
10025 /* 10533 */ // MIs[1] y
10026 /* 10533 */ // No operand predicates
10027 /* 10533 */ // MIs[1] z
10028 /* 10533 */ // No operand predicates
10029 /* 10533 */ // MIs[0] idx
10030 /* 10533 */ // No operand predicates
10031 /* 10533 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10032 /* 10535 */ // Combiner Rule #34: extract_vector_element_build_vector_trunc3
10033 /* 10535 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
10034 /* 10538 */ // Label 538: @10538
10035 /* 10538 */ GIM_Try, /*On fail goto*//*Label 539*/ GIMT_Encode4(10572), // Rule ID 34 //
10036 /* 10543 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
10037 /* 10546 */ // MIs[0] root
10038 /* 10546 */ // No operand predicates
10039 /* 10546 */ // MIs[0] src
10040 /* 10546 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10041 /* 10550 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
10042 /* 10554 */ // MIs[1] x
10043 /* 10554 */ // No operand predicates
10044 /* 10554 */ // MIs[1] value
10045 /* 10554 */ // No operand predicates
10046 /* 10554 */ // MIs[1] idx
10047 /* 10554 */ // No operand predicates
10048 /* 10554 */ // MIs[0] idx
10049 /* 10554 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
10050 /* 10559 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
10051 /* 10564 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10052 /* 10566 */ // Combiner Rule #30: extract_vector_element_not_const
10053 /* 10566 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
10054 /* 10571 */ GIR_EraseRootFromParent_Done,
10055 /* 10572 */ // Label 539: @10572
10056 /* 10572 */ GIM_Try, /*On fail goto*//*Label 540*/ GIMT_Encode4(10593), // Rule ID 35 //
10057 /* 10577 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
10058 /* 10580 */ // MIs[0] root
10059 /* 10580 */ // No operand predicates
10060 /* 10580 */ // MIs[0] src
10061 /* 10580 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10062 /* 10584 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
10063 /* 10588 */ // MIs[1] x
10064 /* 10588 */ // No operand predicates
10065 /* 10588 */ // MIs[1] value
10066 /* 10588 */ // No operand predicates
10067 /* 10588 */ // MIs[1] idx2
10068 /* 10588 */ // No operand predicates
10069 /* 10588 */ // MIs[0] idx1
10070 /* 10588 */ // No operand predicates
10071 /* 10588 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10072 /* 10590 */ // Combiner Rule #31: extract_vector_element_different_indices
10073 /* 10590 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
10074 /* 10593 */ // Label 540: @10593
10075 /* 10593 */ GIM_Try, /*On fail goto*//*Label 541*/ GIMT_Encode4(10622), // Rule ID 44 //
10076 /* 10598 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
10077 /* 10601 */ // MIs[0] root
10078 /* 10601 */ // No operand predicates
10079 /* 10601 */ // MIs[0] src
10080 /* 10601 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10081 /* 10605 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHUFFLE_VECTOR),
10082 /* 10609 */ // MIs[1] src1
10083 /* 10609 */ // No operand predicates
10084 /* 10609 */ // MIs[1] src2
10085 /* 10609 */ // No operand predicates
10086 /* 10609 */ // MIs[1] mask
10087 /* 10609 */ // No operand predicates
10088 /* 10609 */ // MIs[0] idx
10089 /* 10609 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
10090 /* 10613 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
10091 /* 10617 */ // MIs[2] imm
10092 /* 10617 */ // No operand predicates
10093 /* 10617 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
10094 /* 10619 */ // Combiner Rule #40: extract_vector_element_shuffle_vector
10095 /* 10619 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
10096 /* 10622 */ // Label 541: @10622
10097 /* 10622 */ GIM_Try, /*On fail goto*//*Label 542*/ GIMT_Encode4(10646), // Rule ID 37 //
10098 /* 10627 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
10099 /* 10630 */ // MIs[0] root
10100 /* 10630 */ // No operand predicates
10101 /* 10630 */ // MIs[0] src
10102 /* 10630 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10103 /* 10634 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
10104 /* 10638 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
10105 /* 10641 */ // MIs[1] x
10106 /* 10641 */ // No operand predicates
10107 /* 10641 */ // MIs[1] y
10108 /* 10641 */ // No operand predicates
10109 /* 10641 */ // MIs[0] idx
10110 /* 10641 */ // No operand predicates
10111 /* 10641 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10112 /* 10643 */ // Combiner Rule #33: extract_vector_element_build_vector_trunc2
10113 /* 10643 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
10114 /* 10646 */ // Label 542: @10646
10115 /* 10646 */ GIM_Try, /*On fail goto*//*Label 543*/ GIMT_Encode4(10678), // Rule ID 36 //
10116 /* 10651 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
10117 /* 10654 */ // MIs[0] root
10118 /* 10654 */ // No operand predicates
10119 /* 10654 */ // MIs[0] src
10120 /* 10654 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10121 /* 10658 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
10122 /* 10662 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
10123 /* 10665 */ // MIs[1] unused
10124 /* 10665 */ // No operand predicates
10125 /* 10665 */ // MIs[0] idx
10126 /* 10665 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
10127 /* 10669 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
10128 /* 10673 */ // MIs[2] imm
10129 /* 10673 */ // No operand predicates
10130 /* 10673 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
10131 /* 10675 */ // Combiner Rule #32: extract_vector_element_build_vector
10132 /* 10675 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
10133 /* 10678 */ // Label 543: @10678
10134 /* 10678 */ GIM_Try, /*On fail goto*//*Label 544*/ GIMT_Encode4(10702), // Rule ID 28 //
10135 /* 10683 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
10136 /* 10686 */ // MIs[0] root
10137 /* 10686 */ // No operand predicates
10138 /* 10686 */ // MIs[0] __extract_vector_element_undef_match_0.x
10139 /* 10686 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10140 /* 10690 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10141 /* 10694 */ // MIs[0] __extract_vector_element_undef_match_0.y
10142 /* 10694 */ // No operand predicates
10143 /* 10694 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10144 /* 10696 */ // Combiner Rule #25: extract_vector_element_undef @ [__extract_vector_element_undef_match_0[0]]
10145 /* 10696 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10146 /* 10699 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
10147 /* 10701 */ GIR_EraseRootFromParent_Done,
10148 /* 10702 */ // Label 544: @10702
10149 /* 10702 */ GIM_Try, /*On fail goto*//*Label 545*/ GIMT_Encode4(10726), // Rule ID 29 //
10150 /* 10707 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
10151 /* 10710 */ // MIs[0] root
10152 /* 10710 */ // No operand predicates
10153 /* 10710 */ // MIs[0] __extract_vector_element_undef_match_0.x
10154 /* 10710 */ // No operand predicates
10155 /* 10710 */ // MIs[0] __extract_vector_element_undef_match_0.y
10156 /* 10710 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
10157 /* 10714 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10158 /* 10718 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10159 /* 10720 */ // Combiner Rule #25: extract_vector_element_undef @ [__extract_vector_element_undef_match_0[1]]
10160 /* 10720 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10161 /* 10723 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
10162 /* 10725 */ GIR_EraseRootFromParent_Done,
10163 /* 10726 */ // Label 545: @10726
10164 /* 10726 */ GIM_Try, /*On fail goto*//*Label 546*/ GIMT_Encode4(10737), // Rule ID 32 //
10165 /* 10731 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
10166 /* 10734 */ // MIs[0] dst
10167 /* 10734 */ // No operand predicates
10168 /* 10734 */ // MIs[0] src
10169 /* 10734 */ // No operand predicates
10170 /* 10734 */ // MIs[0] idx
10171 /* 10734 */ // No operand predicates
10172 /* 10734 */ // Combiner Rule #28: match_extract_of_element
10173 /* 10734 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
10174 /* 10737 */ // Label 546: @10737
10175 /* 10737 */ GIM_Try, /*On fail goto*//*Label 547*/ GIMT_Encode4(10748), // Rule ID 75 //
10176 /* 10742 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
10177 /* 10745 */ // MIs[0] dst
10178 /* 10745 */ // No operand predicates
10179 /* 10745 */ // MIs[0] src
10180 /* 10745 */ // No operand predicates
10181 /* 10745 */ // MIs[0] idx
10182 /* 10745 */ // No operand predicates
10183 /* 10745 */ // Combiner Rule #71: extract_vec_elt_build_vec
10184 /* 10745 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
10185 /* 10748 */ // Label 547: @10748
10186 /* 10748 */ GIM_Try, /*On fail goto*//*Label 548*/ GIMT_Encode4(10759), // Rule ID 81 //
10187 /* 10753 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
10188 /* 10756 */ // MIs[0] dst
10189 /* 10756 */ // No operand predicates
10190 /* 10756 */ // MIs[0] src
10191 /* 10756 */ // No operand predicates
10192 /* 10756 */ // MIs[0] idx
10193 /* 10756 */ // No operand predicates
10194 /* 10756 */ // Combiner Rule #75: combine_extracted_vector_load
10195 /* 10756 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
10196 /* 10759 */ // Label 548: @10759
10197 /* 10759 */ GIM_Reject,
10198 /* 10760 */ // Label 100: @10760
10199 /* 10760 */ GIM_Try, /*On fail goto*//*Label 549*/ GIMT_Encode4(10771), // Rule ID 110 //
10200 /* 10765 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
10201 /* 10768 */ // Combiner Rule #84: propagate_undef_all_ops; wip_match_opcode 'G_SHUFFLE_VECTOR'
10202 /* 10768 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
10203 /* 10771 */ // Label 549: @10771
10204 /* 10771 */ GIM_Try, /*On fail goto*//*Label 550*/ GIMT_Encode4(10792), // Rule ID 412 //
10205 /* 10776 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule243Enabled),
10206 /* 10779 */ // MIs[0] root
10207 /* 10779 */ // No operand predicates
10208 /* 10779 */ // MIs[0] src1
10209 /* 10779 */ // No operand predicates
10210 /* 10779 */ // MIs[0] undef
10211 /* 10779 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
10212 /* 10783 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10213 /* 10787 */ // MIs[0] mask
10214 /* 10787 */ // No operand predicates
10215 /* 10787 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10216 /* 10789 */ // Combiner Rule #243: combine_shuffle_undef_rhs
10217 /* 10789 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
10218 /* 10792 */ // Label 550: @10792
10219 /* 10792 */ GIM_Try, /*On fail goto*//*Label 551*/ GIMT_Encode4(10810), // Rule ID 112 //
10220 /* 10797 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
10221 /* 10800 */ // MIs[0] dst
10222 /* 10800 */ // No operand predicates
10223 /* 10800 */ // MIs[0] src1
10224 /* 10800 */ // No operand predicates
10225 /* 10800 */ // MIs[0] src2
10226 /* 10800 */ // No operand predicates
10227 /* 10800 */ // MIs[0] mask
10228 /* 10800 */ // No operand predicates
10229 /* 10800 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner5),
10230 /* 10804 */ // Combiner Rule #85: propagate_undef_shuffle_mask
10231 /* 10804 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10232 /* 10807 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10233 /* 10809 */ GIR_EraseRootFromParent_Done,
10234 /* 10810 */ // Label 551: @10810
10235 /* 10810 */ GIM_Try, /*On fail goto*//*Label 552*/ GIMT_Encode4(10821), // Rule ID 411 //
10236 /* 10815 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule242Enabled),
10237 /* 10818 */ // MIs[0] dst
10238 /* 10818 */ // No operand predicates
10239 /* 10818 */ // MIs[0] src1
10240 /* 10818 */ // No operand predicates
10241 /* 10818 */ // MIs[0] src2
10242 /* 10818 */ // No operand predicates
10243 /* 10818 */ // MIs[0] mask
10244 /* 10818 */ // No operand predicates
10245 /* 10818 */ // Combiner Rule #242: combine_shuffle_concat
10246 /* 10818 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
10247 /* 10821 */ // Label 552: @10821
10248 /* 10821 */ GIM_Try, /*On fail goto*//*Label 553*/ GIMT_Encode4(10832), // Rule ID 413 //
10249 /* 10826 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule244Enabled),
10250 /* 10829 */ // MIs[0] dst
10251 /* 10829 */ // No operand predicates
10252 /* 10829 */ // MIs[0] src1
10253 /* 10829 */ // No operand predicates
10254 /* 10829 */ // MIs[0] src2
10255 /* 10829 */ // No operand predicates
10256 /* 10829 */ // MIs[0] mask
10257 /* 10829 */ // No operand predicates
10258 /* 10829 */ // Combiner Rule #244: combine_shuffle_disjoint_mask
10259 /* 10829 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
10260 /* 10832 */ // Label 553: @10832
10261 /* 10832 */ GIM_Reject,
10262 /* 10833 */ // Label 101: @10833
10263 /* 10833 */ GIM_Try, /*On fail goto*//*Label 554*/ GIMT_Encode4(10844), // Rule ID 309 //
10264 /* 10838 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
10265 /* 10841 */ // MIs[0] dst
10266 /* 10841 */ // No operand predicates
10267 /* 10841 */ // MIs[0] mi.src
10268 /* 10841 */ // No operand predicates
10269 /* 10841 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[2]]
10270 /* 10841 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
10271 /* 10844 */ // Label 554: @10844
10272 /* 10844 */ GIM_Try, /*On fail goto*//*Label 555*/ GIMT_Encode4(10855), // Rule ID 437 //
10273 /* 10849 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule266Enabled),
10274 /* 10852 */ // MIs[0] dst
10275 /* 10852 */ // No operand predicates
10276 /* 10852 */ // MIs[0] src
10277 /* 10852 */ // No operand predicates
10278 /* 10852 */ // Combiner Rule #266: cttz_to_cttz_zero_poison
10279 /* 10852 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner147),
10280 /* 10855 */ // Label 555: @10855
10281 /* 10855 */ GIM_Reject,
10282 /* 10856 */ // Label 102: @10856
10283 /* 10856 */ GIM_Try, /*On fail goto*//*Label 556*/ GIMT_Encode4(10867), // Rule ID 310 //
10284 /* 10861 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
10285 /* 10864 */ // MIs[0] dst
10286 /* 10864 */ // No operand predicates
10287 /* 10864 */ // MIs[0] mi.src
10288 /* 10864 */ // No operand predicates
10289 /* 10864 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[3]]
10290 /* 10864 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
10291 /* 10867 */ // Label 556: @10867
10292 /* 10867 */ GIM_Reject,
10293 /* 10868 */ // Label 103: @10868
10294 /* 10868 */ GIM_Try, /*On fail goto*//*Label 557*/ GIMT_Encode4(10879), // Rule ID 307 //
10295 /* 10873 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
10296 /* 10876 */ // MIs[0] dst
10297 /* 10876 */ // No operand predicates
10298 /* 10876 */ // MIs[0] mi.src
10299 /* 10876 */ // No operand predicates
10300 /* 10876 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[0]]
10301 /* 10876 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
10302 /* 10879 */ // Label 557: @10879
10303 /* 10879 */ GIM_Try, /*On fail goto*//*Label 558*/ GIMT_Encode4(10890), // Rule ID 434 //
10304 /* 10884 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule263Enabled),
10305 /* 10887 */ // MIs[0] dst
10306 /* 10887 */ // No operand predicates
10307 /* 10887 */ // MIs[0] src
10308 /* 10887 */ // No operand predicates
10309 /* 10887 */ // Combiner Rule #263: ctlz_to_ctls
10310 /* 10887 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner146),
10311 /* 10890 */ // Label 558: @10890
10312 /* 10890 */ GIM_Try, /*On fail goto*//*Label 559*/ GIMT_Encode4(10901), // Rule ID 436 //
10313 /* 10895 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule265Enabled),
10314 /* 10898 */ // MIs[0] dst
10315 /* 10898 */ // No operand predicates
10316 /* 10898 */ // MIs[0] src
10317 /* 10898 */ // No operand predicates
10318 /* 10898 */ // Combiner Rule #265: ctlz_to_ctlz_zero_poison
10319 /* 10898 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner147),
10320 /* 10901 */ // Label 559: @10901
10321 /* 10901 */ GIM_Reject,
10322 /* 10902 */ // Label 104: @10902
10323 /* 10902 */ GIM_Try, /*On fail goto*//*Label 560*/ GIMT_Encode4(10913), // Rule ID 308 //
10324 /* 10907 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
10325 /* 10910 */ // MIs[0] dst
10326 /* 10910 */ // No operand predicates
10327 /* 10910 */ // MIs[0] mi.src
10328 /* 10910 */ // No operand predicates
10329 /* 10910 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[1]]
10330 /* 10910 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
10331 /* 10913 */ // Label 560: @10913
10332 /* 10913 */ GIM_Try, /*On fail goto*//*Label 561*/ GIMT_Encode4(10924), // Rule ID 435 //
10333 /* 10918 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule264Enabled),
10334 /* 10921 */ // MIs[0] dst
10335 /* 10921 */ // No operand predicates
10336 /* 10921 */ // MIs[0] src
10337 /* 10921 */ // No operand predicates
10338 /* 10921 */ // Combiner Rule #264: ctlz_zero_poison_to_ctls
10339 /* 10921 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner146),
10340 /* 10924 */ // Label 561: @10924
10341 /* 10924 */ GIM_Reject,
10342 /* 10925 */ // Label 105: @10925
10343 /* 10925 */ GIM_Try, /*On fail goto*//*Label 562*/ GIMT_Encode4(10936), // Rule ID 311 //
10344 /* 10930 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
10345 /* 10933 */ // MIs[0] dst
10346 /* 10933 */ // No operand predicates
10347 /* 10933 */ // MIs[0] mi.src
10348 /* 10933 */ // No operand predicates
10349 /* 10933 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[4]]
10350 /* 10933 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
10351 /* 10936 */ // Label 562: @10936
10352 /* 10936 */ GIM_Reject,
10353 /* 10937 */ // Label 106: @10937
10354 /* 10937 */ GIM_Try, /*On fail goto*//*Label 563*/ GIMT_Encode4(10948), // Rule ID 313 //
10355 /* 10942 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
10356 /* 10945 */ // MIs[0] dst
10357 /* 10945 */ // No operand predicates
10358 /* 10945 */ // MIs[0] mi.src
10359 /* 10945 */ // No operand predicates
10360 /* 10945 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[6]]
10361 /* 10945 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
10362 /* 10948 */ // Label 563: @10948
10363 /* 10948 */ GIM_Reject,
10364 /* 10949 */ // Label 107: @10949
10365 /* 10949 */ GIM_Try, /*On fail goto*//*Label 564*/ GIMT_Encode4(10993), // Rule ID 263 //
10366 /* 10954 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
10367 /* 10957 */ // MIs[0] d
10368 /* 10957 */ // No operand predicates
10369 /* 10957 */ // MIs[0] src
10370 /* 10957 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10371 /* 10961 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
10372 /* 10965 */ // MIs[1] rev
10373 /* 10965 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
10374 /* 10969 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
10375 /* 10973 */ // MIs[2] val
10376 /* 10973 */ // No operand predicates
10377 /* 10973 */ // MIs[1] amt
10378 /* 10973 */ // No operand predicates
10379 /* 10973 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner21),
10380 /* 10977 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
10381 /* 10979 */ // Combiner Rule #187: bitreverse_lshr
10382 /* 10979 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
10383 /* 10982 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
10384 /* 10984 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
10385 /* 10988 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
10386 /* 10992 */ GIR_EraseRootFromParent_Done,
10387 /* 10993 */ // Label 564: @10993
10388 /* 10993 */ GIM_Try, /*On fail goto*//*Label 565*/ GIMT_Encode4(11037), // Rule ID 262 //
10389 /* 10998 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
10390 /* 11001 */ // MIs[0] d
10391 /* 11001 */ // No operand predicates
10392 /* 11001 */ // MIs[0] src
10393 /* 11001 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10394 /* 11005 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
10395 /* 11009 */ // MIs[1] rev
10396 /* 11009 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
10397 /* 11013 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
10398 /* 11017 */ // MIs[2] val
10399 /* 11017 */ // No operand predicates
10400 /* 11017 */ // MIs[1] amt
10401 /* 11017 */ // No operand predicates
10402 /* 11017 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner20),
10403 /* 11021 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
10404 /* 11023 */ // Combiner Rule #186: bitreverse_shl
10405 /* 11023 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_LSHR),
10406 /* 11026 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
10407 /* 11028 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
10408 /* 11032 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
10409 /* 11036 */ GIR_EraseRootFromParent_Done,
10410 /* 11037 */ // Label 565: @11037
10411 /* 11037 */ GIM_Try, /*On fail goto*//*Label 566*/ GIMT_Encode4(11048), // Rule ID 314 //
10412 /* 11042 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
10413 /* 11045 */ // MIs[0] dst
10414 /* 11045 */ // No operand predicates
10415 /* 11045 */ // MIs[0] mi.src
10416 /* 11045 */ // No operand predicates
10417 /* 11045 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[7]]
10418 /* 11045 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
10419 /* 11048 */ // Label 566: @11048
10420 /* 11048 */ GIM_Reject,
10421 /* 11049 */ // Label 108: @11049
10422 /* 11049 */ GIM_Try, /*On fail goto*//*Label 567*/ GIMT_Encode4(11070), // Rule ID 210 //
10423 /* 11054 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
10424 /* 11057 */ // MIs[0] dst
10425 /* 11057 */ // No operand predicates
10426 /* 11057 */ // MIs[0] src0
10427 /* 11057 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10428 /* 11061 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
10429 /* 11065 */ // MIs[1] cst
10430 /* 11065 */ // No operand predicates
10431 /* 11065 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10432 /* 11067 */ // Combiner Rule #157: constant_fold_fceil
10433 /* 11067 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
10434 /* 11070 */ // Label 567: @11070
10435 /* 11070 */ GIM_Reject,
10436 /* 11071 */ // Label 109: @11071
10437 /* 11071 */ GIM_Try, /*On fail goto*//*Label 568*/ GIMT_Encode4(11092), // Rule ID 206 //
10438 /* 11076 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
10439 /* 11079 */ // MIs[0] dst
10440 /* 11079 */ // No operand predicates
10441 /* 11079 */ // MIs[0] src0
10442 /* 11079 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10443 /* 11083 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
10444 /* 11087 */ // MIs[1] cst
10445 /* 11087 */ // No operand predicates
10446 /* 11087 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10447 /* 11089 */ // Combiner Rule #153: constant_fold_fsqrt
10448 /* 11089 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
10449 /* 11092 */ // Label 568: @11092
10450 /* 11092 */ GIM_Reject,
10451 /* 11093 */ // Label 110: @11093
10452 /* 11093 */ GIM_Try, /*On fail goto*//*Label 569*/ GIMT_Encode4(11114), // Rule ID 211 //
10453 /* 11098 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
10454 /* 11101 */ // MIs[0] dst
10455 /* 11101 */ // No operand predicates
10456 /* 11101 */ // MIs[0] src0
10457 /* 11101 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10458 /* 11105 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
10459 /* 11109 */ // MIs[1] cst
10460 /* 11109 */ // No operand predicates
10461 /* 11109 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10462 /* 11111 */ // Combiner Rule #158: constant_fold_ffloor
10463 /* 11111 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
10464 /* 11114 */ // Label 569: @11114
10465 /* 11114 */ GIM_Reject,
10466 /* 11115 */ // Label 111: @11115
10467 /* 11115 */ GIM_Try, /*On fail goto*//*Label 570*/ GIMT_Encode4(11136), // Rule ID 215 //
10468 /* 11120 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
10469 /* 11123 */ // MIs[0] dst
10470 /* 11123 */ // No operand predicates
10471 /* 11123 */ // MIs[0] src0
10472 /* 11123 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10473 /* 11127 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
10474 /* 11131 */ // MIs[1] cst
10475 /* 11131 */ // No operand predicates
10476 /* 11131 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10477 /* 11133 */ // Combiner Rule #162: constant_fold_frint
10478 /* 11133 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
10479 /* 11136 */ // Label 570: @11136
10480 /* 11136 */ GIM_Reject,
10481 /* 11137 */ // Label 112: @11137
10482 /* 11137 */ GIM_Try, /*On fail goto*//*Label 571*/ GIMT_Encode4(11158), // Rule ID 216 //
10483 /* 11142 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
10484 /* 11145 */ // MIs[0] dst
10485 /* 11145 */ // No operand predicates
10486 /* 11145 */ // MIs[0] src0
10487 /* 11145 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10488 /* 11149 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
10489 /* 11153 */ // MIs[1] cst
10490 /* 11153 */ // No operand predicates
10491 /* 11153 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10492 /* 11155 */ // Combiner Rule #163: constant_fold_fnearbyint
10493 /* 11155 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
10494 /* 11158 */ // Label 571: @11158
10495 /* 11158 */ GIM_Reject,
10496 /* 11159 */ // Label 113: @11159
10497 /* 11159 */ GIM_Reject,
10498 /* 11160 */ }; // Size: 11160 bytes
10499 return MatchTable0;
10500}
10501#undef GIMT_Encode2
10502#undef GIMT_Encode4
10503#undef GIMT_Encode8
10504
10505
10506#endif // GET_GICOMBINER_IMPL
10507
10508#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
10509
10510AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
10511AvailableFunctionFeatures()
10512
10513#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
10514
10515#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
10516
10517, State(0),
10518ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
10519
10520#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
10521
10522