1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* AArch64PreLegalizerCombinerImpl 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 AArch64PreLegalizerCombinerImplRuleConfig {
23 SparseBitVector<> DisabledRules;
24
25 bool isRuleEnabled(unsigned RuleID) const;
26 bool parseCommandLineOption();
27 bool setRuleEnabled(StringRef RuleIdentifier);
28 bool setRuleDisabled(StringRef RuleIdentifier);
29};
30
31static std::optional<uint64_t> getRuleIdxForIdentifier(StringRef RuleIdentifier) {
32 uint64_t I;
33 // getAtInteger(...) returns false on success
34 bool Parsed = !RuleIdentifier.getAsInteger(0, I);
35 if (Parsed)
36 return I;
37
38#ifndef NDEBUG
39 switch (RuleIdentifier.size()) {
40 default: break;
41 case 9: // 5 strings to match.
42 switch (RuleIdentifier[0]) {
43 default: break;
44 case 'a': // 1 string to match.
45 if (memcmp(RuleIdentifier.data()+1, "dd_shift", 8) != 0)
46 break;
47 return 320; // "add_shift"
48 case 'c': // 1 string to match.
49 if (memcmp(RuleIdentifier.data()+1, "opy_prop", 8) != 0)
50 break;
51 return 19; // "copy_prop"
52 case 'm': // 1 string to match.
53 if (memcmp(RuleIdentifier.data()+1, "atch_ors", 8) != 0)
54 break;
55 return 279; // "match_ors"
56 case 'n': // 1 string to match.
57 if (memcmp(RuleIdentifier.data()+1, "neg_zext", 8) != 0)
58 break;
59 return 290; // "nneg_zext"
60 case 'o': // 1 string to match.
61 if (memcmp(RuleIdentifier.data()+1, "r_xor_or", 8) != 0)
62 break;
63 return 284; // "or_xor_or"
64 }
65 break;
66 case 10: // 11 strings to match.
67 switch (RuleIdentifier[0]) {
68 default: break;
69 case 'S': // 2 strings to match.
70 if (memcmp(RuleIdentifier.data()+1, "ub", 2) != 0)
71 break;
72 switch (RuleIdentifier[3]) {
73 default: break;
74 case 'S': // 1 string to match.
75 if (memcmp(RuleIdentifier.data()+4, "maxSub", 6) != 0)
76 break;
77 return 325; // "SubSmaxSub"
78 case 'U': // 1 string to match.
79 if (memcmp(RuleIdentifier.data()+4, "maxSub", 6) != 0)
80 break;
81 return 326; // "SubUmaxSub"
82 }
83 break;
84 case 'e': // 1 string to match.
85 if (memcmp(RuleIdentifier.data()+1, "mit_bzero", 9) != 0)
86 break;
87 return 350; // "emit_bzero"
88 case 'm': // 2 strings to match.
89 switch (RuleIdentifier[1]) {
90 default: break;
91 case 'a': // 1 string to match.
92 if (memcmp(RuleIdentifier.data()+2, "tch_ands", 8) != 0)
93 break;
94 return 278; // "match_ands"
95 case 'u': // 1 string to match.
96 if (memcmp(RuleIdentifier.data()+2, "l_to_shl", 8) != 0)
97 break;
98 return 20; // "mul_to_shl"
99 }
100 break;
101 case 'o': // 1 string to match.
102 if (memcmp(RuleIdentifier.data()+1, "r_xor_and", 9) != 0)
103 break;
104 return 285; // "or_xor_and"
105 case 'p': // 1 string to match.
106 if (memcmp(RuleIdentifier.data()+1, "2i_to_i2p", 9) != 0)
107 break;
108 return 97; // "p2i_to_i2p"
109 case 's': // 3 strings to match.
110 switch (RuleIdentifier[1]) {
111 default: break;
112 case 'e': // 2 strings to match.
113 switch (RuleIdentifier[2]) {
114 default: break;
115 case 'l': // 1 string to match.
116 if (memcmp(RuleIdentifier.data()+3, "ect_not", 7) != 0)
117 break;
118 return 143; // "select_not"
119 case 'x': // 1 string to match.
120 if (memcmp(RuleIdentifier.data()+3, "t_trunc", 7) != 0)
121 break;
122 return 288; // "sext_trunc"
123 }
124 break;
125 case 'u': // 1 string to match.
126 if (memcmp(RuleIdentifier.data()+2, "b_to_add", 8) != 0)
127 break;
128 return 21; // "sub_to_add"
129 }
130 break;
131 case 'z': // 1 string to match.
132 if (memcmp(RuleIdentifier.data()+1, "ext_trunc", 9) != 0)
133 break;
134 return 289; // "zext_trunc"
135 }
136 break;
137 case 11: // 6 strings to match.
138 switch (RuleIdentifier[0]) {
139 default: break;
140 case 'a': // 1 string to match.
141 if (memcmp(RuleIdentifier.data()+1, "dd_sub_reg", 10) != 0)
142 break;
143 return 105; // "add_sub_reg"
144 case 't': // 4 strings to match.
145 if (memcmp(RuleIdentifier.data()+1, "runc_", 5) != 0)
146 break;
147 switch (RuleIdentifier[6]) {
148 default: break;
149 case 's': // 3 strings to match.
150 switch (RuleIdentifier[7]) {
151 default: break;
152 case 'h': // 1 string to match.
153 if (memcmp(RuleIdentifier.data()+8, "ift", 3) != 0)
154 break;
155 return 154; // "trunc_shift"
156 case 's': // 2 strings to match.
157 if (memcmp(RuleIdentifier.data()+8, "at", 2) != 0)
158 break;
159 switch (RuleIdentifier[10]) {
160 default: break;
161 case 's': // 1 string to match.
162 return 311; // "trunc_ssats"
163 case 'u': // 1 string to match.
164 return 312; // "trunc_ssatu"
165 }
166 break;
167 }
168 break;
169 case 'u': // 1 string to match.
170 if (memcmp(RuleIdentifier.data()+7, "satu", 4) != 0)
171 break;
172 return 313; // "trunc_usatu"
173 }
174 break;
175 case 'u': // 1 string to match.
176 if (memcmp(RuleIdentifier.data()+1, "nmerge_cst", 10) != 0)
177 break;
178 return 298; // "unmerge_cst"
179 }
180 break;
181 case 12: // 11 strings to match.
182 switch (RuleIdentifier[0]) {
183 default: break;
184 case 'A': // 1 string to match.
185 if (memcmp(RuleIdentifier.data()+1, "PlusBMinusB", 11) != 0)
186 break;
187 return 4; // "APlusBMinusB"
188 case 'B': // 1 string to match.
189 if (memcmp(RuleIdentifier.data()+1, "MinusAPlusA", 11) != 0)
190 break;
191 return 5; // "BMinusAPlusA"
192 case 'c': // 1 string to match.
193 if (memcmp(RuleIdentifier.data()+1, "tlz_to_ctls", 11) != 0)
194 break;
195 return 316; // "ctlz_to_ctls"
196 case 'f': // 1 string to match.
197 if (memcmp(RuleIdentifier.data()+1, "sub_to_fneg", 11) != 0)
198 break;
199 return 248; // "fsub_to_fneg"
200 case 'm': // 1 string to match.
201 if (memcmp(RuleIdentifier.data()+1, "ulh_to_lshr", 11) != 0)
202 break;
203 return 216; // "mulh_to_lshr"
204 case 'n': // 1 string to match.
205 if (memcmp(RuleIdentifier.data()+1, "ot_cmp_fold", 11) != 0)
206 break;
207 return 155; // "not_cmp_fold"
208 case 'r': // 1 string to match.
209 if (memcmp(RuleIdentifier.data()+1, "edundant_or", 11) != 0)
210 break;
211 return 150; // "redundant_or"
212 case 's': // 2 strings to match.
213 switch (RuleIdentifier[1]) {
214 default: break;
215 case 'd': // 1 string to match.
216 if (memcmp(RuleIdentifier.data()+2, "iv_by_pow2", 10) != 0)
217 break;
218 return 239; // "sdiv_by_pow2"
219 case 'e': // 1 string to match.
220 if (memcmp(RuleIdentifier.data()+2, "xt_of_sext", 10) != 0)
221 break;
222 return 53; // "sext_of_sext"
223 }
224 break;
225 case 'u': // 1 string to match.
226 if (memcmp(RuleIdentifier.data()+1, "div_by_pow2", 11) != 0)
227 break;
228 return 238; // "udiv_by_pow2"
229 case 'z': // 1 string to match.
230 if (memcmp(RuleIdentifier.data()+1, "ext_of_zext", 11) != 0)
231 break;
232 return 51; // "zext_of_zext"
233 }
234 break;
235 case 13: // 18 strings to match.
236 switch (RuleIdentifier[0]) {
237 default: break;
238 case 'A': // 2 strings to match.
239 if (memcmp(RuleIdentifier.data()+1, "MinusBMinus", 11) != 0)
240 break;
241 switch (RuleIdentifier[12]) {
242 default: break;
243 case 'A': // 1 string to match.
244 return 12; // "AMinusBMinusA"
245 case 'C': // 1 string to match.
246 return 9; // "AMinusBMinusC"
247 }
248 break;
249 case 'a': // 1 string to match.
250 if (memcmp(RuleIdentifier.data()+1, "dd_of_vscale", 12) != 0)
251 break;
252 return 42; // "add_of_vscale"
253 case 'l': // 1 string to match.
254 if (memcmp(RuleIdentifier.data()+1, "oad_and_mask", 12) != 0)
255 break;
256 return 74; // "load_and_mask"
257 case 'm': // 3 strings to match.
258 switch (RuleIdentifier[1]) {
259 default: break;
260 case 'a': // 1 string to match.
261 if (memcmp(RuleIdentifier.data()+2, "tch_selects", 11) != 0)
262 break;
263 return 141; // "match_selects"
264 case 'e': // 1 string to match.
265 if (memcmp(RuleIdentifier.data()+2, "rge_unmerge", 11) != 0)
266 break;
267 return 297; // "merge_unmerge"
268 case 'u': // 1 string to match.
269 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
270 break;
271 return 43; // "mul_of_vscale"
272 }
273 break;
274 case 'r': // 1 string to match.
275 if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
276 break;
277 return 149; // "redundant_and"
278 case 's': // 6 strings to match.
279 switch (RuleIdentifier[1]) {
280 default: break;
281 case 'a': // 1 string to match.
282 if (memcmp(RuleIdentifier.data()+2, "me_val_zero", 11) != 0)
283 break;
284 return 94; // "same_val_zero"
285 case 'd': // 1 string to match.
286 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
287 break;
288 return 241; // "sdiv_by_const"
289 case 'h': // 1 string to match.
290 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
291 break;
292 return 44; // "shl_of_vscale"
293 case 'r': // 1 string to match.
294 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
295 break;
296 return 237; // "srem_by_const"
297 case 'u': // 2 strings to match.
298 if (memcmp(RuleIdentifier.data()+2, "b_", 2) != 0)
299 break;
300 switch (RuleIdentifier[4]) {
301 default: break;
302 case 'm': // 1 string to match.
303 if (memcmp(RuleIdentifier.data()+5, "inus_one", 8) != 0)
304 break;
305 return 323; // "sub_minus_one"
306 case 'o': // 1 string to match.
307 if (memcmp(RuleIdentifier.data()+5, "f_vscale", 8) != 0)
308 break;
309 return 45; // "sub_of_vscale"
310 }
311 break;
312 }
313 break;
314 case 'u': // 4 strings to match.
315 switch (RuleIdentifier[1]) {
316 default: break;
317 case 'd': // 1 string to match.
318 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
319 break;
320 return 240; // "udiv_by_const"
321 case 'n': // 2 strings to match.
322 if (memcmp(RuleIdentifier.data()+2, "merge_", 6) != 0)
323 break;
324 switch (RuleIdentifier[8]) {
325 default: break;
326 case 'm': // 1 string to match.
327 if (memcmp(RuleIdentifier.data()+9, "erge", 4) != 0)
328 break;
329 return 296; // "unmerge_merge"
330 case 'u': // 1 string to match.
331 if (memcmp(RuleIdentifier.data()+9, "ndef", 4) != 0)
332 break;
333 return 299; // "unmerge_undef"
334 }
335 break;
336 case 'r': // 1 string to match.
337 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
338 break;
339 return 236; // "urem_by_const"
340 }
341 break;
342 }
343 break;
344 case 14: // 20 strings to match.
345 switch (RuleIdentifier[0]) {
346 default: break;
347 case 'A': // 2 strings to match.
348 switch (RuleIdentifier[1]) {
349 default: break;
350 case 'M': // 1 string to match.
351 if (memcmp(RuleIdentifier.data()+2, "inusC1PlusC2", 12) != 0)
352 break;
353 return 18; // "AMinusC1PlusC2"
354 case 'P': // 1 string to match.
355 if (memcmp(RuleIdentifier.data()+2, "lusC1MinusC2", 12) != 0)
356 break;
357 return 14; // "APlusC1MinusC2"
358 }
359 break;
360 case 'C': // 1 string to match.
361 if (memcmp(RuleIdentifier.data()+1, "2MinusAPlusC1", 13) != 0)
362 break;
363 return 15; // "C2MinusAPlusC1"
364 case 'N': // 1 string to match.
365 if (memcmp(RuleIdentifier.data()+1, "otAPlusNegOne", 13) != 0)
366 break;
367 return 13; // "NotAPlusNegOne"
368 case 'a': // 2 strings to match.
369 if (memcmp(RuleIdentifier.data()+1, "nyext_of_", 9) != 0)
370 break;
371 switch (RuleIdentifier[10]) {
372 default: break;
373 case 's': // 1 string to match.
374 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
375 break;
376 return 57; // "anyext_of_sext"
377 case 'z': // 1 string to match.
378 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
379 break;
380 return 56; // "anyext_of_zext"
381 }
382 break;
383 case 'b': // 3 strings to match.
384 if (RuleIdentifier[1] != 'i')
385 break;
386 switch (RuleIdentifier[2]) {
387 default: break;
388 case 'n': // 2 strings to match.
389 if (memcmp(RuleIdentifier.data()+3, "op_", 3) != 0)
390 break;
391 switch (RuleIdentifier[6]) {
392 default: break;
393 case 's': // 1 string to match.
394 if (memcmp(RuleIdentifier.data()+7, "ame_val", 7) != 0)
395 break;
396 return 93; // "binop_same_val"
397 case 'w': // 1 string to match.
398 if (memcmp(RuleIdentifier.data()+7, "ith_neg", 7) != 0)
399 break;
400 return 322; // "binop_with_neg"
401 }
402 break;
403 case 't': // 1 string to match.
404 if (memcmp(RuleIdentifier.data()+3, "reverse_shl", 11) != 0)
405 break;
406 return 202; // "bitreverse_shl"
407 }
408 break;
409 case 'c': // 2 strings to match.
410 if (memcmp(RuleIdentifier.data()+1, "ombine_mem", 10) != 0)
411 break;
412 switch (RuleIdentifier[11]) {
413 default: break;
414 case 'c': // 1 string to match.
415 if (memcmp(RuleIdentifier.data()+12, "py", 2) != 0)
416 break;
417 return 347; // "combine_memcpy"
418 case 's': // 1 string to match.
419 if (memcmp(RuleIdentifier.data()+12, "et", 2) != 0)
420 break;
421 return 349; // "combine_memset"
422 }
423 break;
424 case 'f': // 2 strings to match.
425 switch (RuleIdentifier[1]) {
426 default: break;
427 case 'a': // 1 string to match.
428 if (memcmp(RuleIdentifier.data()+2, "bs_fneg_fold", 12) != 0)
429 break;
430 return 215; // "fabs_fneg_fold"
431 case 'n': // 1 string to match.
432 if (memcmp(RuleIdentifier.data()+2, "eg_fneg_fold", 12) != 0)
433 break;
434 return 102; // "fneg_fneg_fold"
435 }
436 break;
437 case 'm': // 1 string to match.
438 if (memcmp(RuleIdentifier.data()+1, "ul_by_neg_one", 13) != 0)
439 break;
440 return 23; // "mul_by_neg_one"
441 case 'r': // 1 string to match.
442 if (memcmp(RuleIdentifier.data()+1, "eassoc_ptradd", 13) != 0)
443 break;
444 return 120; // "reassoc_ptradd"
445 case 's': // 4 strings to match.
446 switch (RuleIdentifier[1]) {
447 default: break;
448 case 'e': // 2 strings to match.
449 switch (RuleIdentifier[2]) {
450 default: break;
451 case 'l': // 1 string to match.
452 if (memcmp(RuleIdentifier.data()+3, "ect_of_zext", 11) != 0)
453 break;
454 return 59; // "select_of_zext"
455 case 'x': // 1 string to match.
456 if (memcmp(RuleIdentifier.data()+3, "t_of_anyext", 11) != 0)
457 break;
458 return 54; // "sext_of_anyext"
459 }
460 break;
461 case 'h': // 1 string to match.
462 if (memcmp(RuleIdentifier.data()+2, "ifts_too_big", 12) != 0)
463 break;
464 return 119; // "shifts_too_big"
465 case 'i': // 1 string to match.
466 if (memcmp(RuleIdentifier.data()+2, "mplify_uaddo", 12) != 0)
467 break;
468 return 344; // "simplify_uaddo"
469 }
470 break;
471 case 'z': // 1 string to match.
472 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
473 break;
474 return 52; // "zext_of_anyext"
475 }
476 break;
477 case 15: // 24 strings to match.
478 switch (RuleIdentifier[0]) {
479 default: break;
480 case 'A': // 2 strings to match.
481 switch (RuleIdentifier[1]) {
482 default: break;
483 case 'M': // 1 string to match.
484 if (memcmp(RuleIdentifier.data()+2, "inusC1MinusC2", 13) != 0)
485 break;
486 return 16; // "AMinusC1MinusC2"
487 case 'P': // 1 string to match.
488 if (memcmp(RuleIdentifier.data()+2, "lusZeroMinusB", 13) != 0)
489 break;
490 return 3; // "APlusZeroMinusB"
491 }
492 break;
493 case 'C': // 1 string to match.
494 if (memcmp(RuleIdentifier.data()+1, "1Minus2MinusC2", 14) != 0)
495 break;
496 return 17; // "C1Minus2MinusC2"
497 case 'G': // 1 string to match.
498 if (memcmp(RuleIdentifier.data()+1, "_FMA_fneg_fneg", 14) != 0)
499 break;
500 return 223; // "G_FMA_fneg_fneg"
501 case 'Z': // 1 string to match.
502 if (memcmp(RuleIdentifier.data()+1, "eroMinusAPlusB", 14) != 0)
503 break;
504 return 2; // "ZeroMinusAPlusB"
505 case 'a': // 2 strings to match.
506 if (memcmp(RuleIdentifier.data()+1, "vgceil_", 7) != 0)
507 break;
508 switch (RuleIdentifier[8]) {
509 default: break;
510 case 's': // 1 string to match.
511 if (memcmp(RuleIdentifier.data()+9, "_match", 6) != 0)
512 break;
513 return 330; // "avgceil_s_match"
514 case 'u': // 1 string to match.
515 if (memcmp(RuleIdentifier.data()+9, "_match", 6) != 0)
516 break;
517 return 329; // "avgceil_u_match"
518 }
519 break;
520 case 'b': // 1 string to match.
521 if (memcmp(RuleIdentifier.data()+1, "itreverse_lshr", 14) != 0)
522 break;
523 return 203; // "bitreverse_lshr"
524 case 'c': // 1 string to match.
525 if (memcmp(RuleIdentifier.data()+1, "ombine_memmove", 14) != 0)
526 break;
527 return 348; // "combine_memmove"
528 case 'e': // 1 string to match.
529 if (memcmp(RuleIdentifier.data()+1, "xtending_loads", 14) != 0)
530 break;
531 return 73; // "extending_loads"
532 case 'i': // 2 strings to match.
533 switch (RuleIdentifier[1]) {
534 default: break;
535 case '2': // 1 string to match.
536 if (memcmp(RuleIdentifier.data()+2, "p_to_p2i_zext", 13) != 0)
537 break;
538 return 99; // "i2p_to_p2i_zext"
539 case 'd': // 1 string to match.
540 if (memcmp(RuleIdentifier.data()+2, "empotent_prop", 13) != 0)
541 break;
542 return 24; // "idempotent_prop"
543 }
544 break;
545 case 'l': // 1 string to match.
546 if (memcmp(RuleIdentifier.data()+1, "oad_or_combine", 14) != 0)
547 break;
548 return 192; // "load_or_combine"
549 case 'm': // 4 strings to match.
550 if (memcmp(RuleIdentifier.data()+1, "ulo_by_", 7) != 0)
551 break;
552 switch (RuleIdentifier[8]) {
553 default: break;
554 case '0': // 2 strings to match.
555 if (RuleIdentifier[9] != '_')
556 break;
557 switch (RuleIdentifier[10]) {
558 default: break;
559 case 's': // 1 string to match.
560 if (memcmp(RuleIdentifier.data()+11, "mulo", 4) != 0)
561 break;
562 return 177; // "mulo_by_0_smulo"
563 case 'u': // 1 string to match.
564 if (memcmp(RuleIdentifier.data()+11, "mulo", 4) != 0)
565 break;
566 return 176; // "mulo_by_0_umulo"
567 }
568 break;
569 case '2': // 2 strings to match.
570 if (RuleIdentifier[9] != '_')
571 break;
572 switch (RuleIdentifier[10]) {
573 default: break;
574 case 's': // 1 string to match.
575 if (memcmp(RuleIdentifier.data()+11, "mulo", 4) != 0)
576 break;
577 return 175; // "mulo_by_2_smulo"
578 case 'u': // 1 string to match.
579 if (memcmp(RuleIdentifier.data()+11, "mulo", 4) != 0)
580 break;
581 return 174; // "mulo_by_2_umulo"
582 }
583 break;
584 }
585 break;
586 case 'n': // 1 string to match.
587 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_or", 14) != 0)
588 break;
589 return 67; // "narrow_binop_or"
590 case 'o': // 1 string to match.
591 if (memcmp(RuleIdentifier.data()+1, "verlapping_and", 14) != 0)
592 break;
593 return 173; // "overlapping_and"
594 case 's': // 4 strings to match.
595 if (memcmp(RuleIdentifier.data()+1, "ub_add_", 7) != 0)
596 break;
597 switch (RuleIdentifier[8]) {
598 default: break;
599 case 'n': // 2 strings to match.
600 if (memcmp(RuleIdentifier.data()+9, "eg_", 3) != 0)
601 break;
602 switch (RuleIdentifier[12]) {
603 default: break;
604 case 'l': // 1 string to match.
605 if (memcmp(RuleIdentifier.data()+13, "hs", 2) != 0)
606 break;
607 return 246; // "sub_add_neg_lhs"
608 case 'r': // 1 string to match.
609 if (memcmp(RuleIdentifier.data()+13, "hs", 2) != 0)
610 break;
611 return 245; // "sub_add_neg_rhs"
612 }
613 break;
614 case 'r': // 2 strings to match.
615 if (memcmp(RuleIdentifier.data()+9, "eg_", 3) != 0)
616 break;
617 switch (RuleIdentifier[12]) {
618 default: break;
619 case 'l': // 1 string to match.
620 if (memcmp(RuleIdentifier.data()+13, "hs", 2) != 0)
621 break;
622 return 244; // "sub_add_reg_lhs"
623 case 'r': // 1 string to match.
624 if (memcmp(RuleIdentifier.data()+13, "hs", 2) != 0)
625 break;
626 return 243; // "sub_add_reg_rhs"
627 }
628 break;
629 }
630 break;
631 case 'z': // 1 string to match.
632 if (memcmp(RuleIdentifier.data()+1, "ext_trunc_fold", 14) != 0)
633 break;
634 return 152; // "zext_trunc_fold"
635 }
636 break;
637 case 16: // 24 strings to match.
638 switch (RuleIdentifier[0]) {
639 default: break;
640 case 'A': // 1 string to match.
641 if (memcmp(RuleIdentifier.data()+1, "MinusZeroMinusB", 15) != 0)
642 break;
643 return 11; // "AMinusZeroMinusB"
644 case 'G': // 3 strings to match.
645 if (memcmp(RuleIdentifier.data()+1, "_F", 2) != 0)
646 break;
647 switch (RuleIdentifier[3]) {
648 default: break;
649 case 'D': // 1 string to match.
650 if (memcmp(RuleIdentifier.data()+4, "IV_fneg_fneg", 12) != 0)
651 break;
652 return 221; // "G_FDIV_fneg_fneg"
653 case 'M': // 2 strings to match.
654 switch (RuleIdentifier[4]) {
655 default: break;
656 case 'A': // 1 string to match.
657 if (memcmp(RuleIdentifier.data()+5, "D_fneg_fneg", 11) != 0)
658 break;
659 return 222; // "G_FMAD_fneg_fneg"
660 case 'U': // 1 string to match.
661 if (memcmp(RuleIdentifier.data()+5, "L_fneg_fneg", 11) != 0)
662 break;
663 return 220; // "G_FMUL_fneg_fneg"
664 }
665 break;
666 }
667 break;
668 case 'a': // 3 strings to match.
669 switch (RuleIdentifier[1]) {
670 default: break;
671 case 'n': // 1 string to match.
672 if (memcmp(RuleIdentifier.data()+2, "yext_of_anyext", 14) != 0)
673 break;
674 return 55; // "anyext_of_anyext"
675 case 'v': // 2 strings to match.
676 if (memcmp(RuleIdentifier.data()+2, "gfloor_", 7) != 0)
677 break;
678 switch (RuleIdentifier[9]) {
679 default: break;
680 case 's': // 1 string to match.
681 if (memcmp(RuleIdentifier.data()+10, "_match", 6) != 0)
682 break;
683 return 328; // "avgfloor_s_match"
684 case 'u': // 1 string to match.
685 if (memcmp(RuleIdentifier.data()+10, "_match", 6) != 0)
686 break;
687 return 327; // "avgfloor_u_match"
688 }
689 break;
690 }
691 break;
692 case 'c': // 1 string to match.
693 if (memcmp(RuleIdentifier.data()+1, "ommute_shift_or", 15) != 0)
694 break;
695 return 205; // "commute_shift_or"
696 case 'i': // 1 string to match.
697 if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i_trunc", 15) != 0)
698 break;
699 return 100; // "i2p_to_p2i_trunc"
700 case 'n': // 5 strings to match.
701 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_", 12) != 0)
702 break;
703 switch (RuleIdentifier[13]) {
704 default: break;
705 case 'a': // 2 strings to match.
706 switch (RuleIdentifier[14]) {
707 default: break;
708 case 'd': // 1 string to match.
709 if (RuleIdentifier[15] != 'd')
710 break;
711 return 63; // "narrow_binop_add"
712 case 'n': // 1 string to match.
713 if (RuleIdentifier[15] != 'd')
714 break;
715 return 66; // "narrow_binop_and"
716 }
717 break;
718 case 'm': // 1 string to match.
719 if (memcmp(RuleIdentifier.data()+14, "ul", 2) != 0)
720 break;
721 return 65; // "narrow_binop_mul"
722 case 's': // 1 string to match.
723 if (memcmp(RuleIdentifier.data()+14, "ub", 2) != 0)
724 break;
725 return 64; // "narrow_binop_sub"
726 case 'x': // 1 string to match.
727 if (memcmp(RuleIdentifier.data()+14, "or", 2) != 0)
728 break;
729 return 68; // "narrow_binop_xor"
730 }
731 break;
732 case 'o': // 1 string to match.
733 if (memcmp(RuleIdentifier.data()+1, "r_and_xor_to_or", 15) != 0)
734 break;
735 return 280; // "or_and_xor_to_or"
736 case 's': // 6 strings to match.
737 switch (RuleIdentifier[1]) {
738 default: break;
739 case 'e': // 4 strings to match.
740 if (memcmp(RuleIdentifier.data()+2, "lect_", 5) != 0)
741 break;
742 switch (RuleIdentifier[7]) {
743 default: break;
744 case 'o': // 1 string to match.
745 if (memcmp(RuleIdentifier.data()+8, "f_anyext", 8) != 0)
746 break;
747 return 60; // "select_of_anyext"
748 case 't': // 1 string to match.
749 if (memcmp(RuleIdentifier.data()+8, "o_minmax", 8) != 0)
750 break;
751 return 247; // "select_to_minmax"
752 case 'u': // 1 string to match.
753 if (memcmp(RuleIdentifier.data()+8, "ndef_cmp", 8) != 0)
754 break;
755 return 135; // "select_undef_cmp"
756 case 'z': // 1 string to match.
757 if (memcmp(RuleIdentifier.data()+8, "ero_true", 8) != 0)
758 break;
759 return 332; // "select_zero_true"
760 }
761 break;
762 case 'u': // 2 strings to match.
763 if (memcmp(RuleIdentifier.data()+2, "b_o", 3) != 0)
764 break;
765 switch (RuleIdentifier[5]) {
766 default: break;
767 case 'f': // 1 string to match.
768 if (memcmp(RuleIdentifier.data()+6, "_mul_const", 10) != 0)
769 break;
770 return 324; // "sub_of_mul_const"
771 case 'n': // 1 string to match.
772 if (memcmp(RuleIdentifier.data()+6, "e_from_sub", 10) != 0)
773 break;
774 return 321; // "sub_one_from_sub"
775 }
776 break;
777 }
778 break;
779 case 't': // 2 strings to match.
780 if (memcmp(RuleIdentifier.data()+1, "runcate_of_", 11) != 0)
781 break;
782 switch (RuleIdentifier[12]) {
783 default: break;
784 case 's': // 1 string to match.
785 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
786 break;
787 return 49; // "truncate_of_sext"
788 case 'z': // 1 string to match.
789 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
790 break;
791 return 48; // "truncate_of_zext"
792 }
793 break;
794 case 'u': // 1 string to match.
795 if (memcmp(RuleIdentifier.data()+1, "ndef_to_fp_zero", 15) != 0)
796 break;
797 return 76; // "undef_to_fp_zero"
798 }
799 break;
800 case 17: // 20 strings to match.
801 switch (RuleIdentifier[0]) {
802 default: break;
803 case 'A': // 2 strings to match.
804 if (memcmp(RuleIdentifier.data()+1, "PlusBMinus", 10) != 0)
805 break;
806 switch (RuleIdentifier[11]) {
807 default: break;
808 case 'A': // 1 string to match.
809 if (memcmp(RuleIdentifier.data()+12, "plusC", 5) != 0)
810 break;
811 return 8; // "APlusBMinusAplusC"
812 case 'C': // 1 string to match.
813 if (memcmp(RuleIdentifier.data()+12, "PlusA", 5) != 0)
814 break;
815 return 10; // "APlusBMinusCPlusA"
816 }
817 break;
818 case 'a': // 3 strings to match.
819 switch (RuleIdentifier[1]) {
820 default: break;
821 case 'd': // 1 string to match.
822 if (memcmp(RuleIdentifier.data()+2, "d_p2i_to_ptradd", 15) != 0)
823 break;
824 return 22; // "add_p2i_to_ptradd"
825 case 'n': // 2 strings to match.
826 switch (RuleIdentifier[2]) {
827 default: break;
828 case 'd': // 1 string to match.
829 if (memcmp(RuleIdentifier.data()+3, "_xor_or_to_and", 14) != 0)
830 break;
831 return 282; // "and_xor_or_to_and"
832 case 'y': // 1 string to match.
833 if (memcmp(RuleIdentifier.data()+3, "ext_trunc_fold", 14) != 0)
834 break;
835 return 101; // "anyext_trunc_fold"
836 }
837 break;
838 }
839 break;
840 case 'c': // 5 strings to match.
841 switch (RuleIdentifier[1]) {
842 default: break;
843 case 'a': // 2 strings to match.
844 if (memcmp(RuleIdentifier.data()+2, "nonicalize_", 11) != 0)
845 break;
846 switch (RuleIdentifier[13]) {
847 default: break;
848 case 'f': // 1 string to match.
849 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
850 break;
851 return 124; // "canonicalize_fcmp"
852 case 'i': // 1 string to match.
853 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
854 break;
855 return 123; // "canonicalize_icmp"
856 }
857 break;
858 case 'o': // 3 strings to match.
859 switch (RuleIdentifier[2]) {
860 default: break;
861 case 'm': // 2 strings to match.
862 switch (RuleIdentifier[3]) {
863 default: break;
864 case 'b': // 1 string to match.
865 if (memcmp(RuleIdentifier.data()+4, "ine_or_of_and", 13) != 0)
866 break;
867 return 331; // "combine_or_of_and"
868 case 'm': // 1 string to match.
869 if (memcmp(RuleIdentifier.data()+4, "ute_shift_add", 13) != 0)
870 break;
871 return 204; // "commute_shift_add"
872 }
873 break;
874 case 'n': // 1 string to match.
875 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fma", 14) != 0)
876 break;
877 return 212; // "constant_fold_fma"
878 }
879 break;
880 }
881 break;
882 case 'd': // 1 string to match.
883 if (memcmp(RuleIdentifier.data()+1, "iv_rem_to_divrem", 16) != 0)
884 break;
885 return 193; // "div_rem_to_divrem"
886 case 'e': // 1 string to match.
887 if (memcmp(RuleIdentifier.data()+1, "rase_undef_store", 16) != 0)
888 break;
889 return 87; // "erase_undef_store"
890 case 'm': // 2 strings to match.
891 if (memcmp(RuleIdentifier.data()+1, "atch_addos_", 11) != 0)
892 break;
893 switch (RuleIdentifier[12]) {
894 default: break;
895 case 's': // 1 string to match.
896 if (memcmp(RuleIdentifier.data()+13, "addo", 4) != 0)
897 break;
898 return 307; // "match_addos_saddo"
899 case 'u': // 1 string to match.
900 if (memcmp(RuleIdentifier.data()+13, "addo", 4) != 0)
901 break;
902 return 308; // "match_addos_uaddo"
903 }
904 break;
905 case 's': // 4 strings to match.
906 switch (RuleIdentifier[1]) {
907 default: break;
908 case 'e': // 2 strings to match.
909 if (memcmp(RuleIdentifier.data()+2, "lect_", 5) != 0)
910 break;
911 switch (RuleIdentifier[7]) {
912 default: break;
913 case 't': // 1 string to match.
914 if (memcmp(RuleIdentifier.data()+8, "o_iminmax", 9) != 0)
915 break;
916 return 140; // "select_to_iminmax"
917 case 'z': // 1 string to match.
918 if (memcmp(RuleIdentifier.data()+8, "ero_false", 9) != 0)
919 break;
920 return 142; // "select_zero_false"
921 }
922 break;
923 case 'h': // 1 string to match.
924 if (memcmp(RuleIdentifier.data()+2, "ift_immed_chain", 15) != 0)
925 break;
926 return 190; // "shift_immed_chain"
927 case 'r': // 1 string to match.
928 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
929 break;
930 return 235; // "srem_pow2_to_mask"
931 }
932 break;
933 case 'u': // 2 strings to match.
934 switch (RuleIdentifier[1]) {
935 default: break;
936 case 'n': // 1 string to match.
937 if (memcmp(RuleIdentifier.data()+2, "def_to_int_zero", 15) != 0)
938 break;
939 return 77; // "undef_to_int_zero"
940 case 'r': // 1 string to match.
941 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
942 break;
943 return 151; // "urem_pow2_to_mask"
944 }
945 break;
946 }
947 break;
948 case 18: // 18 strings to match.
949 switch (RuleIdentifier[0]) {
950 default: break;
951 case 'A': // 3 strings to match.
952 switch (RuleIdentifier[1]) {
953 default: break;
954 case 'M': // 2 strings to match.
955 if (memcmp(RuleIdentifier.data()+2, "inusBPlus", 9) != 0)
956 break;
957 switch (RuleIdentifier[11]) {
958 default: break;
959 case 'B': // 1 string to match.
960 if (memcmp(RuleIdentifier.data()+12, "MinusC", 6) != 0)
961 break;
962 return 7; // "AMinusBPlusBMinusC"
963 case 'C': // 1 string to match.
964 if (memcmp(RuleIdentifier.data()+12, "MinusA", 6) != 0)
965 break;
966 return 6; // "AMinusBPlusCMinusA"
967 }
968 break;
969 case 'P': // 1 string to match.
970 if (memcmp(RuleIdentifier.data()+2, "lusBMinusCMinusB", 16) != 0)
971 break;
972 return 0; // "APlusBMinusCMinusB"
973 }
974 break;
975 case 'a': // 4 strings to match.
976 if (memcmp(RuleIdentifier.data()+1, "dde_to_addo_", 12) != 0)
977 break;
978 switch (RuleIdentifier[13]) {
979 default: break;
980 case 's': // 2 strings to match.
981 switch (RuleIdentifier[14]) {
982 default: break;
983 case 'a': // 1 string to match.
984 if (memcmp(RuleIdentifier.data()+15, "dde", 3) != 0)
985 break;
986 return 179; // "adde_to_addo_sadde"
987 case 's': // 1 string to match.
988 if (memcmp(RuleIdentifier.data()+15, "ube", 3) != 0)
989 break;
990 return 181; // "adde_to_addo_ssube"
991 }
992 break;
993 case 'u': // 2 strings to match.
994 switch (RuleIdentifier[14]) {
995 default: break;
996 case 'a': // 1 string to match.
997 if (memcmp(RuleIdentifier.data()+15, "dde", 3) != 0)
998 break;
999 return 178; // "adde_to_addo_uadde"
1000 case 's': // 1 string to match.
1001 if (memcmp(RuleIdentifier.data()+15, "ube", 3) != 0)
1002 break;
1003 return 180; // "adde_to_addo_usube"
1004 }
1005 break;
1006 }
1007 break;
1008 case 'b': // 1 string to match.
1009 if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
1010 break;
1011 return 95; // "binop_left_to_zero"
1012 case 'c': // 2 strings to match.
1013 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_f", 14) != 0)
1014 break;
1015 switch (RuleIdentifier[15]) {
1016 default: break;
1017 case 'a': // 1 string to match.
1018 if (memcmp(RuleIdentifier.data()+16, "bs", 2) != 0)
1019 break;
1020 return 158; // "constant_fold_fabs"
1021 case 'n': // 1 string to match.
1022 if (memcmp(RuleIdentifier.data()+16, "eg", 2) != 0)
1023 break;
1024 return 157; // "constant_fold_fneg"
1025 }
1026 break;
1027 case 'e': // 1 string to match.
1028 if (memcmp(RuleIdentifier.data()+1, "xpand_const_fpowi", 17) != 0)
1029 break;
1030 return 186; // "expand_const_fpowi"
1031 case 'f': // 2 strings to match.
1032 switch (RuleIdentifier[1]) {
1033 default: break;
1034 case 'o': // 1 string to match.
1035 if (memcmp(RuleIdentifier.data()+2, "ld_global_offset", 16) != 0)
1036 break;
1037 return 335; // "fold_global_offset"
1038 case 'p': // 1 string to match.
1039 if (memcmp(RuleIdentifier.data()+2, "trunc_fpext_fold", 16) != 0)
1040 break;
1041 return 112; // "fptrunc_fpext_fold"
1042 }
1043 break;
1044 case 'm': // 2 strings to match.
1045 if (memcmp(RuleIdentifier.data()+1, "inmax_nan_num_", 14) != 0)
1046 break;
1047 switch (RuleIdentifier[15]) {
1048 default: break;
1049 case 'l': // 1 string to match.
1050 if (memcmp(RuleIdentifier.data()+16, "hs", 2) != 0)
1051 break;
1052 return 182; // "minmax_nan_num_lhs"
1053 case 'r': // 1 string to match.
1054 if (memcmp(RuleIdentifier.data()+16, "hs", 2) != 0)
1055 break;
1056 return 183; // "minmax_nan_num_rhs"
1057 }
1058 break;
1059 case 's': // 2 strings to match.
1060 if (RuleIdentifier[1] != 'e')
1061 break;
1062 switch (RuleIdentifier[2]) {
1063 default: break;
1064 case 'l': // 1 string to match.
1065 if (memcmp(RuleIdentifier.data()+3, "ect_of_truncate", 15) != 0)
1066 break;
1067 return 61; // "select_of_truncate"
1068 case 'x': // 1 string to match.
1069 if (memcmp(RuleIdentifier.data()+3, "t_inreg_of_load", 15) != 0)
1070 break;
1071 return 132; // "sext_inreg_of_load"
1072 }
1073 break;
1074 case 't': // 1 string to match.
1075 if (memcmp(RuleIdentifier.data()+1, "runcate_of_anyext", 17) != 0)
1076 break;
1077 return 50; // "truncate_of_anyext"
1078 }
1079 break;
1080 case 19: // 21 strings to match.
1081 switch (RuleIdentifier[0]) {
1082 default: break;
1083 case 'A': // 1 string to match.
1084 if (memcmp(RuleIdentifier.data()+1, "MinusBMinusCMinusC", 18) != 0)
1085 break;
1086 return 1; // "AMinusBMinusCMinusC"
1087 case 'b': // 1 string to match.
1088 if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
1089 break;
1090 return 96; // "binop_right_to_zero"
1091 case 'c': // 7 strings to match.
1092 if (memcmp(RuleIdentifier.data()+1, "onst", 4) != 0)
1093 break;
1094 switch (RuleIdentifier[5]) {
1095 default: break;
1096 case '_': // 1 string to match.
1097 if (memcmp(RuleIdentifier.data()+6, "ptradd_to_i2p", 13) != 0)
1098 break;
1099 return 172; // "const_ptradd_to_i2p"
1100 case 'a': // 6 strings to match.
1101 if (memcmp(RuleIdentifier.data()+6, "nt_fold_", 8) != 0)
1102 break;
1103 switch (RuleIdentifier[14]) {
1104 default: break;
1105 case 'b': // 1 string to match.
1106 if (memcmp(RuleIdentifier.data()+15, "inop", 4) != 0)
1107 break;
1108 return 210; // "constant_fold_binop"
1109 case 'f': // 5 strings to match.
1110 switch (RuleIdentifier[15]) {
1111 default: break;
1112 case 'c': // 1 string to match.
1113 if (memcmp(RuleIdentifier.data()+16, "eil", 3) != 0)
1114 break;
1115 return 163; // "constant_fold_fceil"
1116 case 'l': // 1 string to match.
1117 if (memcmp(RuleIdentifier.data()+16, "og2", 3) != 0)
1118 break;
1119 return 160; // "constant_fold_flog2"
1120 case 'p': // 1 string to match.
1121 if (memcmp(RuleIdentifier.data()+16, "ext", 3) != 0)
1122 break;
1123 return 162; // "constant_fold_fpext"
1124 case 'r': // 1 string to match.
1125 if (memcmp(RuleIdentifier.data()+16, "int", 3) != 0)
1126 break;
1127 return 168; // "constant_fold_frint"
1128 case 's': // 1 string to match.
1129 if (memcmp(RuleIdentifier.data()+16, "qrt", 3) != 0)
1130 break;
1131 return 159; // "constant_fold_fsqrt"
1132 }
1133 break;
1134 }
1135 break;
1136 }
1137 break;
1138 case 'e': // 2 strings to match.
1139 if (memcmp(RuleIdentifier.data()+1, "xt", 2) != 0)
1140 break;
1141 switch (RuleIdentifier[3]) {
1142 default: break;
1143 case '_': // 1 string to match.
1144 if (memcmp(RuleIdentifier.data()+4, "uaddv_to_uaddlv", 15) != 0)
1145 break;
1146 return 337; // "ext_uaddv_to_uaddlv"
1147 case 'e': // 1 string to match.
1148 if (memcmp(RuleIdentifier.data()+4, "nd_through_phis", 15) != 0)
1149 break;
1150 return 116; // "extend_through_phis"
1151 }
1152 break;
1153 case 'i': // 1 string to match.
1154 if (memcmp(RuleIdentifier.data()+1, "nteger_of_truncate", 18) != 0)
1155 break;
1156 return 69; // "integer_of_truncate"
1157 case 'm': // 3 strings to match.
1158 switch (RuleIdentifier[1]) {
1159 default: break;
1160 case 'e': // 1 string to match.
1161 if (memcmp(RuleIdentifier.data()+2, "rge_of_x_and_zero", 17) != 0)
1162 break;
1163 return 303; // "merge_of_x_and_zero"
1164 case 'i': // 2 strings to match.
1165 if (memcmp(RuleIdentifier.data()+2, "nmax_nan_ieee_", 14) != 0)
1166 break;
1167 switch (RuleIdentifier[16]) {
1168 default: break;
1169 case 'l': // 1 string to match.
1170 if (memcmp(RuleIdentifier.data()+17, "hs", 2) != 0)
1171 break;
1172 return 184; // "minmax_nan_ieee_lhs"
1173 case 'r': // 1 string to match.
1174 if (memcmp(RuleIdentifier.data()+17, "hs", 2) != 0)
1175 break;
1176 return 185; // "minmax_nan_ieee_rhs"
1177 }
1178 break;
1179 }
1180 break;
1181 case 'p': // 1 string to match.
1182 if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
1183 break;
1184 return 122; // "ptr_add_immed_chain"
1185 case 'r': // 2 strings to match.
1186 switch (RuleIdentifier[1]) {
1187 default: break;
1188 case 'e': // 1 string to match.
1189 if (memcmp(RuleIdentifier.data()+2, "assoc_comm_binops", 17) != 0)
1190 break;
1191 return 121; // "reassoc_comm_binops"
1192 case 'i': // 1 string to match.
1193 if (memcmp(RuleIdentifier.data()+2, "ght_identity_zero", 17) != 0)
1194 break;
1195 return 92; // "right_identity_zero"
1196 }
1197 break;
1198 case 's': // 2 strings to match.
1199 if (memcmp(RuleIdentifier.data()+1, "implify_", 8) != 0)
1200 break;
1201 switch (RuleIdentifier[9]) {
1202 default: break;
1203 case 'a': // 1 string to match.
1204 if (memcmp(RuleIdentifier.data()+10, "dd_to_sub", 9) != 0)
1205 break;
1206 return 117; // "simplify_add_to_sub"
1207 case 'n': // 1 string to match.
1208 if (memcmp(RuleIdentifier.data()+10, "eg_minmax", 9) != 0)
1209 break;
1210 return 286; // "simplify_neg_minmax"
1211 }
1212 break;
1213 case 'u': // 1 string to match.
1214 if (memcmp(RuleIdentifier.data()+1, "nary_undef_to_zero", 18) != 0)
1215 break;
1216 return 81; // "unary_undef_to_zero"
1217 }
1218 break;
1219 case 20: // 11 strings to match.
1220 switch (RuleIdentifier[0]) {
1221 default: break;
1222 case 'a': // 1 string to match.
1223 if (memcmp(RuleIdentifier.data()+1, "nd_or_disjoint_mask", 19) != 0)
1224 break;
1225 return 224; // "and_or_disjoint_mask"
1226 case 'b': // 1 string to match.
1227 if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold", 19) != 0)
1228 break;
1229 return 110; // "bitcast_bitcast_fold"
1230 case 'c': // 1 string to match.
1231 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_ffloor", 19) != 0)
1232 break;
1233 return 164; // "constant_fold_ffloor"
1234 case 'i': // 2 strings to match.
1235 switch (RuleIdentifier[1]) {
1236 default: break;
1237 case '2': // 1 string to match.
1238 if (memcmp(RuleIdentifier.data()+2, "p_to_p2i_same_size", 18) != 0)
1239 break;
1240 return 98; // "i2p_to_p2i_same_size"
1241 case 'c': // 1 string to match.
1242 if (memcmp(RuleIdentifier.data()+2, "mp_redundant_trunc", 18) != 0)
1243 break;
1244 return 334; // "icmp_redundant_trunc"
1245 }
1246 break;
1247 case 'm': // 1 string to match.
1248 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_undef", 19) != 0)
1249 break;
1250 return 302; // "merge_of_x_and_undef"
1251 case 'o': // 1 string to match.
1252 if (memcmp(RuleIdentifier.data()+1, "r_and_xor_to_xor_or", 19) != 0)
1253 break;
1254 return 281; // "or_and_xor_to_xor_or"
1255 case 'r': // 2 strings to match.
1256 if (memcmp(RuleIdentifier.data()+1, "edu", 3) != 0)
1257 break;
1258 switch (RuleIdentifier[4]) {
1259 default: break;
1260 case 'c': // 1 string to match.
1261 if (memcmp(RuleIdentifier.data()+5, "e_shl_of_extend", 15) != 0)
1262 break;
1263 return 133; // "reduce_shl_of_extend"
1264 case 'n': // 1 string to match.
1265 if (memcmp(RuleIdentifier.data()+5, "dant_sext_inreg", 15) != 0)
1266 break;
1267 return 144; // "redundant_sext_inreg"
1268 }
1269 break;
1270 case 'u': // 2 strings to match.
1271 if (RuleIdentifier[1] != 'n')
1272 break;
1273 switch (RuleIdentifier[2]) {
1274 default: break;
1275 case 'a': // 1 string to match.
1276 if (memcmp(RuleIdentifier.data()+3, "ry_undef_to_undef", 17) != 0)
1277 break;
1278 return 82; // "unary_undef_to_undef"
1279 case 'm': // 1 string to match.
1280 if (memcmp(RuleIdentifier.data()+3, "erge_zext_to_zext", 17) != 0)
1281 break;
1282 return 301; // "unmerge_zext_to_zext"
1283 }
1284 break;
1285 }
1286 break;
1287 case 21: // 21 strings to match.
1288 switch (RuleIdentifier[0]) {
1289 default: break;
1290 case 'a': // 1 string to match.
1291 if (memcmp(RuleIdentifier.data()+1, "nd_xor_or_to_xor_and", 20) != 0)
1292 break;
1293 return 283; // "and_xor_or_to_xor_and"
1294 case 'c': // 6 strings to match.
1295 if (RuleIdentifier[1] != 'o')
1296 break;
1297 switch (RuleIdentifier[2]) {
1298 default: break;
1299 case 'm': // 4 strings to match.
1300 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1301 break;
1302 switch (RuleIdentifier[8]) {
1303 default: break;
1304 case 'b': // 1 string to match.
1305 if (memcmp(RuleIdentifier.data()+9, "uild_unmerge", 12) != 0)
1306 break;
1307 return 304; // "combine_build_unmerge"
1308 case 'c': // 1 string to match.
1309 if (memcmp(RuleIdentifier.data()+9, "oncat_vector", 12) != 0)
1310 break;
1311 return 287; // "combine_concat_vector"
1312 case 'm': // 2 strings to match.
1313 if (memcmp(RuleIdentifier.data()+9, "em", 2) != 0)
1314 break;
1315 switch (RuleIdentifier[11]) {
1316 default: break;
1317 case 'c': // 1 string to match.
1318 if (memcmp(RuleIdentifier.data()+12, "py_inline", 9) != 0)
1319 break;
1320 return 345; // "combine_memcpy_inline"
1321 case 's': // 1 string to match.
1322 if (memcmp(RuleIdentifier.data()+12, "et_inline", 9) != 0)
1323 break;
1324 return 346; // "combine_memset_inline"
1325 }
1326 break;
1327 }
1328 break;
1329 case 'n': // 2 strings to match.
1330 if (memcmp(RuleIdentifier.data()+3, "stant_fold_", 11) != 0)
1331 break;
1332 switch (RuleIdentifier[14]) {
1333 default: break;
1334 case 'c': // 1 string to match.
1335 if (memcmp(RuleIdentifier.data()+15, "ast_op", 6) != 0)
1336 break;
1337 return 213; // "constant_fold_cast_op"
1338 case 'f': // 1 string to match.
1339 if (memcmp(RuleIdentifier.data()+15, "ptrunc", 6) != 0)
1340 break;
1341 return 161; // "constant_fold_fptrunc"
1342 }
1343 break;
1344 }
1345 break;
1346 case 'e': // 1 string to match.
1347 if (memcmp(RuleIdentifier.data()+1, "xt_addv_to_udot_addv", 20) != 0)
1348 break;
1349 return 336; // "ext_addv_to_udot_addv"
1350 case 'f': // 1 string to match.
1351 if (memcmp(RuleIdentifier.data()+1, "div_repeated_divison", 20) != 0)
1352 break;
1353 return 242; // "fdiv_repeated_divison"
1354 case 'i': // 1 string to match.
1355 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_elt_oob", 20) != 0)
1356 break;
1357 return 29; // "insert_vector_elt_oob"
1358 case 'l': // 1 string to match.
1359 if (memcmp(RuleIdentifier.data()+1, "shr_of_trunc_of_lshr", 20) != 0)
1360 break;
1361 return 315; // "lshr_of_trunc_of_lshr"
1362 case 'p': // 6 strings to match.
1363 if (memcmp(RuleIdentifier.data()+1, "ush_", 4) != 0)
1364 break;
1365 switch (RuleIdentifier[5]) {
1366 default: break;
1367 case 'a': // 2 strings to match.
1368 if (memcmp(RuleIdentifier.data()+6, "dd_through_", 11) != 0)
1369 break;
1370 switch (RuleIdentifier[17]) {
1371 default: break;
1372 case 's': // 1 string to match.
1373 if (memcmp(RuleIdentifier.data()+18, "ext", 3) != 0)
1374 break;
1375 return 342; // "push_add_through_sext"
1376 case 'z': // 1 string to match.
1377 if (memcmp(RuleIdentifier.data()+18, "ext", 3) != 0)
1378 break;
1379 return 339; // "push_add_through_zext"
1380 }
1381 break;
1382 case 'm': // 2 strings to match.
1383 if (memcmp(RuleIdentifier.data()+6, "ul_through_", 11) != 0)
1384 break;
1385 switch (RuleIdentifier[17]) {
1386 default: break;
1387 case 's': // 1 string to match.
1388 if (memcmp(RuleIdentifier.data()+18, "ext", 3) != 0)
1389 break;
1390 return 343; // "push_mul_through_sext"
1391 case 'z': // 1 string to match.
1392 if (memcmp(RuleIdentifier.data()+18, "ext", 3) != 0)
1393 break;
1394 return 340; // "push_mul_through_zext"
1395 }
1396 break;
1397 case 's': // 2 strings to match.
1398 if (memcmp(RuleIdentifier.data()+6, "ub_through_", 11) != 0)
1399 break;
1400 switch (RuleIdentifier[17]) {
1401 default: break;
1402 case 's': // 1 string to match.
1403 if (memcmp(RuleIdentifier.data()+18, "ext", 3) != 0)
1404 break;
1405 return 341; // "push_sub_through_sext"
1406 case 'z': // 1 string to match.
1407 if (memcmp(RuleIdentifier.data()+18, "ext", 3) != 0)
1408 break;
1409 return 338; // "push_sub_through_zext"
1410 }
1411 break;
1412 }
1413 break;
1414 case 'r': // 1 string to match.
1415 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
1416 break;
1417 return 104; // "right_identity_one_fp"
1418 case 's': // 1 string to match.
1419 if (memcmp(RuleIdentifier.data()+1, "elect_same_val_equiv", 20) != 0)
1420 break;
1421 return 91; // "select_same_val_equiv"
1422 case 'u': // 2 strings to match.
1423 if (RuleIdentifier[1] != 'n')
1424 break;
1425 switch (RuleIdentifier[2]) {
1426 default: break;
1427 case 'd': // 1 string to match.
1428 if (memcmp(RuleIdentifier.data()+3, "ef_to_negative_one", 18) != 0)
1429 break;
1430 return 78; // "undef_to_negative_one"
1431 case 'm': // 1 string to match.
1432 if (memcmp(RuleIdentifier.data()+3, "erge_dead_to_trunc", 18) != 0)
1433 break;
1434 return 300; // "unmerge_dead_to_trunc"
1435 }
1436 break;
1437 }
1438 break;
1439 case 22: // 10 strings to match.
1440 switch (RuleIdentifier[0]) {
1441 default: break;
1442 case 'c': // 3 strings to match.
1443 if (RuleIdentifier[1] != 'o')
1444 break;
1445 switch (RuleIdentifier[2]) {
1446 default: break;
1447 case 'm': // 2 strings to match.
1448 if (memcmp(RuleIdentifier.data()+3, "bine_shuffle_", 13) != 0)
1449 break;
1450 switch (RuleIdentifier[16]) {
1451 default: break;
1452 case 'c': // 1 string to match.
1453 if (memcmp(RuleIdentifier.data()+17, "oncat", 5) != 0)
1454 break;
1455 return 291; // "combine_shuffle_concat"
1456 case 'v': // 1 string to match.
1457 if (memcmp(RuleIdentifier.data()+17, "ector", 5) != 0)
1458 break;
1459 return 333; // "combine_shuffle_vector"
1460 }
1461 break;
1462 case 'n': // 1 string to match.
1463 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fp_binop", 19) != 0)
1464 break;
1465 return 211; // "constant_fold_fp_binop"
1466 }
1467 break;
1468 case 'f': // 2 strings to match.
1469 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_", 12) != 0)
1470 break;
1471 switch (RuleIdentifier[13]) {
1472 default: break;
1473 case 'l': // 1 string to match.
1474 if (memcmp(RuleIdentifier.data()+14, "eft_zero", 8) != 0)
1475 break;
1476 return 198; // "funnel_shift_left_zero"
1477 case 'o': // 1 string to match.
1478 if (memcmp(RuleIdentifier.data()+14, "vershift", 8) != 0)
1479 break;
1480 return 199; // "funnel_shift_overshift"
1481 }
1482 break;
1483 case 'i': // 1 string to match.
1484 if (memcmp(RuleIdentifier.data()+1, "cmp_to_lhs_known_bits", 21) != 0)
1485 break;
1486 return 126; // "icmp_to_lhs_known_bits"
1487 case 'p': // 1 string to match.
1488 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_any_op", 21) != 0)
1489 break;
1490 return 83; // "propagate_undef_any_op"
1491 case 'r': // 1 string to match.
1492 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_int", 21) != 0)
1493 break;
1494 return 103; // "right_identity_one_int"
1495 case 's': // 1 string to match.
1496 if (memcmp(RuleIdentifier.data()+1, "hl_ashr_to_sext_inreg", 21) != 0)
1497 break;
1498 return 130; // "shl_ashr_to_sext_inreg"
1499 case 't': // 1 string to match.
1500 if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold", 21) != 0)
1501 break;
1502 return 108; // "trunc_buildvector_fold"
1503 }
1504 break;
1505 case 23: // 6 strings to match.
1506 switch (RuleIdentifier[0]) {
1507 default: break;
1508 case 'b': // 1 string to match.
1509 if (memcmp(RuleIdentifier.data()+1, "uildvector_of_truncate", 22) != 0)
1510 break;
1511 return 62; // "buildvector_of_truncate"
1512 case 'f': // 1 string to match.
1513 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_right_zero", 22) != 0)
1514 break;
1515 return 197; // "funnel_shift_right_zero"
1516 case 'i': // 2 strings to match.
1517 if (memcmp(RuleIdentifier.data()+1, "tof_const_zero_fold_", 20) != 0)
1518 break;
1519 switch (RuleIdentifier[21]) {
1520 default: break;
1521 case 's': // 1 string to match.
1522 if (RuleIdentifier[22] != 'i')
1523 break;
1524 return 170; // "itof_const_zero_fold_si"
1525 case 'u': // 1 string to match.
1526 if (RuleIdentifier[22] != 'i')
1527 break;
1528 return 171; // "itof_const_zero_fold_ui"
1529 }
1530 break;
1531 case 's': // 1 string to match.
1532 if (memcmp(RuleIdentifier.data()+1, "elect_same_val_trivial", 22) != 0)
1533 break;
1534 return 90; // "select_same_val_trivial"
1535 case 't': // 1 string to match.
1536 if (memcmp(RuleIdentifier.data()+1, "runcusatu_to_fptouisat", 22) != 0)
1537 break;
1538 return 314; // "truncusatu_to_fptouisat"
1539 }
1540 break;
1541 case 24: // 15 strings to match.
1542 switch (RuleIdentifier[0]) {
1543 default: break;
1544 case 'b': // 1 string to match.
1545 if (memcmp(RuleIdentifier.data()+1, "inop_left_undef_to_zero", 23) != 0)
1546 break;
1547 return 79; // "binop_left_undef_to_zero"
1548 case 'c': // 4 strings to match.
1549 switch (RuleIdentifier[1]) {
1550 default: break;
1551 case 'o': // 1 string to match.
1552 if (memcmp(RuleIdentifier.data()+2, "nstant_fold_fnearbyint", 22) != 0)
1553 break;
1554 return 169; // "constant_fold_fnearbyint"
1555 case 't': // 3 strings to match.
1556 switch (RuleIdentifier[2]) {
1557 default: break;
1558 case 'l': // 2 strings to match.
1559 if (memcmp(RuleIdentifier.data()+3, "z_", 2) != 0)
1560 break;
1561 switch (RuleIdentifier[5]) {
1562 default: break;
1563 case 't': // 1 string to match.
1564 if (memcmp(RuleIdentifier.data()+6, "o_ctlz_zero_poison", 18) != 0)
1565 break;
1566 return 318; // "ctlz_to_ctlz_zero_poison"
1567 case 'z': // 1 string to match.
1568 if (memcmp(RuleIdentifier.data()+6, "ero_poison_to_ctls", 18) != 0)
1569 break;
1570 return 317; // "ctlz_zero_poison_to_ctls"
1571 }
1572 break;
1573 case 't': // 1 string to match.
1574 if (memcmp(RuleIdentifier.data()+3, "z_to_cttz_zero_poison", 21) != 0)
1575 break;
1576 return 319; // "cttz_to_cttz_zero_poison"
1577 }
1578 break;
1579 }
1580 break;
1581 case 'f': // 2 strings to match.
1582 if (memcmp(RuleIdentifier.data()+1, "old_binop_into_select_", 22) != 0)
1583 break;
1584 switch (RuleIdentifier[23]) {
1585 default: break;
1586 case 'a': // 1 string to match.
1587 return 233; // "fold_binop_into_select_a"
1588 case 'b': // 1 string to match.
1589 return 234; // "fold_binop_into_select_b"
1590 }
1591 break;
1592 case 'm': // 1 string to match.
1593 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element", 23) != 0)
1594 break;
1595 return 28; // "match_extract_of_element"
1596 case 'n': // 1 string to match.
1597 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_feeding_and", 23) != 0)
1598 break;
1599 return 134; // "narrow_binop_feeding_and"
1600 case 'p': // 2 strings to match.
1601 if (memcmp(RuleIdentifier.data()+1, "tr_add_with_zero_", 17) != 0)
1602 break;
1603 switch (RuleIdentifier[18]) {
1604 default: break;
1605 case 's': // 1 string to match.
1606 if (memcmp(RuleIdentifier.data()+19, "calar", 5) != 0)
1607 break;
1608 return 188; // "ptr_add_with_zero_scalar"
1609 case 'v': // 1 string to match.
1610 if (memcmp(RuleIdentifier.data()+19, "ector", 5) != 0)
1611 break;
1612 return 189; // "ptr_add_with_zero_vector"
1613 }
1614 break;
1615 case 's': // 3 strings to match.
1616 if (RuleIdentifier[1] != 'e')
1617 break;
1618 switch (RuleIdentifier[2]) {
1619 default: break;
1620 case 'l': // 1 string to match.
1621 if (memcmp(RuleIdentifier.data()+3, "ect_constant_cmp_true", 21) != 0)
1622 break;
1623 return 137; // "select_constant_cmp_true"
1624 case 'x': // 2 strings to match.
1625 if (memcmp(RuleIdentifier.data()+3, "t_inreg_", 8) != 0)
1626 break;
1627 switch (RuleIdentifier[11]) {
1628 default: break;
1629 case 'o': // 1 string to match.
1630 if (memcmp(RuleIdentifier.data()+12, "f_sext_inreg", 12) != 0)
1631 break;
1632 return 58; // "sext_inreg_of_sext_inreg"
1633 case 't': // 1 string to match.
1634 if (memcmp(RuleIdentifier.data()+12, "o_zext_inreg", 12) != 0)
1635 break;
1636 return 153; // "sext_inreg_to_zext_inreg"
1637 }
1638 break;
1639 }
1640 break;
1641 case 'x': // 1 string to match.
1642 if (memcmp(RuleIdentifier.data()+1, "or_of_and_with_same_reg", 23) != 0)
1643 break;
1644 return 187; // "xor_of_and_with_same_reg"
1645 }
1646 break;
1647 case 25: // 9 strings to match.
1648 switch (RuleIdentifier[0]) {
1649 default: break;
1650 case 'b': // 2 strings to match.
1651 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_", 21) != 0)
1652 break;
1653 switch (RuleIdentifier[22]) {
1654 default: break;
1655 case 'a': // 1 string to match.
1656 if (memcmp(RuleIdentifier.data()+23, "nd", 2) != 0)
1657 break;
1658 return 207; // "bitfield_extract_from_and"
1659 case 's': // 1 string to match.
1660 if (memcmp(RuleIdentifier.data()+23, "hr", 2) != 0)
1661 break;
1662 return 208; // "bitfield_extract_from_shr"
1663 }
1664 break;
1665 case 'c': // 1 string to match.
1666 if (memcmp(RuleIdentifier.data()+1, "ombine_shuffle_undef_rhs", 24) != 0)
1667 break;
1668 return 292; // "combine_shuffle_undef_rhs"
1669 case 'e': // 1 string to match.
1670 if (memcmp(RuleIdentifier.data()+1, "xtract_vec_elt_build_vec", 24) != 0)
1671 break;
1672 return 71; // "extract_vec_elt_build_vec"
1673 case 'n': // 1 string to match.
1674 if (memcmp(RuleIdentifier.data()+1, "eg_and_one_to_sext_inreg", 24) != 0)
1675 break;
1676 return 131; // "neg_and_one_to_sext_inreg"
1677 case 'r': // 3 strings to match.
1678 switch (RuleIdentifier[1]) {
1679 default: break;
1680 case 'e': // 2 strings to match.
1681 if (memcmp(RuleIdentifier.data()+2, "dundant_", 8) != 0)
1682 break;
1683 switch (RuleIdentifier[10]) {
1684 default: break;
1685 case 'a': // 1 string to match.
1686 if (memcmp(RuleIdentifier.data()+11, "ext_sext_inreg", 14) != 0)
1687 break;
1688 return 146; // "redundant_aext_sext_inreg"
1689 case 'z': // 1 string to match.
1690 if (memcmp(RuleIdentifier.data()+11, "ext_sext_inreg", 14) != 0)
1691 break;
1692 return 145; // "redundant_zext_sext_inreg"
1693 }
1694 break;
1695 case 'i': // 1 string to match.
1696 if (memcmp(RuleIdentifier.data()+2, "ght_identity_neg_one_fp", 23) != 0)
1697 break;
1698 return 115; // "right_identity_neg_one_fp"
1699 }
1700 break;
1701 case 's': // 1 string to match.
1702 if (memcmp(RuleIdentifier.data()+1, "elect_constant_cmp_false", 24) != 0)
1703 break;
1704 return 136; // "select_constant_cmp_false"
1705 }
1706 break;
1707 case 26: // 5 strings to match.
1708 switch (RuleIdentifier[0]) {
1709 default: break;
1710 case 'b': // 2 strings to match.
1711 if (RuleIdentifier[1] != 'i')
1712 break;
1713 switch (RuleIdentifier[2]) {
1714 default: break;
1715 case 'n': // 1 string to match.
1716 if (memcmp(RuleIdentifier.data()+3, "op_right_undef_to_undef", 23) != 0)
1717 break;
1718 return 80; // "binop_right_undef_to_undef"
1719 case 't': // 1 string to match.
1720 if (memcmp(RuleIdentifier.data()+3, "cast_bitcast_to_bitcast", 23) != 0)
1721 break;
1722 return 111; // "bitcast_bitcast_to_bitcast"
1723 }
1724 break;
1725 case 'c': // 1 string to match.
1726 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_unary_int_op", 25) != 0)
1727 break;
1728 return 214; // "constant_fold_unary_int_op"
1729 case 'f': // 1 string to match.
1730 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_from_or_shift", 25) != 0)
1731 break;
1732 return 194; // "funnel_shift_from_or_shift"
1733 case 'r': // 1 string to match.
1734 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp", 25) != 0)
1735 break;
1736 return 113; // "right_identity_neg_zero_fp"
1737 }
1738 break;
1739 case 27: // 7 strings to match.
1740 switch (RuleIdentifier[0]) {
1741 default: break;
1742 case 'c': // 1 string to match.
1743 if (memcmp(RuleIdentifier.data()+1, "ombine_use_vector_truncate", 26) != 0)
1744 break;
1745 return 294; // "combine_use_vector_truncate"
1746 case 'd': // 1 string to match.
1747 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_or_combine", 26) != 0)
1748 break;
1749 return 128; // "double_icmp_zero_or_combine"
1750 case 'f': // 1 string to match.
1751 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_to_rotate_left", 26) != 0)
1752 break;
1753 return 195; // "funnel_shift_to_rotate_left"
1754 case 'r': // 2 strings to match.
1755 if (memcmp(RuleIdentifier.data()+1, "edundant_", 9) != 0)
1756 break;
1757 switch (RuleIdentifier[10]) {
1758 default: break;
1759 case 'b': // 1 string to match.
1760 if (memcmp(RuleIdentifier.data()+11, "inop_in_equality", 16) != 0)
1761 break;
1762 return 129; // "redundant_binop_in_equality"
1763 case 'n': // 1 string to match.
1764 if (memcmp(RuleIdentifier.data()+11, "eg_operands_fsub", 16) != 0)
1765 break;
1766 return 219; // "redundant_neg_operands_fsub"
1767 }
1768 break;
1769 case 't': // 1 string to match.
1770 if (memcmp(RuleIdentifier.data()+1, "runc_lshr_buildvector_fold", 26) != 0)
1771 break;
1772 return 109; // "trunc_lshr_buildvector_fold"
1773 case 'u': // 1 string to match.
1774 if (memcmp(RuleIdentifier.data()+1, "nmerge_anyext_build_vector", 26) != 0)
1775 break;
1776 return 295; // "unmerge_anyext_build_vector"
1777 }
1778 break;
1779 case 28: // 13 strings to match.
1780 switch (RuleIdentifier[0]) {
1781 default: break;
1782 case 'G': // 1 string to match.
1783 if (memcmp(RuleIdentifier.data()+1, "_OR_commute_constant_to_rhs", 27) != 0)
1784 break;
1785 return 252; // "G_OR_commute_constant_to_rhs"
1786 case 'b': // 1 string to match.
1787 if (memcmp(RuleIdentifier.data()+1, "uildvector_identity_fold_bv", 27) != 0)
1788 break;
1789 return 106; // "buildvector_identity_fold_bv"
1790 case 'd': // 1 string to match.
1791 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_and_combine", 27) != 0)
1792 break;
1793 return 127; // "double_icmp_zero_and_combine"
1794 case 'e': // 1 string to match.
1795 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_undef", 27) != 0)
1796 break;
1797 return 25; // "extract_vector_element_undef"
1798 case 'f': // 1 string to match.
1799 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_to_rotate_right", 27) != 0)
1800 break;
1801 return 196; // "funnel_shift_to_rotate_right"
1802 case 'i': // 1 string to match.
1803 if (memcmp(RuleIdentifier.data()+1, "nsert_vec_elt_out_of_bounds", 27) != 0)
1804 break;
1805 return 88; // "insert_vec_elt_out_of_bounds"
1806 case 'm': // 4 strings to match.
1807 if (memcmp(RuleIdentifier.data()+1, "atch_", 5) != 0)
1808 break;
1809 switch (RuleIdentifier[6]) {
1810 default: break;
1811 case 'a': // 2 strings to match.
1812 if (memcmp(RuleIdentifier.data()+7, "ddos_", 5) != 0)
1813 break;
1814 switch (RuleIdentifier[12]) {
1815 default: break;
1816 case 's': // 1 string to match.
1817 if (memcmp(RuleIdentifier.data()+13, "addo_dead_carry", 15) != 0)
1818 break;
1819 return 305; // "match_addos_saddo_dead_carry"
1820 case 'u': // 1 string to match.
1821 if (memcmp(RuleIdentifier.data()+13, "addo_dead_carry", 15) != 0)
1822 break;
1823 return 306; // "match_addos_uaddo_dead_carry"
1824 }
1825 break;
1826 case 's': // 2 strings to match.
1827 if (memcmp(RuleIdentifier.data()+7, "ubo_no_overflow_", 16) != 0)
1828 break;
1829 switch (RuleIdentifier[23]) {
1830 default: break;
1831 case 's': // 1 string to match.
1832 if (memcmp(RuleIdentifier.data()+24, "subo", 4) != 0)
1833 break;
1834 return 309; // "match_subo_no_overflow_ssubo"
1835 case 'u': // 1 string to match.
1836 if (memcmp(RuleIdentifier.data()+24, "subo", 4) != 0)
1837 break;
1838 return 310; // "match_subo_no_overflow_usubo"
1839 }
1840 break;
1841 }
1842 break;
1843 case 'o': // 1 string to match.
1844 if (memcmp(RuleIdentifier.data()+1, "pt_brcond_by_inverting_cond", 27) != 0)
1845 break;
1846 return 156; // "opt_brcond_by_inverting_cond"
1847 case 'p': // 1 string to match.
1848 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_shuffle_mask", 27) != 0)
1849 break;
1850 return 86; // "propagate_undef_shuffle_mask"
1851 case 's': // 1 string to match.
1852 if (memcmp(RuleIdentifier.data()+1, "hift_of_shifted_logic_chain", 27) != 0)
1853 break;
1854 return 191; // "shift_of_shifted_logic_chain"
1855 }
1856 break;
1857 case 29: // 12 strings to match.
1858 switch (RuleIdentifier[0]) {
1859 default: break;
1860 case 'G': // 4 strings to match.
1861 if (RuleIdentifier[1] != '_')
1862 break;
1863 switch (RuleIdentifier[2]) {
1864 default: break;
1865 case 'A': // 2 strings to match.
1866 switch (RuleIdentifier[3]) {
1867 default: break;
1868 case 'D': // 1 string to match.
1869 if (memcmp(RuleIdentifier.data()+4, "D_commute_constant_to_rhs", 25) != 0)
1870 break;
1871 return 249; // "G_ADD_commute_constant_to_rhs"
1872 case 'N': // 1 string to match.
1873 if (memcmp(RuleIdentifier.data()+4, "D_commute_constant_to_rhs", 25) != 0)
1874 break;
1875 return 251; // "G_AND_commute_constant_to_rhs"
1876 }
1877 break;
1878 case 'M': // 1 string to match.
1879 if (memcmp(RuleIdentifier.data()+3, "UL_commute_constant_to_rhs", 26) != 0)
1880 break;
1881 return 250; // "G_MUL_commute_constant_to_rhs"
1882 case 'X': // 1 string to match.
1883 if (memcmp(RuleIdentifier.data()+3, "OR_commute_constant_to_rhs", 26) != 0)
1884 break;
1885 return 253; // "G_XOR_commute_constant_to_rhs"
1886 }
1887 break;
1888 case 'b': // 2 strings to match.
1889 switch (RuleIdentifier[1]) {
1890 default: break;
1891 case 'i': // 1 string to match.
1892 if (memcmp(RuleIdentifier.data()+2, "tfield_extract_from_shr_and", 27) != 0)
1893 break;
1894 return 209; // "bitfield_extract_from_shr_and"
1895 case 'u': // 1 string to match.
1896 if (memcmp(RuleIdentifier.data()+2, "ildvector_identity_fold_bvt", 27) != 0)
1897 break;
1898 return 107; // "buildvector_identity_fold_bvt"
1899 }
1900 break;
1901 case 'c': // 4 strings to match.
1902 if (RuleIdentifier[1] != 'o')
1903 break;
1904 switch (RuleIdentifier[2]) {
1905 default: break;
1906 case 'm': // 2 strings to match.
1907 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1908 break;
1909 switch (RuleIdentifier[8]) {
1910 default: break;
1911 case 'e': // 1 string to match.
1912 if (memcmp(RuleIdentifier.data()+9, "xtracted_vector_load", 20) != 0)
1913 break;
1914 return 75; // "combine_extracted_vector_load"
1915 case 's': // 1 string to match.
1916 if (memcmp(RuleIdentifier.data()+9, "huffle_disjoint_mask", 20) != 0)
1917 break;
1918 return 293; // "combine_shuffle_disjoint_mask"
1919 }
1920 break;
1921 case 'n': // 2 strings to match.
1922 if (memcmp(RuleIdentifier.data()+3, "stant_fold_intrinsic_", 21) != 0)
1923 break;
1924 switch (RuleIdentifier[24]) {
1925 default: break;
1926 case 'r': // 1 string to match.
1927 if (memcmp(RuleIdentifier.data()+25, "ound", 4) != 0)
1928 break;
1929 return 166; // "constant_fold_intrinsic_round"
1930 case 't': // 1 string to match.
1931 if (memcmp(RuleIdentifier.data()+25, "runc", 4) != 0)
1932 break;
1933 return 165; // "constant_fold_intrinsic_trunc"
1934 }
1935 break;
1936 }
1937 break;
1938 case 'e': // 1 string to match.
1939 if (memcmp(RuleIdentifier.data()+1, "xtract_vec_elt_out_of_bounds", 28) != 0)
1940 break;
1941 return 89; // "extract_vec_elt_out_of_bounds"
1942 case 'i': // 1 string to match.
1943 if (memcmp(RuleIdentifier.data()+1, "cmp_to_true_false_known_bits", 28) != 0)
1944 break;
1945 return 125; // "icmp_to_true_false_known_bits"
1946 }
1947 break;
1948 case 30: // 6 strings to match.
1949 switch (RuleIdentifier[0]) {
1950 default: break;
1951 case 'G': // 4 strings to match.
1952 if (RuleIdentifier[1] != '_')
1953 break;
1954 switch (RuleIdentifier[2]) {
1955 default: break;
1956 case 'S': // 2 strings to match.
1957 if (RuleIdentifier[3] != 'M')
1958 break;
1959 switch (RuleIdentifier[4]) {
1960 default: break;
1961 case 'A': // 1 string to match.
1962 if (memcmp(RuleIdentifier.data()+5, "X_commute_constant_to_rhs", 25) != 0)
1963 break;
1964 return 255; // "G_SMAX_commute_constant_to_rhs"
1965 case 'I': // 1 string to match.
1966 if (memcmp(RuleIdentifier.data()+5, "N_commute_constant_to_rhs", 25) != 0)
1967 break;
1968 return 254; // "G_SMIN_commute_constant_to_rhs"
1969 }
1970 break;
1971 case 'U': // 2 strings to match.
1972 if (RuleIdentifier[3] != 'M')
1973 break;
1974 switch (RuleIdentifier[4]) {
1975 default: break;
1976 case 'A': // 1 string to match.
1977 if (memcmp(RuleIdentifier.data()+5, "X_commute_constant_to_rhs", 25) != 0)
1978 break;
1979 return 257; // "G_UMAX_commute_constant_to_rhs"
1980 case 'I': // 1 string to match.
1981 if (memcmp(RuleIdentifier.data()+5, "N_commute_constant_to_rhs", 25) != 0)
1982 break;
1983 return 256; // "G_UMIN_commute_constant_to_rhs"
1984 }
1985 break;
1986 }
1987 break;
1988 case 'f': // 1 string to match.
1989 if (memcmp(RuleIdentifier.data()+1, "reeze_of_non_undef_non_poison", 29) != 0)
1990 break;
1991 return 46; // "freeze_of_non_undef_non_poison"
1992 case 'r': // 1 string to match.
1993 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp_nsz", 29) != 0)
1994 break;
1995 return 114; // "right_identity_neg_zero_fp_nsz"
1996 }
1997 break;
1998 case 31: // 10 strings to match.
1999 switch (RuleIdentifier[0]) {
2000 default: break;
2001 case 'G': // 6 strings to match.
2002 if (RuleIdentifier[1] != '_')
2003 break;
2004 switch (RuleIdentifier[2]) {
2005 default: break;
2006 case 'S': // 3 strings to match.
2007 switch (RuleIdentifier[3]) {
2008 default: break;
2009 case 'A': // 1 string to match.
2010 if (memcmp(RuleIdentifier.data()+4, "DDO_commute_constant_to_rhs", 27) != 0)
2011 break;
2012 return 267; // "G_SADDO_commute_constant_to_rhs"
2013 case 'M': // 2 strings to match.
2014 if (memcmp(RuleIdentifier.data()+4, "UL", 2) != 0)
2015 break;
2016 switch (RuleIdentifier[6]) {
2017 default: break;
2018 case 'H': // 1 string to match.
2019 if (memcmp(RuleIdentifier.data()+7, "_commute_constant_to_rhs", 24) != 0)
2020 break;
2021 return 259; // "G_SMULH_commute_constant_to_rhs"
2022 case 'O': // 1 string to match.
2023 if (memcmp(RuleIdentifier.data()+7, "_commute_constant_to_rhs", 24) != 0)
2024 break;
2025 return 269; // "G_SMULO_commute_constant_to_rhs"
2026 }
2027 break;
2028 }
2029 break;
2030 case 'U': // 3 strings to match.
2031 switch (RuleIdentifier[3]) {
2032 default: break;
2033 case 'A': // 1 string to match.
2034 if (memcmp(RuleIdentifier.data()+4, "DDO_commute_constant_to_rhs", 27) != 0)
2035 break;
2036 return 266; // "G_UADDO_commute_constant_to_rhs"
2037 case 'M': // 2 strings to match.
2038 if (memcmp(RuleIdentifier.data()+4, "UL", 2) != 0)
2039 break;
2040 switch (RuleIdentifier[6]) {
2041 default: break;
2042 case 'H': // 1 string to match.
2043 if (memcmp(RuleIdentifier.data()+7, "_commute_constant_to_rhs", 24) != 0)
2044 break;
2045 return 258; // "G_UMULH_commute_constant_to_rhs"
2046 case 'O': // 1 string to match.
2047 if (memcmp(RuleIdentifier.data()+7, "_commute_constant_to_rhs", 24) != 0)
2048 break;
2049 return 268; // "G_UMULO_commute_constant_to_rhs"
2050 }
2051 break;
2052 }
2053 break;
2054 }
2055 break;
2056 case 'i': // 2 strings to match.
2057 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_element_", 21) != 0)
2058 break;
2059 switch (RuleIdentifier[22]) {
2060 default: break;
2061 case 'e': // 1 string to match.
2062 if (memcmp(RuleIdentifier.data()+23, "lt_undef", 8) != 0)
2063 break;
2064 return 27; // "insert_vector_element_elt_undef"
2065 case 'i': // 1 string to match.
2066 if (memcmp(RuleIdentifier.data()+23, "dx_undef", 8) != 0)
2067 break;
2068 return 26; // "insert_vector_element_idx_undef"
2069 }
2070 break;
2071 case 'r': // 2 strings to match.
2072 if (memcmp(RuleIdentifier.data()+1, "edundant_neg_operands_fadd_", 27) != 0)
2073 break;
2074 switch (RuleIdentifier[28]) {
2075 default: break;
2076 case 'l': // 1 string to match.
2077 if (memcmp(RuleIdentifier.data()+29, "hs", 2) != 0)
2078 break;
2079 return 218; // "redundant_neg_operands_fadd_lhs"
2080 case 'r': // 1 string to match.
2081 if (memcmp(RuleIdentifier.data()+29, "hs", 2) != 0)
2082 break;
2083 return 217; // "redundant_neg_operands_fadd_rhs"
2084 }
2085 break;
2086 }
2087 break;
2088 case 32: // 5 strings to match.
2089 switch (RuleIdentifier[0]) {
2090 default: break;
2091 case 'b': // 1 string to match.
2092 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_sext_inreg", 31) != 0)
2093 break;
2094 return 206; // "bitfield_extract_from_sext_inreg"
2095 case 'c': // 2 strings to match.
2096 if (memcmp(RuleIdentifier.data()+1, "ombine_f", 8) != 0)
2097 break;
2098 switch (RuleIdentifier[9]) {
2099 default: break;
2100 case 'a': // 1 string to match.
2101 if (memcmp(RuleIdentifier.data()+10, "dd_fmul_to_fmad_or_fma", 22) != 0)
2102 break;
2103 return 225; // "combine_fadd_fmul_to_fmad_or_fma"
2104 case 's': // 1 string to match.
2105 if (memcmp(RuleIdentifier.data()+10, "ub_fmul_to_fmad_or_fma", 22) != 0)
2106 break;
2107 return 229; // "combine_fsub_fmul_to_fmad_or_fma"
2108 }
2109 break;
2110 case 'e': // 1 string to match.
2111 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_not_const", 31) != 0)
2112 break;
2113 return 30; // "extract_vector_element_not_const"
2114 case 's': // 1 string to match.
2115 if (memcmp(RuleIdentifier.data()+1, "elect_constant_cmp_general_true", 31) != 0)
2116 break;
2117 return 139; // "select_constant_cmp_general_true"
2118 }
2119 break;
2120 case 33: // 10 strings to match.
2121 switch (RuleIdentifier[0]) {
2122 default: break;
2123 case 'G': // 6 strings to match.
2124 if (RuleIdentifier[1] != '_')
2125 break;
2126 switch (RuleIdentifier[2]) {
2127 default: break;
2128 case 'F': // 2 strings to match.
2129 switch (RuleIdentifier[3]) {
2130 default: break;
2131 case 'A': // 1 string to match.
2132 if (memcmp(RuleIdentifier.data()+4, "DD_commute_fp_constant_to_rhs", 29) != 0)
2133 break;
2134 return 270; // "G_FADD_commute_fp_constant_to_rhs"
2135 case 'M': // 1 string to match.
2136 if (memcmp(RuleIdentifier.data()+4, "UL_commute_fp_constant_to_rhs", 29) != 0)
2137 break;
2138 return 271; // "G_FMUL_commute_fp_constant_to_rhs"
2139 }
2140 break;
2141 case 'S': // 2 strings to match.
2142 switch (RuleIdentifier[3]) {
2143 default: break;
2144 case 'A': // 1 string to match.
2145 if (memcmp(RuleIdentifier.data()+4, "DDSAT_commute_constant_to_rhs", 29) != 0)
2146 break;
2147 return 261; // "G_SADDSAT_commute_constant_to_rhs"
2148 case 'M': // 1 string to match.
2149 if (memcmp(RuleIdentifier.data()+4, "ULFIX_commute_constant_to_rhs", 29) != 0)
2150 break;
2151 return 262; // "G_SMULFIX_commute_constant_to_rhs"
2152 }
2153 break;
2154 case 'U': // 2 strings to match.
2155 switch (RuleIdentifier[3]) {
2156 default: break;
2157 case 'A': // 1 string to match.
2158 if (memcmp(RuleIdentifier.data()+4, "DDSAT_commute_constant_to_rhs", 29) != 0)
2159 break;
2160 return 260; // "G_UADDSAT_commute_constant_to_rhs"
2161 case 'M': // 1 string to match.
2162 if (memcmp(RuleIdentifier.data()+4, "ULFIX_commute_constant_to_rhs", 29) != 0)
2163 break;
2164 return 263; // "G_UMULFIX_commute_constant_to_rhs"
2165 }
2166 break;
2167 }
2168 break;
2169 case 'c': // 1 string to match.
2170 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_intrinsic_roundeven", 32) != 0)
2171 break;
2172 return 167; // "constant_fold_intrinsic_roundeven"
2173 case 'r': // 2 strings to match.
2174 if (memcmp(RuleIdentifier.data()+1, "edundant_", 9) != 0)
2175 break;
2176 switch (RuleIdentifier[10]) {
2177 default: break;
2178 case 'a': // 1 string to match.
2179 if (memcmp(RuleIdentifier.data()+11, "ext_unmerge_sext_inreg", 22) != 0)
2180 break;
2181 return 148; // "redundant_aext_unmerge_sext_inreg"
2182 case 'z': // 1 string to match.
2183 if (memcmp(RuleIdentifier.data()+11, "ext_unmerge_sext_inreg", 22) != 0)
2184 break;
2185 return 147; // "redundant_zext_unmerge_sext_inreg"
2186 }
2187 break;
2188 case 's': // 1 string to match.
2189 if (memcmp(RuleIdentifier.data()+1, "elect_constant_cmp_general_false", 32) != 0)
2190 break;
2191 return 138; // "select_constant_cmp_general_false"
2192 }
2193 break;
2194 case 34: // 1 string to match.
2195 if (memcmp(RuleIdentifier.data()+0, "extract_all_elts_from_build_vector", 34) != 0)
2196 break;
2197 return 72; // "extract_all_elts_from_build_vector"
2198 case 35: // 1 string to match.
2199 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_build_vector", 35) != 0)
2200 break;
2201 return 32; // "extract_vector_element_build_vector"
2202 case 36: // 7 strings to match.
2203 switch (RuleIdentifier[0]) {
2204 default: break;
2205 case 'G': // 4 strings to match.
2206 if (RuleIdentifier[1] != '_')
2207 break;
2208 switch (RuleIdentifier[2]) {
2209 default: break;
2210 case 'F': // 2 strings to match.
2211 if (RuleIdentifier[3] != 'M')
2212 break;
2213 switch (RuleIdentifier[4]) {
2214 default: break;
2215 case 'A': // 1 string to match.
2216 if (memcmp(RuleIdentifier.data()+5, "XNUM_commute_fp_constant_to_rhs", 31) != 0)
2217 break;
2218 return 273; // "G_FMAXNUM_commute_fp_constant_to_rhs"
2219 case 'I': // 1 string to match.
2220 if (memcmp(RuleIdentifier.data()+5, "NNUM_commute_fp_constant_to_rhs", 31) != 0)
2221 break;
2222 return 272; // "G_FMINNUM_commute_fp_constant_to_rhs"
2223 }
2224 break;
2225 case 'S': // 1 string to match.
2226 if (memcmp(RuleIdentifier.data()+3, "MULFIXSAT_commute_constant_to_rhs", 33) != 0)
2227 break;
2228 return 264; // "G_SMULFIXSAT_commute_constant_to_rhs"
2229 case 'U': // 1 string to match.
2230 if (memcmp(RuleIdentifier.data()+3, "MULFIXSAT_commute_constant_to_rhs", 33) != 0)
2231 break;
2232 return 265; // "G_UMULFIXSAT_commute_constant_to_rhs"
2233 }
2234 break;
2235 case 'c': // 2 strings to match.
2236 if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
2237 break;
2238 switch (RuleIdentifier[8]) {
2239 default: break;
2240 case 'f': // 1 string to match.
2241 if (memcmp(RuleIdentifier.data()+9, "add_fma_fmul_to_fmad_or_fma", 27) != 0)
2242 break;
2243 return 227; // "combine_fadd_fma_fmul_to_fmad_or_fma"
2244 case 'i': // 1 string to match.
2245 if (memcmp(RuleIdentifier.data()+9, "nsert_vec_elts_build_vector", 27) != 0)
2246 break;
2247 return 70; // "combine_insert_vec_elts_build_vector"
2248 }
2249 break;
2250 case 'p': // 1 string to match.
2251 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_all_ops_build_vector", 35) != 0)
2252 break;
2253 return 85; // "propagate_undef_all_ops_build_vector"
2254 }
2255 break;
2256 case 37: // 5 strings to match.
2257 switch (RuleIdentifier[0]) {
2258 default: break;
2259 case 'G': // 2 strings to match.
2260 if (memcmp(RuleIdentifier.data()+1, "_FM", 3) != 0)
2261 break;
2262 switch (RuleIdentifier[4]) {
2263 default: break;
2264 case 'A': // 1 string to match.
2265 if (memcmp(RuleIdentifier.data()+5, "XIMUM_commute_fp_constant_to_rhs", 32) != 0)
2266 break;
2267 return 277; // "G_FMAXIMUM_commute_fp_constant_to_rhs"
2268 case 'I': // 1 string to match.
2269 if (memcmp(RuleIdentifier.data()+5, "NIMUM_commute_fp_constant_to_rhs", 32) != 0)
2270 break;
2271 return 276; // "G_FMINIMUM_commute_fp_constant_to_rhs"
2272 }
2273 break;
2274 case 'c': // 1 string to match.
2275 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fneg_fmul_to_fmad_or_fma", 36) != 0)
2276 break;
2277 return 230; // "combine_fsub_fneg_fmul_to_fmad_or_fma"
2278 case 'e': // 1 string to match.
2279 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_shuffle_vector", 36) != 0)
2280 break;
2281 return 40; // "extract_vector_element_shuffle_vector"
2282 case 'h': // 1 string to match.
2283 if (memcmp(RuleIdentifier.data()+1, "oist_logic_op_with_same_opcode_hands", 36) != 0)
2284 break;
2285 return 118; // "hoist_logic_op_with_same_opcode_hands"
2286 }
2287 break;
2288 case 38: // 3 strings to match.
2289 switch (RuleIdentifier[0]) {
2290 default: break;
2291 case 'c': // 2 strings to match.
2292 if (memcmp(RuleIdentifier.data()+1, "ombine_f", 8) != 0)
2293 break;
2294 switch (RuleIdentifier[9]) {
2295 default: break;
2296 case 'a': // 1 string to match.
2297 if (memcmp(RuleIdentifier.data()+10, "dd_fpext_fmul_to_fmad_or_fma", 28) != 0)
2298 break;
2299 return 226; // "combine_fadd_fpext_fmul_to_fmad_or_fma"
2300 case 's': // 1 string to match.
2301 if (memcmp(RuleIdentifier.data()+10, "ub_fpext_fmul_to_fmad_or_fma", 28) != 0)
2302 break;
2303 return 231; // "combine_fsub_fpext_fmul_to_fmad_or_fma"
2304 }
2305 break;
2306 case 'p': // 1 string to match.
2307 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_all_ops_shuffle_vector", 37) != 0)
2308 break;
2309 return 84; // "propagate_undef_all_ops_shuffle_vector"
2310 }
2311 break;
2312 case 40: // 1 string to match.
2313 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_different_indices", 40) != 0)
2314 break;
2315 return 31; // "extract_vector_element_different_indices"
2316 case 41: // 2 strings to match.
2317 if (memcmp(RuleIdentifier.data()+0, "G_FM", 4) != 0)
2318 break;
2319 switch (RuleIdentifier[4]) {
2320 default: break;
2321 case 'A': // 1 string to match.
2322 if (memcmp(RuleIdentifier.data()+5, "XNUM_IEEE_commute_fp_constant_to_rhs", 36) != 0)
2323 break;
2324 return 275; // "G_FMAXNUM_IEEE_commute_fp_constant_to_rhs"
2325 case 'I': // 1 string to match.
2326 if (memcmp(RuleIdentifier.data()+5, "NNUM_IEEE_commute_fp_constant_to_rhs", 36) != 0)
2327 break;
2328 return 274; // "G_FMINNUM_IEEE_commute_fp_constant_to_rhs"
2329 }
2330 break;
2331 case 42: // 9 strings to match.
2332 switch (RuleIdentifier[0]) {
2333 default: break;
2334 case 'c': // 1 string to match.
2335 if (memcmp(RuleIdentifier.data()+1, "ombine_fadd_fpext_fma_fmul_to_fmad_or_fma", 41) != 0)
2336 break;
2337 return 228; // "combine_fadd_fpext_fma_fmul_to_fmad_or_fma"
2338 case 'e': // 7 strings to match.
2339 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_build_vector_trunc", 40) != 0)
2340 break;
2341 switch (RuleIdentifier[41]) {
2342 default: break;
2343 case '2': // 1 string to match.
2344 return 33; // "extract_vector_element_build_vector_trunc2"
2345 case '3': // 1 string to match.
2346 return 34; // "extract_vector_element_build_vector_trunc3"
2347 case '4': // 1 string to match.
2348 return 35; // "extract_vector_element_build_vector_trunc4"
2349 case '5': // 1 string to match.
2350 return 36; // "extract_vector_element_build_vector_trunc5"
2351 case '6': // 1 string to match.
2352 return 37; // "extract_vector_element_build_vector_trunc6"
2353 case '7': // 1 string to match.
2354 return 38; // "extract_vector_element_build_vector_trunc7"
2355 case '8': // 1 string to match.
2356 return 39; // "extract_vector_element_build_vector_trunc8"
2357 }
2358 break;
2359 case 'f': // 1 string to match.
2360 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_left", 41) != 0)
2361 break;
2362 return 200; // "funnel_shift_or_shift_to_funnel_shift_left"
2363 }
2364 break;
2365 case 43: // 2 strings to match.
2366 switch (RuleIdentifier[0]) {
2367 default: break;
2368 case 'c': // 1 string to match.
2369 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fpext_fneg_fmul_to_fmad_or_fma", 42) != 0)
2370 break;
2371 return 232; // "combine_fsub_fpext_fneg_fmul_to_fmad_or_fma"
2372 case 'f': // 1 string to match.
2373 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_right", 42) != 0)
2374 break;
2375 return 201; // "funnel_shift_or_shift_to_funnel_shift_right"
2376 }
2377 break;
2378 case 44: // 1 string to match.
2379 if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_extract_vector_element", 44) != 0)
2380 break;
2381 return 41; // "insert_vector_element_extract_vector_element"
2382 case 46: // 1 string to match.
2383 if (memcmp(RuleIdentifier.data()+0, "push_freeze_to_prevent_poison_from_propagating", 46) != 0)
2384 break;
2385 return 47; // "push_freeze_to_prevent_poison_from_propagating"
2386 }
2387#endif // ifndef NDEBUG
2388
2389 return std::nullopt;
2390}
2391static std::optional<std::pair<uint64_t, uint64_t>> getRuleRangeForIdentifier(StringRef RuleIdentifier) {
2392 std::pair<StringRef, StringRef> RangePair = RuleIdentifier.split('-');
2393 if (!RangePair.second.empty()) {
2394 const auto First = getRuleIdxForIdentifier(RangePair.first);
2395 const auto Last = getRuleIdxForIdentifier(RangePair.second);
2396 if (!First || !Last)
2397 return std::nullopt;
2398 if (First >= Last)
2399 report_fatal_error("Beginning of range should be before end of range");
2400 return {{*First, *Last + 1}};
2401 }
2402 if (RangePair.first == "*") {
2403 return {{0, 351}};
2404 }
2405 const auto I = getRuleIdxForIdentifier(RangePair.first);
2406 if (!I)
2407 return std::nullopt;
2408 return {{*I, *I + 1}};
2409}
2410
2411bool AArch64PreLegalizerCombinerImplRuleConfig::setRuleEnabled(StringRef RuleIdentifier) {
2412 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
2413 if (!MaybeRange)
2414 return false;
2415 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
2416 DisabledRules.reset(I);
2417 return true;
2418}
2419
2420bool AArch64PreLegalizerCombinerImplRuleConfig::setRuleDisabled(StringRef RuleIdentifier) {
2421 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
2422 if (!MaybeRange)
2423 return false;
2424 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
2425 DisabledRules.set(I);
2426 return true;
2427}
2428
2429static std::vector<std::string> AArch64PreLegalizerCombinerOption;
2430static cl::list<std::string> AArch64PreLegalizerCombinerDisableOption(
2431 "aarch64prelegalizercombiner-disable-rule",
2432 cl::desc("Disable one or more combiner rules temporarily in the AArch64PreLegalizerCombiner pass"),
2433 cl::CommaSeparated,
2434 cl::Hidden,
2435 cl::cat(GICombinerOptionCategory),
2436 cl::callback([](const std::string &Str) {
2437 AArch64PreLegalizerCombinerOption.push_back(Str);
2438 }));
2439static cl::list<std::string> AArch64PreLegalizerCombinerOnlyEnableOption(
2440 "aarch64prelegalizercombiner-only-enable-rule",
2441 cl::desc("Disable all rules in the AArch64PreLegalizerCombiner pass then re-enable the specified ones"),
2442 cl::Hidden,
2443 cl::cat(GICombinerOptionCategory),
2444 cl::callback([](const std::string &CommaSeparatedArg) {
2445 StringRef Str = CommaSeparatedArg;
2446 AArch64PreLegalizerCombinerOption.push_back("*");
2447 do {
2448 auto X = Str.split(",");
2449 AArch64PreLegalizerCombinerOption.push_back(("!" + X.first).str());
2450 Str = X.second;
2451 } while (!Str.empty());
2452 }));
2453
2454
2455bool AArch64PreLegalizerCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
2456 return !DisabledRules.test(RuleID);
2457}
2458bool AArch64PreLegalizerCombinerImplRuleConfig::parseCommandLineOption() {
2459 for (StringRef Identifier : AArch64PreLegalizerCombinerOption) {
2460 bool Enabled = Identifier.consume_front("!");
2461 if (Enabled && !setRuleEnabled(Identifier))
2462 return false;
2463 if (!Enabled && !setRuleDisabled(Identifier))
2464 return false;
2465 }
2466 return true;
2467}
2468
2469
2470#endif // GET_GICOMBINER_TYPES
2471
2472#ifdef GET_GICOMBINER_TYPES
2473
2474const unsigned MAX_SUBTARGET_PREDICATES = 1;
2475using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
2476
2477#endif // GET_GICOMBINER_TYPES
2478
2479#ifdef GET_GICOMBINER_CLASS_MEMBERS
2480
2481 bool canMatchOpcode(unsigned Opc) const override;
2482 uint32_t getRootFlagsToDrop() const override;
2483
2484#endif // GET_GICOMBINER_CLASS_MEMBERS
2485
2486#ifdef GET_GICOMBINER_CLASS_MEMBERS
2487
2488PredicateBitset AvailableModuleFeatures;
2489mutable PredicateBitset AvailableFunctionFeatures;
2490PredicateBitset getAvailableFeatures() const {
2491 return AvailableModuleFeatures | AvailableFunctionFeatures;
2492}
2493PredicateBitset
2494computeAvailableModuleFeatures(const AArch64Subtarget *Subtarget) const;
2495PredicateBitset
2496computeAvailableFunctionFeatures(const AArch64Subtarget *Subtarget,
2497 const MachineFunction *MF) const;
2498void setupGeneratedPerFunctionState(MachineFunction &MF) override;
2499
2500#endif // GET_GICOMBINER_CLASS_MEMBERS
2501
2502#ifdef GET_GICOMBINER_CLASS_MEMBERS
2503
2504 mutable MatcherState State;
2505 typedef ComplexRendererFns(AArch64PreLegalizerCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
2506 typedef void(AArch64PreLegalizerCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
2507 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
2508 static AArch64PreLegalizerCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
2509 static AArch64PreLegalizerCombinerImpl::CustomRendererFn CustomRenderers[];
2510 bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
2511 bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
2512 bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
2513 const uint8_t *getMatchTable() const override;
2514 bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
2515 bool testMOPredicate_MO(unsigned PredicateID, const MachineOperand &MO, const MatcherState &State) const override;
2516 bool testSimplePredicate(unsigned PredicateID) const override;
2517 bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
2518
2519#endif // GET_GICOMBINER_CLASS_MEMBERS
2520
2521#ifdef GET_GICOMBINER_IMPL
2522
2523// LLT Objects.
2524enum {
2525 GILLT_s1,
2526};
2527const static size_t NumTypeObjects = 1;
2528const static LLT TypeObjects[] = {
2529 LLT::scalar(1),
2530};
2531
2532// Bits for subtarget features that participate in instruction matching.
2533enum SubtargetFeatureBits : uint8_t {
2534 Feature_HasDotProdBit = 0,
2535};
2536
2537PredicateBitset AArch64PreLegalizerCombinerImpl::
2538computeAvailableModuleFeatures(const AArch64Subtarget *Subtarget) const {
2539 PredicateBitset Features{};
2540 if (Subtarget->hasDotProd())
2541 Features.set(Feature_HasDotProdBit);
2542 return Features;
2543}
2544
2545void AArch64PreLegalizerCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) {
2546 AvailableFunctionFeatures = computeAvailableFunctionFeatures((const AArch64Subtarget *)&MF.getSubtarget(), &MF);
2547}
2548PredicateBitset AArch64PreLegalizerCombinerImpl::
2549computeAvailableFunctionFeatures(const AArch64Subtarget *Subtarget, const MachineFunction *MF) const {
2550 PredicateBitset Features{};
2551 return Features;
2552}
2553
2554// Feature bitsets.
2555enum {
2556 GIFBS_Invalid,
2557 GIFBS_HasDotProd,
2558};
2559constexpr static PredicateBitset FeatureBitsets[] {
2560 {}, // GIFBS_Invalid
2561 {Feature_HasDotProdBit, },
2562};
2563
2564// ComplexPattern predicates.
2565enum {
2566 GICP_Invalid,
2567};
2568// See constructor for table contents
2569
2570AArch64PreLegalizerCombinerImpl::ComplexMatcherMemFn
2571AArch64PreLegalizerCombinerImpl::ComplexPredicateFns[] = {
2572 nullptr, // GICP_Invalid
2573};
2574
2575enum {
2576 GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
2577 GICXXPred_MI_Predicate_GICombiner1,
2578 GICXXPred_MI_Predicate_GICombiner2,
2579 GICXXPred_MI_Predicate_GICombiner3,
2580 GICXXPred_MI_Predicate_GICombiner4,
2581 GICXXPred_MI_Predicate_GICombiner5,
2582 GICXXPred_MI_Predicate_GICombiner6,
2583 GICXXPred_MI_Predicate_GICombiner7,
2584 GICXXPred_MI_Predicate_GICombiner8,
2585 GICXXPred_MI_Predicate_GICombiner9,
2586 GICXXPred_MI_Predicate_GICombiner10,
2587 GICXXPred_MI_Predicate_GICombiner11,
2588 GICXXPred_MI_Predicate_GICombiner12,
2589 GICXXPred_MI_Predicate_GICombiner13,
2590 GICXXPred_MI_Predicate_GICombiner14,
2591 GICXXPred_MI_Predicate_GICombiner15,
2592 GICXXPred_MI_Predicate_GICombiner16,
2593 GICXXPred_MI_Predicate_GICombiner17,
2594 GICXXPred_MI_Predicate_GICombiner18,
2595 GICXXPred_MI_Predicate_GICombiner19,
2596 GICXXPred_MI_Predicate_GICombiner20,
2597 GICXXPred_MI_Predicate_GICombiner21,
2598 GICXXPred_MI_Predicate_GICombiner22,
2599 GICXXPred_MI_Predicate_GICombiner23,
2600 GICXXPred_MI_Predicate_GICombiner24,
2601 GICXXPred_MI_Predicate_GICombiner25,
2602 GICXXPred_MI_Predicate_GICombiner26,
2603 GICXXPred_MI_Predicate_GICombiner27,
2604 GICXXPred_MI_Predicate_GICombiner28,
2605 GICXXPred_MI_Predicate_GICombiner29,
2606 GICXXPred_MI_Predicate_GICombiner30,
2607 GICXXPred_MI_Predicate_GICombiner31,
2608 GICXXPred_MI_Predicate_GICombiner32,
2609 GICXXPred_MI_Predicate_GICombiner33,
2610 GICXXPred_MI_Predicate_GICombiner34,
2611 GICXXPred_MI_Predicate_GICombiner35,
2612 GICXXPred_MI_Predicate_GICombiner36,
2613 GICXXPred_MI_Predicate_GICombiner37,
2614 GICXXPred_MI_Predicate_GICombiner38,
2615 GICXXPred_MI_Predicate_GICombiner39,
2616 GICXXPred_MI_Predicate_GICombiner40,
2617 GICXXPred_MI_Predicate_GICombiner41,
2618 GICXXPred_MI_Predicate_GICombiner42,
2619 GICXXPred_MI_Predicate_GICombiner43,
2620 GICXXPred_MI_Predicate_GICombiner44,
2621 GICXXPred_MI_Predicate_GICombiner45,
2622 GICXXPred_MI_Predicate_GICombiner46,
2623 GICXXPred_MI_Predicate_GICombiner47,
2624 GICXXPred_MI_Predicate_GICombiner48,
2625 GICXXPred_MI_Predicate_GICombiner49,
2626 GICXXPred_MI_Predicate_GICombiner50,
2627 GICXXPred_MI_Predicate_GICombiner51,
2628 GICXXPred_MI_Predicate_GICombiner52,
2629 GICXXPred_MI_Predicate_GICombiner53,
2630 GICXXPred_MI_Predicate_GICombiner54,
2631 GICXXPred_MI_Predicate_GICombiner55,
2632 GICXXPred_MI_Predicate_GICombiner56,
2633 GICXXPred_MI_Predicate_GICombiner57,
2634 GICXXPred_MI_Predicate_GICombiner58,
2635 GICXXPred_MI_Predicate_GICombiner59,
2636 GICXXPred_MI_Predicate_GICombiner60,
2637 GICXXPred_MI_Predicate_GICombiner61,
2638 GICXXPred_MI_Predicate_GICombiner62,
2639 GICXXPred_MI_Predicate_GICombiner63,
2640};
2641bool AArch64PreLegalizerCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
2642 switch (PredicateID) {
2643 case GICXXPred_MI_Predicate_GICombiner0: {
2644 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg());
2645 }
2646 case GICXXPred_MI_Predicate_GICombiner1: {
2647 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg());
2648 }
2649 case GICXXPred_MI_Predicate_GICombiner2: {
2650 return MRI.getType(State.MIs[1]->getOperand(1).getReg()).getScalarSizeInBits() ==
2651 MRI.getType(State.MIs[0]->getOperand(0).getReg()).getScalarSizeInBits();
2652 }
2653 case GICXXPred_MI_Predicate_GICombiner3: {
2654 return isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI);
2655 }
2656 case GICXXPred_MI_Predicate_GICombiner4: {
2657 return Helper.matchExtractVectorElement(*State.MIs[0]);
2658 }
2659 case GICXXPred_MI_Predicate_GICombiner5: {
2660 return Helper.matchInsertVectorElementOOB(*State.MIs[0]);
2661 }
2662 case GICXXPred_MI_Predicate_GICombiner6: {
2663 return isGuaranteedNotToBeUndefOrPoison(State.MIs[0]->getOperand(1).getReg(), MRI);
2664 }
2665 case GICXXPred_MI_Predicate_GICombiner7: {
2666 return Helper.matchAllExplicitUsesAreUndef(*State.MIs[0]);
2667 }
2668 case GICXXPred_MI_Predicate_GICombiner8: {
2669 return Helper.matchUndefShuffleVectorMask(*State.MIs[0]);
2670 }
2671 case GICXXPred_MI_Predicate_GICombiner9: {
2672 return cast<GStore>(State.MIs[0])->isUnordered();
2673 }
2674 case GICXXPred_MI_Predicate_GICombiner10: {
2675 return Helper.matchInsertExtractVecEltOutOfBounds(*State.MIs[0]);
2676 }
2677 case GICXXPred_MI_Predicate_GICombiner11: {
2678 return Helper.matchSelectSameVal(*State.MIs[0]);
2679 }
2680 case GICXXPred_MI_Predicate_GICombiner12: {
2681 return Helper.matchConstantOp(State.MIs[0]->getOperand(1), 0);
2682 }
2683 case GICXXPred_MI_Predicate_GICombiner13: {
2684 return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());
2685 }
2686 case GICXXPred_MI_Predicate_GICombiner14: {
2687 return MRI.getType(State.MIs[0]->getOperand(0).getReg()).getSizeInBits() ==
2688 MRI.getType(State.MIs[1]->getOperand(1).getReg()).getSizeInBits();
2689 }
2690 case GICXXPred_MI_Predicate_GICombiner15: {
2691 return MRI.getType(State.MIs[0]->getOperand(0).getReg()).getSizeInBits() >
2692 MRI.getType(State.MIs[1]->getOperand(1).getReg()).getSizeInBits();
2693 }
2694 case GICXXPred_MI_Predicate_GICombiner16: {
2695 return MRI.getType(State.MIs[0]->getOperand(0).getReg()).getSizeInBits() <
2696 MRI.getType(State.MIs[1]->getOperand(1).getReg()).getSizeInBits();
2697 }
2698 case GICXXPred_MI_Predicate_GICombiner17: {
2699 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
2700 }
2701 case GICXXPred_MI_Predicate_GICombiner18: {
2702 return MRI.getType(State.MIs[1]->getOperand(1).getReg()) != MRI.getType(State.MIs[0]->getOperand(0).getReg());
2703 }
2704 case GICXXPred_MI_Predicate_GICombiner19: {
2705 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
2706 }
2707 case GICXXPred_MI_Predicate_GICombiner20: {
2708 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 0.0);
2709 }
2710 case GICXXPred_MI_Predicate_GICombiner21: {
2711 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0);
2712 }
2713 case GICXXPred_MI_Predicate_GICombiner22: {
2714 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_EQ &&
2715 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
2716 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
2717 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
2718 }
2719 case GICXXPred_MI_Predicate_GICombiner23: {
2720 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_NE &&
2721 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
2722 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
2723 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
2724 }
2725 case GICXXPred_MI_Predicate_GICombiner24: {
2726 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
2727 Helper.isLegalOrBeforeLegalizer({
2728 TargetOpcode::G_SEXT_INREG,
2729 {MRI.getType(State.MIs[1]->getOperand(1).getReg())},
2730 {},
2731 {1}
2732 });
2733 }
2734 case GICXXPred_MI_Predicate_GICombiner25: {
2735 auto C = isConstantOrConstantSplatVector(State.MIs[0]->getOperand(1).getReg(), MRI);
2736 return C && C->isZero();
2737 llvm_unreachable("GICombiner25 should have returned");
2738 }
2739 case GICXXPred_MI_Predicate_GICombiner26: {
2740 auto C = isConstantOrConstantSplatVector(State.MIs[0]->getOperand(1).getReg(), MRI);
2741 return C && !C->isZero();
2742 llvm_unreachable("GICombiner26 should have returned");
2743 }
2744 case GICXXPred_MI_Predicate_GICombiner27: {
2745 return !isConstantOrConstantSplatVector(State.MIs[0]->getOperand(1).getReg(), MRI) &&
2746 MRI.getType(State.MIs[0]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg()) &&
2747 VT->computeNumSignBits(State.MIs[0]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg()).getScalarSizeInBits();
2748 }
2749 case GICXXPred_MI_Predicate_GICombiner28: {
2750 return Helper.matchRedundantSExtInReg(*State.MIs[0]);
2751 }
2752 case GICXXPred_MI_Predicate_GICombiner29: {
2753 LLT SrcTy = MRI.getType(State.MIs[1]->getOperand(1).getReg());
2754 return State.MIs[0]->getOperand(2).getImm() <= SrcTy.getScalarSizeInBits() &&
2755 VT->computeNumSignBits(State.MIs[1]->getOperand(1).getReg()) >=
2756 (SrcTy.getScalarSizeInBits() - State.MIs[0]->getOperand(2).getImm() + 1);
2757 llvm_unreachable("GICombiner29 should have returned");
2758 }
2759 case GICXXPred_MI_Predicate_GICombiner30: {
2760 return Helper.matchConstantOp(State.MIs[0]->getOperand(3), 2);
2761 }
2762 case GICXXPred_MI_Predicate_GICombiner31: {
2763 return Helper.matchConstantOp(State.MIs[0]->getOperand(4), 0);
2764 }
2765 case GICXXPred_MI_Predicate_GICombiner32: {
2766 return Helper.isConstantNaN(State.MIs[0]->getOperand(1).getReg());
2767 }
2768 case GICXXPred_MI_Predicate_GICombiner33: {
2769 return Helper.isConstantNaN(State.MIs[0]->getOperand(2).getReg()) &&
2770 !Helper.isConstantNaN(State.MIs[0]->getOperand(1).getReg());
2771 }
2772 case GICXXPred_MI_Predicate_GICombiner34: {
2773 LLT Ty = MRI.getType(State.MIs[0]->getOperand(0).getReg());
2774 return Ty.isPointer() &&
2775 !isConstantOrConstantSplatVector(State.MIs[0]->getOperand(2).getReg(), MRI) &&
2776 !State.MIs[0]->getMF()->getDataLayout().isNonIntegralAddressSpace(
2777 Ty.getAddressSpace());
2778 llvm_unreachable("GICombiner34 should have returned");
2779 }
2780 case GICXXPred_MI_Predicate_GICombiner35: {
2781 return Helper.matchPtrAddZeroVector(*State.MIs[0]);
2782 }
2783 case GICXXPred_MI_Predicate_GICombiner36: {
2784 return Helper.isLegalOrBeforeLegalizer(
2785 {TargetOpcode::G_ROTL,
2786 {MRI.getType(State.MIs[0]->getOperand(1).getReg()),
2787 MRI.getType(State.MIs[0]->getOperand(1).getReg())}});
2788 }
2789 case GICXXPred_MI_Predicate_GICombiner37: {
2790 return Helper.isLegalOrBeforeLegalizer(
2791 {TargetOpcode::G_ROTR,
2792 {MRI.getType(State.MIs[0]->getOperand(1).getReg()),
2793 MRI.getType(State.MIs[0]->getOperand(1).getReg())}});
2794 }
2795 case GICXXPred_MI_Predicate_GICombiner38: {
2796 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_LSHR,
2797 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
2798 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
2799 }
2800 case GICXXPred_MI_Predicate_GICombiner39: {
2801 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_SHL,
2802 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
2803 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
2804 }
2805 case GICXXPred_MI_Predicate_GICombiner40: {
2806 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
2807 isConstantOrConstantSplatVector(State.MIs[1]->getOperand(2).getReg(), MRI) &&
2808 isConstantOrConstantSplatVector(State.MIs[0]->getOperand(2).getReg(), MRI) &&
2809 Helper.isDesirableToCommuteWithShift(*State.MIs[0]);
2810 }
2811 case GICXXPred_MI_Predicate_GICombiner41: {
2812 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_FSUB,
2813 {MRI.getType(State.MIs[0]->getOperand(0).getReg())}});
2814 }
2815 case GICXXPred_MI_Predicate_GICombiner42: {
2816 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_FADD,
2817 {MRI.getType(State.MIs[0]->getOperand(0).getReg())}});
2818 }
2819 case GICXXPred_MI_Predicate_GICombiner43: {
2820 return Helper.matchSameRegOrICstOrSplat(State.MIs[1]->getOperand(2).getReg(),
2821 State.MIs[0]->getOperand(2).getReg());
2822 }
2823 case GICXXPred_MI_Predicate_GICombiner44: {
2824 return Helper.matchSameRegOrICstOrSplat(State.MIs[1]->getOperand(1).getReg(),
2825 State.MIs[0]->getOperand(2).getReg());
2826 }
2827 case GICXXPred_MI_Predicate_GICombiner45: {
2828 return Helper.matchSameRegOrICstOrSplat(State.MIs[0]->getOperand(1).getReg(),
2829 State.MIs[1]->getOperand(2).getReg());
2830 }
2831 case GICXXPred_MI_Predicate_GICombiner46: {
2832 return Helper.matchSameRegOrICstOrSplat(State.MIs[0]->getOperand(1).getReg(),
2833 State.MIs[1]->getOperand(1).getReg());
2834 }
2835 case GICXXPred_MI_Predicate_GICombiner47: {
2836 return Helper.matchFsubToFneg(*State.MIs[0]);
2837 }
2838 case GICXXPred_MI_Predicate_GICombiner48: {
2839 return Helper.matchCommuteConstantToRHS(*State.MIs[0]);
2840 }
2841 case GICXXPred_MI_Predicate_GICombiner49: {
2842 return Helper.matchCommuteFPConstantToRHS(*State.MIs[0]);
2843 }
2844 case GICXXPred_MI_Predicate_GICombiner50: {
2845 return Helper.isLegalOrBeforeLegalizer(
2846 {TargetOpcode::G_ANYEXT,
2847 {MRI.getType(State.MIs[0]->getOperand(0).getReg()),
2848 MRI.getType(State.MIs[0]->getOperand(1).getReg())}});
2849 }
2850 case GICXXPred_MI_Predicate_GICombiner51: {
2851 return Helper.isLegalOrBeforeLegalizer(
2852 {TargetOpcode::G_ZEXT,
2853 {MRI.getType(State.MIs[0]->getOperand(0).getReg()),
2854 MRI.getType(State.MIs[0]->getOperand(1).getReg())}});
2855 }
2856 case GICXXPred_MI_Predicate_GICombiner52: {
2857 return MRI.use_nodbg_empty(State.MIs[0]->getOperand(1).getReg()) &&
2858 Helper.isLegalOrBeforeLegalizer(
2859 {TargetOpcode::G_ADD,
2860 {MRI.getType(State.MIs[0]->getOperand(0).getReg())}});
2861 }
2862 case GICXXPred_MI_Predicate_GICombiner53: {
2863 return Helper.matchTruncUSatU(*State.MIs[0], *State.MIs[1]);
2864 }
2865 case GICXXPred_MI_Predicate_GICombiner54: {
2866 return Helper.matchTruncUSatUToFPTOUISat(*State.MIs[0], *State.MIs[1]);
2867 }
2868 case GICXXPred_MI_Predicate_GICombiner55: {
2869 return Helper.matchCountZeroToZeroPoison(*State.MIs[0],
2870 TargetOpcode::G_CTLZ, TargetOpcode::G_CTLZ_ZERO_POISON);
2871 }
2872 case GICXXPred_MI_Predicate_GICombiner56: {
2873 return Helper.matchCountZeroToZeroPoison(*State.MIs[0],
2874 TargetOpcode::G_CTTZ, TargetOpcode::G_CTTZ_ZERO_POISON);
2875 }
2876 case GICXXPred_MI_Predicate_GICombiner57: {
2877 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
2878 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
2879 }
2880 case GICXXPred_MI_Predicate_GICombiner58: {
2881 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
2882 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
2883 }
2884 case GICXXPred_MI_Predicate_GICombiner59: {
2885 return MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(2).getReg()) &&
2886 MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg());
2887 }
2888 case GICXXPred_MI_Predicate_GICombiner60: {
2889 return MRI.getType(State.MIs[2]->getOperand(1).getReg()) ==
2890 MRI.getType(State.MIs[3]->getOperand(1).getReg()) &&
2891 Helper.isLegal({TargetOpcode::G_UAVGFLOOR,
2892 {MRI.getType(State.MIs[2]->getOperand(1).getReg())}});
2893 }
2894 case GICXXPred_MI_Predicate_GICombiner61: {
2895 return MRI.getType(State.MIs[2]->getOperand(1).getReg()) ==
2896 MRI.getType(State.MIs[3]->getOperand(1).getReg()) &&
2897 Helper.isLegal({TargetOpcode::G_SAVGFLOOR,
2898 {MRI.getType(State.MIs[2]->getOperand(1).getReg())}});
2899 }
2900 case GICXXPred_MI_Predicate_GICombiner62: {
2901 return MRI.getType(State.MIs[3]->getOperand(1).getReg()) ==
2902 MRI.getType(State.MIs[4]->getOperand(1).getReg()) &&
2903 Helper.isLegal({TargetOpcode::G_UAVGCEIL,
2904 {MRI.getType(State.MIs[3]->getOperand(1).getReg())}});
2905 }
2906 case GICXXPred_MI_Predicate_GICombiner63: {
2907 return MRI.getType(State.MIs[3]->getOperand(1).getReg()) ==
2908 MRI.getType(State.MIs[4]->getOperand(1).getReg()) &&
2909 Helper.isLegal({TargetOpcode::G_SAVGCEIL,
2910 {MRI.getType(State.MIs[3]->getOperand(1).getReg())}});
2911 }
2912 }
2913 llvm_unreachable("Unknown predicate");
2914 return false;
2915}
2916bool AArch64PreLegalizerCombinerImpl::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
2917 llvm_unreachable("Unknown predicate");
2918 return false;
2919}
2920bool AArch64PreLegalizerCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
2921 llvm_unreachable("Unknown predicate");
2922 return false;
2923}
2924bool AArch64PreLegalizerCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
2925 llvm_unreachable("Unknown predicate");
2926 return false;
2927}
2928bool AArch64PreLegalizerCombinerImpl::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
2929 llvm_unreachable("Unknown predicate");
2930 return false;
2931}
2932enum {
2933 GICXXPred_Simple_IsRule0Enabled = GICXXPred_Invalid + 1,
2934 GICXXPred_Simple_IsRule1Enabled,
2935 GICXXPred_Simple_IsRule2Enabled,
2936 GICXXPred_Simple_IsRule3Enabled,
2937 GICXXPred_Simple_IsRule4Enabled,
2938 GICXXPred_Simple_IsRule5Enabled,
2939 GICXXPred_Simple_IsRule6Enabled,
2940 GICXXPred_Simple_IsRule7Enabled,
2941 GICXXPred_Simple_IsRule8Enabled,
2942 GICXXPred_Simple_IsRule9Enabled,
2943 GICXXPred_Simple_IsRule10Enabled,
2944 GICXXPred_Simple_IsRule11Enabled,
2945 GICXXPred_Simple_IsRule12Enabled,
2946 GICXXPred_Simple_IsRule13Enabled,
2947 GICXXPred_Simple_IsRule14Enabled,
2948 GICXXPred_Simple_IsRule15Enabled,
2949 GICXXPred_Simple_IsRule16Enabled,
2950 GICXXPred_Simple_IsRule17Enabled,
2951 GICXXPred_Simple_IsRule18Enabled,
2952 GICXXPred_Simple_IsRule19Enabled,
2953 GICXXPred_Simple_IsRule20Enabled,
2954 GICXXPred_Simple_IsRule21Enabled,
2955 GICXXPred_Simple_IsRule22Enabled,
2956 GICXXPred_Simple_IsRule23Enabled,
2957 GICXXPred_Simple_IsRule24Enabled,
2958 GICXXPred_Simple_IsRule25Enabled,
2959 GICXXPred_Simple_IsRule26Enabled,
2960 GICXXPred_Simple_IsRule27Enabled,
2961 GICXXPred_Simple_IsRule28Enabled,
2962 GICXXPred_Simple_IsRule29Enabled,
2963 GICXXPred_Simple_IsRule30Enabled,
2964 GICXXPred_Simple_IsRule31Enabled,
2965 GICXXPred_Simple_IsRule32Enabled,
2966 GICXXPred_Simple_IsRule33Enabled,
2967 GICXXPred_Simple_IsRule34Enabled,
2968 GICXXPred_Simple_IsRule35Enabled,
2969 GICXXPred_Simple_IsRule36Enabled,
2970 GICXXPred_Simple_IsRule37Enabled,
2971 GICXXPred_Simple_IsRule38Enabled,
2972 GICXXPred_Simple_IsRule39Enabled,
2973 GICXXPred_Simple_IsRule40Enabled,
2974 GICXXPred_Simple_IsRule41Enabled,
2975 GICXXPred_Simple_IsRule42Enabled,
2976 GICXXPred_Simple_IsRule43Enabled,
2977 GICXXPred_Simple_IsRule44Enabled,
2978 GICXXPred_Simple_IsRule45Enabled,
2979 GICXXPred_Simple_IsRule46Enabled,
2980 GICXXPred_Simple_IsRule47Enabled,
2981 GICXXPred_Simple_IsRule48Enabled,
2982 GICXXPred_Simple_IsRule49Enabled,
2983 GICXXPred_Simple_IsRule50Enabled,
2984 GICXXPred_Simple_IsRule51Enabled,
2985 GICXXPred_Simple_IsRule52Enabled,
2986 GICXXPred_Simple_IsRule53Enabled,
2987 GICXXPred_Simple_IsRule54Enabled,
2988 GICXXPred_Simple_IsRule55Enabled,
2989 GICXXPred_Simple_IsRule56Enabled,
2990 GICXXPred_Simple_IsRule57Enabled,
2991 GICXXPred_Simple_IsRule58Enabled,
2992 GICXXPred_Simple_IsRule59Enabled,
2993 GICXXPred_Simple_IsRule60Enabled,
2994 GICXXPred_Simple_IsRule61Enabled,
2995 GICXXPred_Simple_IsRule62Enabled,
2996 GICXXPred_Simple_IsRule63Enabled,
2997 GICXXPred_Simple_IsRule64Enabled,
2998 GICXXPred_Simple_IsRule65Enabled,
2999 GICXXPred_Simple_IsRule66Enabled,
3000 GICXXPred_Simple_IsRule67Enabled,
3001 GICXXPred_Simple_IsRule68Enabled,
3002 GICXXPred_Simple_IsRule69Enabled,
3003 GICXXPred_Simple_IsRule70Enabled,
3004 GICXXPred_Simple_IsRule71Enabled,
3005 GICXXPred_Simple_IsRule72Enabled,
3006 GICXXPred_Simple_IsRule73Enabled,
3007 GICXXPred_Simple_IsRule74Enabled,
3008 GICXXPred_Simple_IsRule75Enabled,
3009 GICXXPred_Simple_IsRule76Enabled,
3010 GICXXPred_Simple_IsRule77Enabled,
3011 GICXXPred_Simple_IsRule78Enabled,
3012 GICXXPred_Simple_IsRule79Enabled,
3013 GICXXPred_Simple_IsRule80Enabled,
3014 GICXXPred_Simple_IsRule81Enabled,
3015 GICXXPred_Simple_IsRule82Enabled,
3016 GICXXPred_Simple_IsRule83Enabled,
3017 GICXXPred_Simple_IsRule84Enabled,
3018 GICXXPred_Simple_IsRule85Enabled,
3019 GICXXPred_Simple_IsRule86Enabled,
3020 GICXXPred_Simple_IsRule87Enabled,
3021 GICXXPred_Simple_IsRule88Enabled,
3022 GICXXPred_Simple_IsRule89Enabled,
3023 GICXXPred_Simple_IsRule90Enabled,
3024 GICXXPred_Simple_IsRule91Enabled,
3025 GICXXPred_Simple_IsRule92Enabled,
3026 GICXXPred_Simple_IsRule93Enabled,
3027 GICXXPred_Simple_IsRule94Enabled,
3028 GICXXPred_Simple_IsRule95Enabled,
3029 GICXXPred_Simple_IsRule96Enabled,
3030 GICXXPred_Simple_IsRule97Enabled,
3031 GICXXPred_Simple_IsRule98Enabled,
3032 GICXXPred_Simple_IsRule99Enabled,
3033 GICXXPred_Simple_IsRule100Enabled,
3034 GICXXPred_Simple_IsRule101Enabled,
3035 GICXXPred_Simple_IsRule102Enabled,
3036 GICXXPred_Simple_IsRule103Enabled,
3037 GICXXPred_Simple_IsRule104Enabled,
3038 GICXXPred_Simple_IsRule105Enabled,
3039 GICXXPred_Simple_IsRule106Enabled,
3040 GICXXPred_Simple_IsRule107Enabled,
3041 GICXXPred_Simple_IsRule108Enabled,
3042 GICXXPred_Simple_IsRule109Enabled,
3043 GICXXPred_Simple_IsRule110Enabled,
3044 GICXXPred_Simple_IsRule111Enabled,
3045 GICXXPred_Simple_IsRule112Enabled,
3046 GICXXPred_Simple_IsRule113Enabled,
3047 GICXXPred_Simple_IsRule114Enabled,
3048 GICXXPred_Simple_IsRule115Enabled,
3049 GICXXPred_Simple_IsRule116Enabled,
3050 GICXXPred_Simple_IsRule117Enabled,
3051 GICXXPred_Simple_IsRule118Enabled,
3052 GICXXPred_Simple_IsRule119Enabled,
3053 GICXXPred_Simple_IsRule120Enabled,
3054 GICXXPred_Simple_IsRule121Enabled,
3055 GICXXPred_Simple_IsRule122Enabled,
3056 GICXXPred_Simple_IsRule123Enabled,
3057 GICXXPred_Simple_IsRule124Enabled,
3058 GICXXPred_Simple_IsRule125Enabled,
3059 GICXXPred_Simple_IsRule126Enabled,
3060 GICXXPred_Simple_IsRule127Enabled,
3061 GICXXPred_Simple_IsRule128Enabled,
3062 GICXXPred_Simple_IsRule129Enabled,
3063 GICXXPred_Simple_IsRule130Enabled,
3064 GICXXPred_Simple_IsRule131Enabled,
3065 GICXXPred_Simple_IsRule132Enabled,
3066 GICXXPred_Simple_IsRule133Enabled,
3067 GICXXPred_Simple_IsRule134Enabled,
3068 GICXXPred_Simple_IsRule135Enabled,
3069 GICXXPred_Simple_IsRule136Enabled,
3070 GICXXPred_Simple_IsRule137Enabled,
3071 GICXXPred_Simple_IsRule138Enabled,
3072 GICXXPred_Simple_IsRule139Enabled,
3073 GICXXPred_Simple_IsRule140Enabled,
3074 GICXXPred_Simple_IsRule141Enabled,
3075 GICXXPred_Simple_IsRule142Enabled,
3076 GICXXPred_Simple_IsRule143Enabled,
3077 GICXXPred_Simple_IsRule144Enabled,
3078 GICXXPred_Simple_IsRule145Enabled,
3079 GICXXPred_Simple_IsRule146Enabled,
3080 GICXXPred_Simple_IsRule147Enabled,
3081 GICXXPred_Simple_IsRule148Enabled,
3082 GICXXPred_Simple_IsRule149Enabled,
3083 GICXXPred_Simple_IsRule150Enabled,
3084 GICXXPred_Simple_IsRule151Enabled,
3085 GICXXPred_Simple_IsRule152Enabled,
3086 GICXXPred_Simple_IsRule153Enabled,
3087 GICXXPred_Simple_IsRule154Enabled,
3088 GICXXPred_Simple_IsRule155Enabled,
3089 GICXXPred_Simple_IsRule156Enabled,
3090 GICXXPred_Simple_IsRule157Enabled,
3091 GICXXPred_Simple_IsRule158Enabled,
3092 GICXXPred_Simple_IsRule159Enabled,
3093 GICXXPred_Simple_IsRule160Enabled,
3094 GICXXPred_Simple_IsRule161Enabled,
3095 GICXXPred_Simple_IsRule162Enabled,
3096 GICXXPred_Simple_IsRule163Enabled,
3097 GICXXPred_Simple_IsRule164Enabled,
3098 GICXXPred_Simple_IsRule165Enabled,
3099 GICXXPred_Simple_IsRule166Enabled,
3100 GICXXPred_Simple_IsRule167Enabled,
3101 GICXXPred_Simple_IsRule168Enabled,
3102 GICXXPred_Simple_IsRule169Enabled,
3103 GICXXPred_Simple_IsRule170Enabled,
3104 GICXXPred_Simple_IsRule171Enabled,
3105 GICXXPred_Simple_IsRule172Enabled,
3106 GICXXPred_Simple_IsRule173Enabled,
3107 GICXXPred_Simple_IsRule174Enabled,
3108 GICXXPred_Simple_IsRule175Enabled,
3109 GICXXPred_Simple_IsRule176Enabled,
3110 GICXXPred_Simple_IsRule177Enabled,
3111 GICXXPred_Simple_IsRule178Enabled,
3112 GICXXPred_Simple_IsRule179Enabled,
3113 GICXXPred_Simple_IsRule180Enabled,
3114 GICXXPred_Simple_IsRule181Enabled,
3115 GICXXPred_Simple_IsRule182Enabled,
3116 GICXXPred_Simple_IsRule183Enabled,
3117 GICXXPred_Simple_IsRule184Enabled,
3118 GICXXPred_Simple_IsRule185Enabled,
3119 GICXXPred_Simple_IsRule186Enabled,
3120 GICXXPred_Simple_IsRule187Enabled,
3121 GICXXPred_Simple_IsRule188Enabled,
3122 GICXXPred_Simple_IsRule189Enabled,
3123 GICXXPred_Simple_IsRule190Enabled,
3124 GICXXPred_Simple_IsRule191Enabled,
3125 GICXXPred_Simple_IsRule192Enabled,
3126 GICXXPred_Simple_IsRule193Enabled,
3127 GICXXPred_Simple_IsRule194Enabled,
3128 GICXXPred_Simple_IsRule195Enabled,
3129 GICXXPred_Simple_IsRule196Enabled,
3130 GICXXPred_Simple_IsRule197Enabled,
3131 GICXXPred_Simple_IsRule198Enabled,
3132 GICXXPred_Simple_IsRule199Enabled,
3133 GICXXPred_Simple_IsRule200Enabled,
3134 GICXXPred_Simple_IsRule201Enabled,
3135 GICXXPred_Simple_IsRule202Enabled,
3136 GICXXPred_Simple_IsRule203Enabled,
3137 GICXXPred_Simple_IsRule204Enabled,
3138 GICXXPred_Simple_IsRule205Enabled,
3139 GICXXPred_Simple_IsRule206Enabled,
3140 GICXXPred_Simple_IsRule207Enabled,
3141 GICXXPred_Simple_IsRule208Enabled,
3142 GICXXPred_Simple_IsRule209Enabled,
3143 GICXXPred_Simple_IsRule210Enabled,
3144 GICXXPred_Simple_IsRule211Enabled,
3145 GICXXPred_Simple_IsRule212Enabled,
3146 GICXXPred_Simple_IsRule213Enabled,
3147 GICXXPred_Simple_IsRule214Enabled,
3148 GICXXPred_Simple_IsRule215Enabled,
3149 GICXXPred_Simple_IsRule216Enabled,
3150 GICXXPred_Simple_IsRule217Enabled,
3151 GICXXPred_Simple_IsRule218Enabled,
3152 GICXXPred_Simple_IsRule219Enabled,
3153 GICXXPred_Simple_IsRule220Enabled,
3154 GICXXPred_Simple_IsRule221Enabled,
3155 GICXXPred_Simple_IsRule222Enabled,
3156 GICXXPred_Simple_IsRule223Enabled,
3157 GICXXPred_Simple_IsRule224Enabled,
3158 GICXXPred_Simple_IsRule225Enabled,
3159 GICXXPred_Simple_IsRule226Enabled,
3160 GICXXPred_Simple_IsRule227Enabled,
3161 GICXXPred_Simple_IsRule228Enabled,
3162 GICXXPred_Simple_IsRule229Enabled,
3163 GICXXPred_Simple_IsRule230Enabled,
3164 GICXXPred_Simple_IsRule231Enabled,
3165 GICXXPred_Simple_IsRule232Enabled,
3166 GICXXPred_Simple_IsRule233Enabled,
3167 GICXXPred_Simple_IsRule234Enabled,
3168 GICXXPred_Simple_IsRule235Enabled,
3169 GICXXPred_Simple_IsRule236Enabled,
3170 GICXXPred_Simple_IsRule237Enabled,
3171 GICXXPred_Simple_IsRule238Enabled,
3172 GICXXPred_Simple_IsRule239Enabled,
3173 GICXXPred_Simple_IsRule240Enabled,
3174 GICXXPred_Simple_IsRule241Enabled,
3175 GICXXPred_Simple_IsRule242Enabled,
3176 GICXXPred_Simple_IsRule243Enabled,
3177 GICXXPred_Simple_IsRule244Enabled,
3178 GICXXPred_Simple_IsRule245Enabled,
3179 GICXXPred_Simple_IsRule246Enabled,
3180 GICXXPred_Simple_IsRule247Enabled,
3181 GICXXPred_Simple_IsRule248Enabled,
3182 GICXXPred_Simple_IsRule249Enabled,
3183 GICXXPred_Simple_IsRule250Enabled,
3184 GICXXPred_Simple_IsRule251Enabled,
3185 GICXXPred_Simple_IsRule252Enabled,
3186 GICXXPred_Simple_IsRule253Enabled,
3187 GICXXPred_Simple_IsRule254Enabled,
3188 GICXXPred_Simple_IsRule255Enabled,
3189 GICXXPred_Simple_IsRule256Enabled,
3190 GICXXPred_Simple_IsRule257Enabled,
3191 GICXXPred_Simple_IsRule258Enabled,
3192 GICXXPred_Simple_IsRule259Enabled,
3193 GICXXPred_Simple_IsRule260Enabled,
3194 GICXXPred_Simple_IsRule261Enabled,
3195 GICXXPred_Simple_IsRule262Enabled,
3196 GICXXPred_Simple_IsRule263Enabled,
3197 GICXXPred_Simple_IsRule264Enabled,
3198 GICXXPred_Simple_IsRule265Enabled,
3199 GICXXPred_Simple_IsRule266Enabled,
3200 GICXXPred_Simple_IsRule267Enabled,
3201 GICXXPred_Simple_IsRule268Enabled,
3202 GICXXPred_Simple_IsRule269Enabled,
3203 GICXXPred_Simple_IsRule270Enabled,
3204 GICXXPred_Simple_IsRule271Enabled,
3205 GICXXPred_Simple_IsRule272Enabled,
3206 GICXXPred_Simple_IsRule273Enabled,
3207 GICXXPred_Simple_IsRule274Enabled,
3208 GICXXPred_Simple_IsRule275Enabled,
3209 GICXXPred_Simple_IsRule276Enabled,
3210 GICXXPred_Simple_IsRule277Enabled,
3211 GICXXPred_Simple_IsRule278Enabled,
3212 GICXXPred_Simple_IsRule279Enabled,
3213 GICXXPred_Simple_IsRule280Enabled,
3214 GICXXPred_Simple_IsRule281Enabled,
3215 GICXXPred_Simple_IsRule282Enabled,
3216 GICXXPred_Simple_IsRule283Enabled,
3217 GICXXPred_Simple_IsRule284Enabled,
3218 GICXXPred_Simple_IsRule285Enabled,
3219 GICXXPred_Simple_IsRule286Enabled,
3220 GICXXPred_Simple_IsRule287Enabled,
3221 GICXXPred_Simple_IsRule288Enabled,
3222 GICXXPred_Simple_IsRule289Enabled,
3223 GICXXPred_Simple_IsRule290Enabled,
3224 GICXXPred_Simple_IsRule291Enabled,
3225 GICXXPred_Simple_IsRule292Enabled,
3226 GICXXPred_Simple_IsRule293Enabled,
3227 GICXXPred_Simple_IsRule294Enabled,
3228 GICXXPred_Simple_IsRule295Enabled,
3229 GICXXPred_Simple_IsRule296Enabled,
3230 GICXXPred_Simple_IsRule297Enabled,
3231 GICXXPred_Simple_IsRule298Enabled,
3232 GICXXPred_Simple_IsRule299Enabled,
3233 GICXXPred_Simple_IsRule300Enabled,
3234 GICXXPred_Simple_IsRule301Enabled,
3235 GICXXPred_Simple_IsRule302Enabled,
3236 GICXXPred_Simple_IsRule303Enabled,
3237 GICXXPred_Simple_IsRule304Enabled,
3238 GICXXPred_Simple_IsRule305Enabled,
3239 GICXXPred_Simple_IsRule306Enabled,
3240 GICXXPred_Simple_IsRule307Enabled,
3241 GICXXPred_Simple_IsRule308Enabled,
3242 GICXXPred_Simple_IsRule309Enabled,
3243 GICXXPred_Simple_IsRule310Enabled,
3244 GICXXPred_Simple_IsRule311Enabled,
3245 GICXXPred_Simple_IsRule312Enabled,
3246 GICXXPred_Simple_IsRule313Enabled,
3247 GICXXPred_Simple_IsRule314Enabled,
3248 GICXXPred_Simple_IsRule315Enabled,
3249 GICXXPred_Simple_IsRule316Enabled,
3250 GICXXPred_Simple_IsRule317Enabled,
3251 GICXXPred_Simple_IsRule318Enabled,
3252 GICXXPred_Simple_IsRule319Enabled,
3253 GICXXPred_Simple_IsRule320Enabled,
3254 GICXXPred_Simple_IsRule321Enabled,
3255 GICXXPred_Simple_IsRule322Enabled,
3256 GICXXPred_Simple_IsRule323Enabled,
3257 GICXXPred_Simple_IsRule324Enabled,
3258 GICXXPred_Simple_IsRule325Enabled,
3259 GICXXPred_Simple_IsRule326Enabled,
3260 GICXXPred_Simple_IsRule327Enabled,
3261 GICXXPred_Simple_IsRule328Enabled,
3262 GICXXPred_Simple_IsRule329Enabled,
3263 GICXXPred_Simple_IsRule330Enabled,
3264 GICXXPred_Simple_IsRule331Enabled,
3265 GICXXPred_Simple_IsRule332Enabled,
3266 GICXXPred_Simple_IsRule333Enabled,
3267 GICXXPred_Simple_IsRule334Enabled,
3268 GICXXPred_Simple_IsRule335Enabled,
3269 GICXXPred_Simple_IsRule336Enabled,
3270 GICXXPred_Simple_IsRule337Enabled,
3271 GICXXPred_Simple_IsRule338Enabled,
3272 GICXXPred_Simple_IsRule339Enabled,
3273 GICXXPred_Simple_IsRule340Enabled,
3274 GICXXPred_Simple_IsRule341Enabled,
3275 GICXXPred_Simple_IsRule342Enabled,
3276 GICXXPred_Simple_IsRule343Enabled,
3277 GICXXPred_Simple_IsRule344Enabled,
3278 GICXXPred_Simple_IsRule345Enabled,
3279 GICXXPred_Simple_IsRule346Enabled,
3280 GICXXPred_Simple_IsRule347Enabled,
3281 GICXXPred_Simple_IsRule348Enabled,
3282 GICXXPred_Simple_IsRule349Enabled,
3283 GICXXPred_Simple_IsRule350Enabled,
3284};
3285
3286bool AArch64PreLegalizerCombinerImpl::testSimplePredicate(unsigned Predicate) const {
3287 return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1);
3288}
3289// Custom renderers.
3290enum {
3291 GICR_Invalid,
3292};
3293AArch64PreLegalizerCombinerImpl::CustomRendererFn
3294AArch64PreLegalizerCombinerImpl::CustomRenderers[] = {
3295 nullptr, // GICR_Invalid
3296};
3297
3298bool AArch64PreLegalizerCombinerImpl::canMatchOpcode(unsigned Opc) const {
3299 switch (Opc) {
3300 case TargetOpcode::G_SADDE:
3301 case TargetOpcode::G_SSUBE:
3302 case TargetOpcode::G_UADDE:
3303 case TargetOpcode::G_USUBE:
3304 case TargetOpcode::G_FCMP:
3305 case TargetOpcode::G_FMA:
3306 case TargetOpcode::G_FMAD:
3307 case TargetOpcode::G_FSHL:
3308 case TargetOpcode::G_FSHR:
3309 case TargetOpcode::G_ICMP:
3310 case TargetOpcode::G_INSERT_VECTOR_ELT:
3311 case TargetOpcode::G_MEMCPY:
3312 case TargetOpcode::G_MEMMOVE:
3313 case TargetOpcode::G_MEMSET:
3314 case TargetOpcode::G_SADDO:
3315 case TargetOpcode::G_SELECT:
3316 case TargetOpcode::G_SHUFFLE_VECTOR:
3317 case TargetOpcode::G_SMULFIX:
3318 case TargetOpcode::G_SMULFIXSAT:
3319 case TargetOpcode::G_SMULO:
3320 case TargetOpcode::G_SSUBO:
3321 case TargetOpcode::G_UADDO:
3322 case TargetOpcode::G_UMULFIX:
3323 case TargetOpcode::G_UMULFIXSAT:
3324 case TargetOpcode::G_UMULO:
3325 case TargetOpcode::G_USUBO:
3326 case TargetOpcode::G_ADD:
3327 case TargetOpcode::G_AND:
3328 case TargetOpcode::G_ASHR:
3329 case TargetOpcode::G_EXTRACT_VECTOR_ELT:
3330 case TargetOpcode::G_FADD:
3331 case TargetOpcode::G_FCOPYSIGN:
3332 case TargetOpcode::G_FDIV:
3333 case TargetOpcode::G_FMAXIMUM:
3334 case TargetOpcode::G_FMAXIMUMNUM:
3335 case TargetOpcode::G_FMAXNUM:
3336 case TargetOpcode::G_FMAXNUM_IEEE:
3337 case TargetOpcode::G_FMINIMUM:
3338 case TargetOpcode::G_FMINIMUMNUM:
3339 case TargetOpcode::G_FMINNUM:
3340 case TargetOpcode::G_FMINNUM_IEEE:
3341 case TargetOpcode::G_FMUL:
3342 case TargetOpcode::G_FPOWI:
3343 case TargetOpcode::G_FREM:
3344 case TargetOpcode::G_FSUB:
3345 case TargetOpcode::G_LSHR:
3346 case TargetOpcode::G_MEMCPY_INLINE:
3347 case TargetOpcode::G_MEMSET_INLINE:
3348 case TargetOpcode::G_MERGE_VALUES:
3349 case TargetOpcode::G_MUL:
3350 case TargetOpcode::G_OR:
3351 case TargetOpcode::G_PTR_ADD:
3352 case TargetOpcode::G_ROTL:
3353 case TargetOpcode::G_ROTR:
3354 case TargetOpcode::G_SADDSAT:
3355 case TargetOpcode::G_SDIV:
3356 case TargetOpcode::G_SEXT_INREG:
3357 case TargetOpcode::G_SHL:
3358 case TargetOpcode::G_SMAX:
3359 case TargetOpcode::G_SMIN:
3360 case TargetOpcode::G_SMULH:
3361 case TargetOpcode::G_SREM:
3362 case TargetOpcode::G_SSHLSAT:
3363 case TargetOpcode::G_SUB:
3364 case TargetOpcode::G_UADDSAT:
3365 case TargetOpcode::G_UDIV:
3366 case TargetOpcode::G_UMAX:
3367 case TargetOpcode::G_UMIN:
3368 case TargetOpcode::G_UMULH:
3369 case TargetOpcode::G_UREM:
3370 case TargetOpcode::G_USHLSAT:
3371 case TargetOpcode::G_XOR:
3372 case TargetOpcode::COPY:
3373 case TargetOpcode::G_ABS:
3374 case TargetOpcode::G_ANYEXT:
3375 case TargetOpcode::G_BITCAST:
3376 case TargetOpcode::G_BITREVERSE:
3377 case TargetOpcode::G_BSWAP:
3378 case TargetOpcode::G_BUILD_VECTOR:
3379 case TargetOpcode::G_BUILD_VECTOR_TRUNC:
3380 case TargetOpcode::G_CONCAT_VECTORS:
3381 case TargetOpcode::G_CTLZ:
3382 case TargetOpcode::G_CTLZ_ZERO_POISON:
3383 case TargetOpcode::G_CTPOP:
3384 case TargetOpcode::G_CTTZ:
3385 case TargetOpcode::G_CTTZ_ZERO_POISON:
3386 case TargetOpcode::G_FABS:
3387 case TargetOpcode::G_FCANONICALIZE:
3388 case TargetOpcode::G_FCEIL:
3389 case TargetOpcode::G_FFLOOR:
3390 case TargetOpcode::G_FLOG2:
3391 case TargetOpcode::G_FNEARBYINT:
3392 case TargetOpcode::G_FNEG:
3393 case TargetOpcode::G_FPEXT:
3394 case TargetOpcode::G_FPTOSI:
3395 case TargetOpcode::G_FPTOUI:
3396 case TargetOpcode::G_FPTRUNC:
3397 case TargetOpcode::G_FREEZE:
3398 case TargetOpcode::G_FRINT:
3399 case TargetOpcode::G_FSQRT:
3400 case TargetOpcode::G_GLOBAL_VALUE:
3401 case TargetOpcode::G_INTRINSIC_ROUND:
3402 case TargetOpcode::G_INTRINSIC_ROUNDEVEN:
3403 case TargetOpcode::G_INTRINSIC_TRUNC:
3404 case TargetOpcode::G_INTTOPTR:
3405 case TargetOpcode::G_LOAD:
3406 case TargetOpcode::G_PHI:
3407 case TargetOpcode::G_PTRTOINT:
3408 case TargetOpcode::G_SEXT:
3409 case TargetOpcode::G_SEXTLOAD:
3410 case TargetOpcode::G_SITOFP:
3411 case TargetOpcode::G_STORE:
3412 case TargetOpcode::G_TRUNC:
3413 case TargetOpcode::G_TRUNC_USAT_U:
3414 case TargetOpcode::G_UITOFP:
3415 case TargetOpcode::G_VECREDUCE_ADD:
3416 case TargetOpcode::G_ZEXT:
3417 case TargetOpcode::G_ZEXTLOAD:
3418 case TargetOpcode::G_BR:
3419 case TargetOpcode::G_UNMERGE_VALUES:
3420 return true;
3421 default:
3422 return false;
3423 }
3424}
3425
3426uint32_t AArch64PreLegalizerCombinerImpl::getRootFlagsToDrop() const {
3427 return MachineInstr::getPoisonGeneratingFlags();
3428}
3429
3430bool AArch64PreLegalizerCombinerImpl::tryCombineAllImpl(MachineInstr &I) const {
3431 const PredicateBitset AvailableFeatures = getAvailableFeatures();
3432 State.MIs.clear();
3433 State.MIs.push_back(&I);
3434 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), Helper.getTII(), MRI, Helper.getTRI(), Helper.getRBI(), AvailableFeatures, /*CoverageInfo*/ nullptr)) {
3435 return true;
3436 }
3437
3438 return false;
3439}
3440
3441enum {
3442 GICXXCustomAction_GICombiner0 = GICXXCustomAction_Invalid + 1,
3443 GICXXCustomAction_GICombiner1,
3444 GICXXCustomAction_GICombiner2,
3445 GICXXCustomAction_GICombiner3,
3446 GICXXCustomAction_GICombiner4,
3447 GICXXCustomAction_GICombiner5,
3448 GICXXCustomAction_GICombiner6,
3449 GICXXCustomAction_GICombiner7,
3450 GICXXCustomAction_GICombiner8,
3451 GICXXCustomAction_GICombiner9,
3452 GICXXCustomAction_GICombiner10,
3453 GICXXCustomAction_GICombiner11,
3454 GICXXCustomAction_GICombiner12,
3455 GICXXCustomAction_GICombiner13,
3456 GICXXCustomAction_GICombiner14,
3457 GICXXCustomAction_GICombiner15,
3458 GICXXCustomAction_GICombiner16,
3459 GICXXCustomAction_GICombiner17,
3460 GICXXCustomAction_GICombiner18,
3461 GICXXCustomAction_GICombiner19,
3462 GICXXCustomAction_GICombiner20,
3463 GICXXCustomAction_GICombiner21,
3464 GICXXCustomAction_GICombiner22,
3465 GICXXCustomAction_GICombiner23,
3466 GICXXCustomAction_GICombiner24,
3467 GICXXCustomAction_GICombiner25,
3468 GICXXCustomAction_GICombiner26,
3469 GICXXCustomAction_GICombiner27,
3470 GICXXCustomAction_GICombiner28,
3471 GICXXCustomAction_GICombiner29,
3472 GICXXCustomAction_GICombiner30,
3473 GICXXCustomAction_GICombiner31,
3474 GICXXCustomAction_GICombiner32,
3475 GICXXCustomAction_GICombiner33,
3476 GICXXCustomAction_GICombiner34,
3477 GICXXCustomAction_GICombiner35,
3478 GICXXCustomAction_GICombiner36,
3479 GICXXCustomAction_GICombiner37,
3480 GICXXCustomAction_GICombiner38,
3481 GICXXCustomAction_GICombiner39,
3482 GICXXCustomAction_GICombiner40,
3483 GICXXCustomAction_GICombiner41,
3484 GICXXCustomAction_GICombiner42,
3485 GICXXCustomAction_GICombiner43,
3486 GICXXCustomAction_GICombiner44,
3487 GICXXCustomAction_GICombiner45,
3488 GICXXCustomAction_GICombiner46,
3489 GICXXCustomAction_GICombiner47,
3490 GICXXCustomAction_GICombiner48,
3491 GICXXCustomAction_GICombiner49,
3492 GICXXCustomAction_GICombiner50,
3493 GICXXCustomAction_GICombiner51,
3494 GICXXCustomAction_GICombiner52,
3495 GICXXCustomAction_GICombiner53,
3496 GICXXCustomAction_GICombiner54,
3497 GICXXCustomAction_GICombiner55,
3498 GICXXCustomAction_GICombiner56,
3499 GICXXCustomAction_GICombiner57,
3500 GICXXCustomAction_GICombiner58,
3501 GICXXCustomAction_GICombiner59,
3502 GICXXCustomAction_GICombiner60,
3503 GICXXCustomAction_GICombiner61,
3504 GICXXCustomAction_GICombiner62,
3505 GICXXCustomAction_GICombiner63,
3506 GICXXCustomAction_GICombiner64,
3507 GICXXCustomAction_GICombiner65,
3508 GICXXCustomAction_GICombiner66,
3509 GICXXCustomAction_GICombiner67,
3510 GICXXCustomAction_GICombiner68,
3511 GICXXCustomAction_GICombiner69,
3512 GICXXCustomAction_GICombiner70,
3513 GICXXCustomAction_GICombiner71,
3514 GICXXCustomAction_GICombiner72,
3515 GICXXCustomAction_GICombiner73,
3516 GICXXCustomAction_GICombiner74,
3517 GICXXCustomAction_GICombiner75,
3518 GICXXCustomAction_GICombiner76,
3519 GICXXCustomAction_GICombiner77,
3520 GICXXCustomAction_GICombiner78,
3521 GICXXCustomAction_GICombiner79,
3522 GICXXCustomAction_GICombiner80,
3523 GICXXCustomAction_GICombiner81,
3524 GICXXCustomAction_GICombiner82,
3525 GICXXCustomAction_GICombiner83,
3526 GICXXCustomAction_GICombiner84,
3527 GICXXCustomAction_GICombiner85,
3528 GICXXCustomAction_GICombiner86,
3529 GICXXCustomAction_GICombiner87,
3530 GICXXCustomAction_GICombiner88,
3531 GICXXCustomAction_GICombiner89,
3532 GICXXCustomAction_GICombiner90,
3533 GICXXCustomAction_GICombiner91,
3534 GICXXCustomAction_GICombiner92,
3535 GICXXCustomAction_GICombiner93,
3536 GICXXCustomAction_GICombiner94,
3537 GICXXCustomAction_GICombiner95,
3538 GICXXCustomAction_GICombiner96,
3539 GICXXCustomAction_GICombiner97,
3540 GICXXCustomAction_GICombiner98,
3541 GICXXCustomAction_GICombiner99,
3542 GICXXCustomAction_GICombiner100,
3543 GICXXCustomAction_GICombiner101,
3544 GICXXCustomAction_GICombiner102,
3545 GICXXCustomAction_GICombiner103,
3546 GICXXCustomAction_GICombiner104,
3547 GICXXCustomAction_GICombiner105,
3548 GICXXCustomAction_GICombiner106,
3549 GICXXCustomAction_GICombiner107,
3550 GICXXCustomAction_GICombiner108,
3551 GICXXCustomAction_GICombiner109,
3552 GICXXCustomAction_GICombiner110,
3553 GICXXCustomAction_GICombiner111,
3554 GICXXCustomAction_GICombiner112,
3555 GICXXCustomAction_GICombiner113,
3556 GICXXCustomAction_GICombiner114,
3557 GICXXCustomAction_GICombiner115,
3558 GICXXCustomAction_GICombiner116,
3559 GICXXCustomAction_GICombiner117,
3560 GICXXCustomAction_GICombiner118,
3561 GICXXCustomAction_GICombiner119,
3562 GICXXCustomAction_GICombiner120,
3563 GICXXCustomAction_GICombiner121,
3564 GICXXCustomAction_GICombiner122,
3565 GICXXCustomAction_GICombiner123,
3566 GICXXCustomAction_GICombiner124,
3567 GICXXCustomAction_GICombiner125,
3568 GICXXCustomAction_GICombiner126,
3569 GICXXCustomAction_GICombiner127,
3570 GICXXCustomAction_GICombiner128,
3571 GICXXCustomAction_GICombiner129,
3572 GICXXCustomAction_GICombiner130,
3573 GICXXCustomAction_GICombiner131,
3574 GICXXCustomAction_GICombiner132,
3575 GICXXCustomAction_GICombiner133,
3576 GICXXCustomAction_GICombiner134,
3577 GICXXCustomAction_GICombiner135,
3578 GICXXCustomAction_GICombiner136,
3579 GICXXCustomAction_GICombiner137,
3580};
3581bool AArch64PreLegalizerCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const {
3582 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
3583 switch(ApplyID) {
3584 case GICXXCustomAction_GICombiner0:{
3585 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3586 // Match Patterns
3587 if(![&](){return Helper.matchFoldAPlusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3588 return false;
3589 }
3590 // Apply Patterns
3591 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3592 return true;
3593 }
3594 case GICXXCustomAction_GICombiner1:{
3595 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3596 // Match Patterns
3597 if(![&](){return Helper.matchFoldC2MinusAPlusC1(*State.MIs[0], GIMatchData_matchinfo);}()) {
3598 return false;
3599 }
3600 // Apply Patterns
3601 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3602 return true;
3603 }
3604 case GICXXCustomAction_GICombiner2:{
3605 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3606 // Match Patterns
3607 if(![&](){return Helper.matchFoldAMinusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3608 return false;
3609 }
3610 // Apply Patterns
3611 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3612 return true;
3613 }
3614 case GICXXCustomAction_GICombiner3:{
3615 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3616 // Match Patterns
3617 if(![&](){return Helper.matchFoldC1Minus2MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3618 return false;
3619 }
3620 // Apply Patterns
3621 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3622 return true;
3623 }
3624 case GICXXCustomAction_GICombiner4:{
3625 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3626 // Match Patterns
3627 if(![&](){return Helper.matchFoldAMinusC1PlusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3628 return false;
3629 }
3630 // Apply Patterns
3631 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3632 return true;
3633 }
3634 case GICXXCustomAction_GICombiner5:{
3635 // Match Patterns
3636 if(![&](){return Helper.matchCombineCopy(*State.MIs[0]);}()) {
3637 return false;
3638 }
3639 // Apply Patterns
3640 Helper.applyCombineCopy(*State.MIs[0]);
3641 return true;
3642 }
3643 case GICXXCustomAction_GICombiner6:{
3644 unsigned GIMatchData_matchinfo;
3645 // Match Patterns
3646 if(![&](){return Helper.matchCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);}()) {
3647 return false;
3648 }
3649 // Apply Patterns
3650 Helper.applyCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);
3651 return true;
3652 }
3653 case GICXXCustomAction_GICombiner7:{
3654 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3655 // Match Patterns
3656 if(![&](){return Helper.matchCombineSubToAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3657 return false;
3658 }
3659 // Apply Patterns
3660 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3661 return true;
3662 }
3663 case GICXXCustomAction_GICombiner8:{
3664 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3665 // Match Patterns
3666 if(![&](){return Helper.matchExtractVectorElementWithDifferentIndices(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3667 return false;
3668 }
3669 // Apply Patterns
3670 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3671 return true;
3672 }
3673 case GICXXCustomAction_GICombiner9:{
3674 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3675 // Match Patterns
3676 if(![&](){return Helper.matchExtractVectorElementWithBuildVector(*State.MIs[0], *State.MIs[1],
3677 GIMatchData_matchinfo);}()) {
3678 return false;
3679 }
3680 // Apply Patterns
3681 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3682 return true;
3683 }
3684 case GICXXCustomAction_GICombiner10:{
3685 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3686 // Match Patterns
3687 if(![&](){return Helper.matchExtractVectorElementWithBuildVectorTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3688 return false;
3689 }
3690 // Apply Patterns
3691 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3692 return true;
3693 }
3694 case GICXXCustomAction_GICombiner11:{
3695 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3696 // Match Patterns
3697 if(![&](){return Helper.matchExtractVectorElementWithShuffleVector(*State.MIs[0], *State.MIs[1],
3698 GIMatchData_matchinfo);}()) {
3699 return false;
3700 }
3701 // Apply Patterns
3702 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3703 return true;
3704 }
3705 case GICXXCustomAction_GICombiner12:{
3706 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3707 // Match Patterns
3708 if(![&](){return Helper.matchAddOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3709 return false;
3710 }
3711 // Apply Patterns
3712 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3713 return true;
3714 }
3715 case GICXXCustomAction_GICombiner13:{
3716 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3717 // Match Patterns
3718 if(![&](){return Helper.matchMulOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3719 return false;
3720 }
3721 // Apply Patterns
3722 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3723 return true;
3724 }
3725 case GICXXCustomAction_GICombiner14:{
3726 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3727 // Match Patterns
3728 if(![&](){return Helper.matchShlOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3729 return false;
3730 }
3731 // Apply Patterns
3732 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3733 return true;
3734 }
3735 case GICXXCustomAction_GICombiner15:{
3736 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3737 // Match Patterns
3738 if(![&](){return Helper.matchSubOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3739 return false;
3740 }
3741 // Apply Patterns
3742 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3743 return true;
3744 }
3745 case GICXXCustomAction_GICombiner16:{
3746 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3747 // Match Patterns
3748 if(![&](){return !isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI) && Helper.matchFreezeOfSingleMaybePoisonOperand(*State.MIs[0], GIMatchData_matchinfo);}()) {
3749 return false;
3750 }
3751 // Apply Patterns
3752 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3753 return true;
3754 }
3755 case GICXXCustomAction_GICombiner17:{
3756 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3757 // Match Patterns
3758 if(![&](){return Helper.matchTruncateOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3759 return false;
3760 }
3761 // Apply Patterns
3762 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3763 return true;
3764 }
3765 case GICXXCustomAction_GICombiner18:{
3766 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3767 // Match Patterns
3768 if(![&](){return Helper.matchExtOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3769 return false;
3770 }
3771 // Apply Patterns
3772 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3773 return true;
3774 }
3775 case GICXXCustomAction_GICombiner19:{
3776 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3777 // Match Patterns
3778 if(![&](){return Helper.matchRedundantSextInReg(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3779 return false;
3780 }
3781 // Apply Patterns
3782 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3783 return true;
3784 }
3785 case GICXXCustomAction_GICombiner20:{
3786 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3787 // Match Patterns
3788 if(![&](){return Helper.matchCastOfSelect(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3789 return false;
3790 }
3791 // Apply Patterns
3792 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3793 return true;
3794 }
3795 case GICXXCustomAction_GICombiner21:{
3796 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3797 // Match Patterns
3798 if(![&](){return Helper.matchCastOfBuildVector(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3799 return false;
3800 }
3801 // Apply Patterns
3802 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3803 return true;
3804 }
3805 case GICXXCustomAction_GICombiner22:{
3806 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3807 // Match Patterns
3808 if(![&](){return Helper.matchNarrowBinop(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3809 return false;
3810 }
3811 // Apply Patterns
3812 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3813 return true;
3814 }
3815 case GICXXCustomAction_GICombiner23:{
3816 APInt GIMatchData_matchinfo;
3817 // Match Patterns
3818 if(![&](){return Helper.matchCastOfInteger(*State.MIs[0], GIMatchData_matchinfo);}()) {
3819 return false;
3820 }
3821 // Apply Patterns
3822 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3823 return true;
3824 }
3825 case GICXXCustomAction_GICombiner24:{
3826 SmallVector<Register> GIMatchData_info;
3827 // Match Patterns
3828 if(![&](){return Helper.matchCombineInsertVecElts(*State.MIs[0], GIMatchData_info);}()) {
3829 return false;
3830 }
3831 // Apply Patterns
3832 Helper.applyCombineInsertVecElts(*State.MIs[0], GIMatchData_info);
3833 return true;
3834 }
3835 case GICXXCustomAction_GICombiner25:{
3836 Register GIMatchData_matchinfo;
3837 // Match Patterns
3838 if(![&](){return Helper.matchExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);}()) {
3839 return false;
3840 }
3841 // Apply Patterns
3842 Helper.applyExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);
3843 return true;
3844 }
3845 case GICXXCustomAction_GICombiner26:{
3846 SmallVector<std::pair<Register, MachineInstr*>> GIMatchData_matchinfo;
3847 // Match Patterns
3848 if(![&](){return Helper.matchExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
3849 return false;
3850 }
3851 // Apply Patterns
3852 Helper.applyExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);
3853 return true;
3854 }
3855 case GICXXCustomAction_GICombiner27:{
3856 PreferredTuple GIMatchData_matchinfo;
3857 // Match Patterns
3858 if(![&](){return Helper.matchCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);}()) {
3859 return false;
3860 }
3861 // Apply Patterns
3862 Helper.applyCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);
3863 return true;
3864 }
3865 case GICXXCustomAction_GICombiner28:{
3866 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3867 // Match Patterns
3868 if(![&](){return Helper.matchCombineLoadWithAndMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
3869 return false;
3870 }
3871 // Apply Patterns
3872 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3873 return true;
3874 }
3875 case GICXXCustomAction_GICombiner29:{
3876 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3877 // Match Patterns
3878 if(![&](){return Helper.matchCombineExtractedVectorLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
3879 return false;
3880 }
3881 // Apply Patterns
3882 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3883 return true;
3884 }
3885 case GICXXCustomAction_GICombiner30:{
3886 // Apply Patterns
3887 Helper.replaceInstWithFConstant(*State.MIs[0]->getOperand(0).getParent(), 0.0);
3888 return true;
3889 }
3890 case GICXXCustomAction_GICombiner31:{
3891 // Apply Patterns
3892 Helper.replaceInstWithConstant(*State.MIs[0]->getOperand(0).getParent(), 0);
3893 return true;
3894 }
3895 case GICXXCustomAction_GICombiner32:{
3896 // Apply Patterns
3897 Helper.replaceInstWithConstant(*State.MIs[0]->getOperand(0).getParent(), -1);
3898 return true;
3899 }
3900 case GICXXCustomAction_GICombiner33:{
3901 Register GIMatchData_matchinfo;
3902 // Match Patterns
3903 if(![&](){return Helper.matchCombineAnyExtTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
3904 return false;
3905 }
3906 // Apply Patterns
3907 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3908 return true;
3909 }
3910 case GICXXCustomAction_GICombiner34:{
3911 Register GIMatchData_matchinfo;
3912 // Match Patterns
3913 if(![&](){return Helper.matchBuildVectorIdentityFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3914 return false;
3915 }
3916 // Apply Patterns
3917 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3918 return true;
3919 }
3920 case GICXXCustomAction_GICombiner35:{
3921 Register GIMatchData_matchinfo;
3922 // Match Patterns
3923 if(![&](){return Helper.matchTruncBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3924 return false;
3925 }
3926 // Apply Patterns
3927 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3928 return true;
3929 }
3930 case GICXXCustomAction_GICombiner36:{
3931 Register GIMatchData_matchinfo;
3932 // Match Patterns
3933 if(![&](){return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3934 return false;
3935 }
3936 // Apply Patterns
3937 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3938 return true;
3939 }
3940 case GICXXCustomAction_GICombiner37:{
3941 MachineInstr* GIMatchData_matchinfo;
3942 // Match Patterns
3943 if(![&](){return Helper.matchExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);}()) {
3944 return false;
3945 }
3946 // Apply Patterns
3947 Helper.applyExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);
3948 return true;
3949 }
3950 case GICXXCustomAction_GICombiner38:{
3951 InstructionStepsMatchInfo GIMatchData_info;
3952 // Match Patterns
3953 if(![&](){return Helper.matchHoistLogicOpWithSameOpcodeHands(*State.MIs[0], GIMatchData_info);}()) {
3954 return false;
3955 }
3956 // Apply Patterns
3957 Helper.applyBuildInstructionSteps(*State.MIs[0], GIMatchData_info);
3958 return true;
3959 }
3960 case GICXXCustomAction_GICombiner39:{
3961 std::optional<int64_t> GIMatchData_matchinfo;
3962 // Match Patterns
3963 if(![&](){return Helper.matchShiftsTooBig(*State.MIs[0], GIMatchData_matchinfo);}()) {
3964 return false;
3965 }
3966 // Apply Patterns
3967 if (GIMatchData_matchinfo) {
3968 Helper.replaceInstWithConstant(*State.MIs[0], *GIMatchData_matchinfo);
3969 } else {
3970 Helper.replaceInstWithUndef(*State.MIs[0]);
3971 }
3972 return true;
3973 }
3974 case GICXXCustomAction_GICombiner40:{
3975 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3976 // Match Patterns
3977 if(![&](){return Helper.matchReassocPtrAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3978 return false;
3979 }
3980 // Apply Patterns
3981 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3982 return true;
3983 }
3984 case GICXXCustomAction_GICombiner41:{
3985 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3986 // Match Patterns
3987 if(![&](){return Helper.matchReassocCommBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3988 return false;
3989 }
3990 // Apply Patterns
3991 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3992 return true;
3993 }
3994 case GICXXCustomAction_GICombiner42:{
3995 PtrAddChain GIMatchData_matchinfo;
3996 // Match Patterns
3997 if(![&](){return Helper.matchPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
3998 return false;
3999 }
4000 // Apply Patterns
4001 Helper.applyPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);
4002 return true;
4003 }
4004 case GICXXCustomAction_GICombiner43:{
4005 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4006 // Match Patterns
4007 if(![&](){return Helper.matchCanonicalizeICmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
4008 return false;
4009 }
4010 // Apply Patterns
4011 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4012 return true;
4013 }
4014 case GICXXCustomAction_GICombiner44:{
4015 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4016 // Match Patterns
4017 if(![&](){return Helper.matchCanonicalizeFCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
4018 return false;
4019 }
4020 // Apply Patterns
4021 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4022 return true;
4023 }
4024 case GICXXCustomAction_GICombiner45:{
4025 int64_t GIMatchData_matchinfo;
4026 // Match Patterns
4027 if(![&](){return Helper.matchICmpToTrueFalseKnownBits(*State.MIs[0], GIMatchData_matchinfo);}()) {
4028 return false;
4029 }
4030 // Apply Patterns
4031 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
4032 return true;
4033 }
4034 case GICXXCustomAction_GICombiner46:{
4035 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4036 // Match Patterns
4037 if(![&](){return Helper.matchICmpToLHSKnownBits(*State.MIs[0], GIMatchData_info);}()) {
4038 return false;
4039 }
4040 // Apply Patterns
4041 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4042 return true;
4043 }
4044 case GICXXCustomAction_GICombiner47:{
4045 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4046 // Match Patterns
4047 if(![&](){return Helper.matchRedundantBinOpInEquality(*State.MIs[0], GIMatchData_info);}()) {
4048 return false;
4049 }
4050 // Apply Patterns
4051 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4052 return true;
4053 }
4054 case GICXXCustomAction_GICombiner48:{
4055 std::tuple<Register, int64_t> GIMatchData_info;
4056 // Match Patterns
4057 if(![&](){return Helper.matchAshrShlToSextInreg(*State.MIs[0], GIMatchData_info);}()) {
4058 return false;
4059 }
4060 // Apply Patterns
4061 Helper.applyAshShlToSextInreg(*State.MIs[0], GIMatchData_info);
4062 return true;
4063 }
4064 case GICXXCustomAction_GICombiner49:{
4065 std::tuple<Register, unsigned> GIMatchData_matchinfo;
4066 // Match Patterns
4067 if(![&](){return Helper.matchSextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
4068 return false;
4069 }
4070 // Apply Patterns
4071 Helper.applySextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);
4072 return true;
4073 }
4074 case GICXXCustomAction_GICombiner50:{
4075 RegisterImmPair GIMatchData_matchinfo;
4076 // Match Patterns
4077 if(![&](){return Helper.matchCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);}()) {
4078 return false;
4079 }
4080 // Apply Patterns
4081 Helper.applyCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);
4082 return true;
4083 }
4084 case GICXXCustomAction_GICombiner51:{
4085 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4086 // Match Patterns
4087 if(![&](){return Helper.matchNarrowBinopFeedingAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
4088 return false;
4089 }
4090 // Apply Patterns
4091 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
4092 return true;
4093 }
4094 case GICXXCustomAction_GICombiner52:{
4095 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4096 // Match Patterns
4097 if(![&](){return Helper.matchSelectIMinMax(State.MIs[0]->getOperand(0), GIMatchData_info);}()) {
4098 return false;
4099 }
4100 // Apply Patterns
4101 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_info);
4102 return true;
4103 }
4104 case GICXXCustomAction_GICombiner53:{
4105 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4106 // Match Patterns
4107 if(![&](){return Helper.matchSelect(*State.MIs[0], GIMatchData_matchinfo);}()) {
4108 return false;
4109 }
4110 // Apply Patterns
4111 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4112 return true;
4113 }
4114 case GICXXCustomAction_GICombiner54:{
4115 // Match Patterns
4116 if(![&](){LLT SrcTy = MRI.getType(State.MIs[3]->getOperand(1).getReg());
4117 return State.MIs[0]->getOperand(2).getImm() <= SrcTy.getScalarSizeInBits() &&
4118 MRI.getType(State.MIs[1]->getOperand(1).getReg()).getScalarType() ==
4119 MRI.getType(State.MIs[2]->getOperand(2).getReg()).getScalarType() &&
4120 VT->computeNumSignBits(State.MIs[3]->getOperand(1).getReg()) >=
4121 (SrcTy.getScalarSizeInBits() - State.MIs[0]->getOperand(2).getImm() + 1);}()) {
4122 return false;
4123 }
4124 // Apply Patterns
4125 auto SExt1 = Helper.getBuilder().buildSExt(MRI.getType(State.MIs[2]->getOperand(2).getReg()), State.MIs[3]->getOperand(1).getReg());
4126 auto Unmerge = Helper.getBuilder().buildUnmerge(MRI.getType(State.MIs[1]->getOperand(1).getReg()), SExt1);
4127 unsigned UnmergeDef = State.MIs[1]->getOperand(1).getReg() == State.MIs[2]->getOperand(0).getReg() ? 0 : 1;
4128 Helper.getBuilder().buildSExt(State.MIs[0]->getOperand(0).getReg(), Unmerge.getReg(UnmergeDef));
4129 State.MIs[0]->eraseFromParent();
4130 return true;
4131 }
4132 case GICXXCustomAction_GICombiner55:{
4133 Register GIMatchData_matchinfo;
4134 // Match Patterns
4135 if(![&](){return Helper.matchRedundantAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
4136 return false;
4137 }
4138 // Apply Patterns
4139 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
4140 return true;
4141 }
4142 case GICXXCustomAction_GICombiner56:{
4143 Register GIMatchData_matchinfo;
4144 // Match Patterns
4145 if(![&](){return Helper.matchRedundantOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
4146 return false;
4147 }
4148 // Apply Patterns
4149 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
4150 return true;
4151 }
4152 case GICXXCustomAction_GICombiner57:{
4153 // Match Patterns
4154 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(State.MIs[0]->getOperand(2));}()) {
4155 return false;
4156 }
4157 // Apply Patterns
4158 Helper.applySimplifyURemByPow2(*State.MIs[0]);
4159 return true;
4160 }
4161 case GICXXCustomAction_GICombiner58:{
4162 Register GIMatchData_matchinfo;
4163 // Match Patterns
4164 if(![&](){return Helper.matchCombineZextTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
4165 return false;
4166 }
4167 // Apply Patterns
4168 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
4169 return true;
4170 }
4171 case GICXXCustomAction_GICombiner59:{
4172 // Match Patterns
4173 if(![&](){unsigned BitWidth = MRI.getType(State.MIs[0]->getOperand(1).getReg()).getScalarSizeInBits();
4174 return Helper.getValueTracking()->maskedValueIsZero(State.MIs[0]->getOperand(1).getReg(),
4175 APInt::getOneBitSet(BitWidth, State.MIs[0]->getOperand(2).getImm() - 1));}()) {
4176 return false;
4177 }
4178 // Apply Patterns
4179 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
4180 Helper.getBuilder().buildZExtInReg(State.MIs[0]->getOperand(0), State.MIs[0]->getOperand(1), State.MIs[0]->getOperand(2).getImm());
4181 State.MIs[0]->eraseFromParent();
4182 return true;
4183 }
4184 case GICXXCustomAction_GICombiner60:{
4185 std::pair<MachineInstr*, LLT> GIMatchData_matchinfo;
4186 // Match Patterns
4187 if(![&](){return Helper.matchCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
4188 return false;
4189 }
4190 // Apply Patterns
4191 Helper.applyCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);
4192 return true;
4193 }
4194 case GICXXCustomAction_GICombiner61:{
4195 SmallVector<Register> GIMatchData_info;
4196 // Match Patterns
4197 if(![&](){return Helper.matchNotCmp(*State.MIs[0], GIMatchData_info);}()) {
4198 return false;
4199 }
4200 // Apply Patterns
4201 Helper.applyNotCmp(*State.MIs[0], GIMatchData_info);
4202 return true;
4203 }
4204 case GICXXCustomAction_GICombiner62:{
4205 MachineInstr * GIMatchData_matchinfo;
4206 // Match Patterns
4207 if(![&](){return Helper.matchOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);}()) {
4208 return false;
4209 }
4210 // Apply Patterns
4211 Helper.applyOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);
4212 return true;
4213 }
4214 case GICXXCustomAction_GICombiner63:{
4215 // Apply Patterns
4216 Helper.applyCombineConstantFoldFpUnary(*State.MIs[0], State.MIs[1]->getOperand(1).getFPImm());
4217 return true;
4218 }
4219 case GICXXCustomAction_GICombiner64:{
4220 APInt GIMatchData_info;
4221 // Match Patterns
4222 if(![&](){LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
4223 APInt NewCst = State.MIs[2]->getOperand(1).getCImm()->getValue().zextOrTrunc(
4224 DstTy.getSizeInBits());
4225 NewCst += State.MIs[3]->getOperand(1).getCImm()->getValue().sextOrTrunc(
4226 DstTy.getSizeInBits());
4227 GIMatchData_info = NewCst;
4228 return true;}()) {
4229 return false;
4230 }
4231 // Apply Patterns
4232 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
4233 Helper.getBuilder().buildConstant(State.MIs[0]->getOperand(0), GIMatchData_info);
4234 State.MIs[0]->eraseFromParent();
4235 return true;
4236 }
4237 case GICXXCustomAction_GICombiner65:{
4238 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4239 // Match Patterns
4240 if(![&](){return Helper.matchOverlappingAnd(*State.MIs[0], GIMatchData_info);}()) {
4241 return false;
4242 }
4243 // Apply Patterns
4244 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4245 return true;
4246 }
4247 case GICXXCustomAction_GICombiner66:{
4248 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4249 // Match Patterns
4250 if(![&](){return Helper.matchMulOBy0(*State.MIs[0], GIMatchData_matchinfo);}()) {
4251 return false;
4252 }
4253 // Apply Patterns
4254 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4255 return true;
4256 }
4257 case GICXXCustomAction_GICombiner67:{
4258 // Match Patterns
4259 if(![&](){return Helper.matchFPowIExpansion(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());}()) {
4260 return false;
4261 }
4262 // Apply Patterns
4263 Helper.applyExpandFPowI(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());
4264 return true;
4265 }
4266 case GICXXCustomAction_GICombiner68:{
4267 std::pair<Register, Register> GIMatchData_matchinfo;
4268 // Match Patterns
4269 if(![&](){return Helper.matchXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4270 return false;
4271 }
4272 // Apply Patterns
4273 Helper.applyXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);
4274 return true;
4275 }
4276 case GICXXCustomAction_GICombiner69:{
4277 RegisterImmPair GIMatchData_matchinfo;
4278 // Match Patterns
4279 if(![&](){return Helper.matchShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
4280 return false;
4281 }
4282 // Apply Patterns
4283 Helper.applyShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);
4284 return true;
4285 }
4286 case GICXXCustomAction_GICombiner70:{
4287 ShiftOfShiftedLogic GIMatchData_matchinfo;
4288 // Match Patterns
4289 if(![&](){return Helper.matchShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);}()) {
4290 return false;
4291 }
4292 // Apply Patterns
4293 Helper.applyShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);
4294 return true;
4295 }
4296 case GICXXCustomAction_GICombiner71:{
4297 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4298 // Match Patterns
4299 if(![&](){return Helper.matchLoadOrCombine(*State.MIs[0], GIMatchData_info);}()) {
4300 return false;
4301 }
4302 // Apply Patterns
4303 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4304 return true;
4305 }
4306 case GICXXCustomAction_GICombiner72:{
4307 MachineInstr * GIMatchData_matchinfo;
4308 // Match Patterns
4309 if(![&](){return Helper.matchCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);}()) {
4310 return false;
4311 }
4312 // Apply Patterns
4313 Helper.applyCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);
4314 return true;
4315 }
4316 case GICXXCustomAction_GICombiner73:{
4317 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4318 // Match Patterns
4319 if(![&](){return Helper.matchOrShiftToFunnelShift(*State.MIs[0], false, GIMatchData_info);}()) {
4320 return false;
4321 }
4322 // Apply Patterns
4323 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4324 return true;
4325 }
4326 case GICXXCustomAction_GICombiner74:{
4327 // Match Patterns
4328 if(![&](){return Helper.matchConstantLargerBitWidth(*State.MIs[0], 3);}()) {
4329 return false;
4330 }
4331 // Apply Patterns
4332 Helper.applyFunnelShiftConstantModulo(*State.MIs[0]);
4333 return true;
4334 }
4335 case GICXXCustomAction_GICombiner75:{
4336 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4337 // Match Patterns
4338 if(![&](){return Helper.matchBitfieldExtractFromSExtInReg(*State.MIs[0], GIMatchData_info);}()) {
4339 return false;
4340 }
4341 // Apply Patterns
4342 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4343 return true;
4344 }
4345 case GICXXCustomAction_GICombiner76:{
4346 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4347 // Match Patterns
4348 if(![&](){return Helper.matchBitfieldExtractFromAnd(*State.MIs[0], GIMatchData_info);}()) {
4349 return false;
4350 }
4351 // Apply Patterns
4352 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4353 return true;
4354 }
4355 case GICXXCustomAction_GICombiner77:{
4356 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4357 // Match Patterns
4358 if(![&](){return Helper.matchBitfieldExtractFromShr(*State.MIs[0], GIMatchData_info);}()) {
4359 return false;
4360 }
4361 // Apply Patterns
4362 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4363 return true;
4364 }
4365 case GICXXCustomAction_GICombiner78:{
4366 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4367 // Match Patterns
4368 if(![&](){return Helper.matchBitfieldExtractFromShrAnd(*State.MIs[0], GIMatchData_info);}()) {
4369 return false;
4370 }
4371 // Apply Patterns
4372 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4373 return true;
4374 }
4375 case GICXXCustomAction_GICombiner79:{
4376 APInt GIMatchData_matchinfo;
4377 // Match Patterns
4378 if(![&](){return Helper.matchConstantFoldBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
4379 return false;
4380 }
4381 // Apply Patterns
4382 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
4383 return true;
4384 }
4385 case GICXXCustomAction_GICombiner80:{
4386 ConstantFP* GIMatchData_matchinfo;
4387 // Match Patterns
4388 if(![&](){return Helper.matchConstantFoldFPBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
4389 return false;
4390 }
4391 // Apply Patterns
4392 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
4393 return true;
4394 }
4395 case GICXXCustomAction_GICombiner81:{
4396 ConstantFP* GIMatchData_matchinfo;
4397 // Match Patterns
4398 if(![&](){return Helper.matchConstantFoldFMA(*State.MIs[0], GIMatchData_matchinfo);}()) {
4399 return false;
4400 }
4401 // Apply Patterns
4402 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
4403 return true;
4404 }
4405 case GICXXCustomAction_GICombiner82:{
4406 APInt GIMatchData_matchinfo;
4407 // Match Patterns
4408 if(![&](){return Helper.matchConstantFoldCastOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
4409 return false;
4410 }
4411 // Apply Patterns
4412 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
4413 return true;
4414 }
4415 case GICXXCustomAction_GICombiner83:{
4416 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4417 // Match Patterns
4418 if(![&](){return Helper.matchConstantFoldUnaryIntOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
4419 return false;
4420 }
4421 // Apply Patterns
4422 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4423 return true;
4424 }
4425 case GICXXCustomAction_GICombiner84:{
4426 // Match Patterns
4427 if(![&](){return Helper.matchUMulHToLShr(*State.MIs[0]);}()) {
4428 return false;
4429 }
4430 // Apply Patterns
4431 Helper.applyUMulHToLShr(*State.MIs[0]);
4432 return true;
4433 }
4434 case GICXXCustomAction_GICombiner85:{
4435 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4436 // Match Patterns
4437 if(![&](){return Helper.matchAndOrDisjointMask(*State.MIs[0], GIMatchData_info);}()) {
4438 return false;
4439 }
4440 // Apply Patterns
4441 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_info);
4442 return true;
4443 }
4444 case GICXXCustomAction_GICombiner86:{
4445 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4446 // Match Patterns
4447 if(![&](){return Helper.matchCombineFAddFMulToFMadOrFMA(*State.MIs[0],
4448 GIMatchData_info);}()) {
4449 return false;
4450 }
4451 // Apply Patterns
4452 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4453 return true;
4454 }
4455 case GICXXCustomAction_GICombiner87:{
4456 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4457 // Match Patterns
4458 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMA(*State.MIs[0],
4459 GIMatchData_info);}()) {
4460 return false;
4461 }
4462 // Apply Patterns
4463 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4464 return true;
4465 }
4466 case GICXXCustomAction_GICombiner88:{
4467 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4468 // Match Patterns
4469 if(![&](){return Helper.matchCombineFAddFMAFMulToFMadOrFMA(*State.MIs[0],
4470 GIMatchData_info);}()) {
4471 return false;
4472 }
4473 // Apply Patterns
4474 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4475 return true;
4476 }
4477 case GICXXCustomAction_GICombiner89:{
4478 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4479 // Match Patterns
4480 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMAAggressive(
4481 *State.MIs[0], GIMatchData_info);}()) {
4482 return false;
4483 }
4484 // Apply Patterns
4485 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4486 return true;
4487 }
4488 case GICXXCustomAction_GICombiner90:{
4489 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4490 // Match Patterns
4491 if(![&](){return Helper.matchCombineFSubFMulToFMadOrFMA(*State.MIs[0],
4492 GIMatchData_info);}()) {
4493 return false;
4494 }
4495 // Apply Patterns
4496 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4497 return true;
4498 }
4499 case GICXXCustomAction_GICombiner91:{
4500 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4501 // Match Patterns
4502 if(![&](){return Helper.matchCombineFSubFNegFMulToFMadOrFMA(*State.MIs[0],
4503 GIMatchData_info);}()) {
4504 return false;
4505 }
4506 // Apply Patterns
4507 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4508 return true;
4509 }
4510 case GICXXCustomAction_GICombiner92:{
4511 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4512 // Match Patterns
4513 if(![&](){return Helper.matchCombineFSubFpExtFMulToFMadOrFMA(*State.MIs[0],
4514 GIMatchData_info);}()) {
4515 return false;
4516 }
4517 // Apply Patterns
4518 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4519 return true;
4520 }
4521 case GICXXCustomAction_GICombiner93:{
4522 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4523 // Match Patterns
4524 if(![&](){return Helper.matchCombineFSubFpExtFNegFMulToFMadOrFMA(
4525 *State.MIs[0], GIMatchData_info);}()) {
4526 return false;
4527 }
4528 // Apply Patterns
4529 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4530 return true;
4531 }
4532 case GICXXCustomAction_GICombiner94:{
4533 unsigned GIMatchData_select_op_no;
4534 // Match Patterns
4535 if(![&](){return Helper.matchFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);}()) {
4536 return false;
4537 }
4538 // Apply Patterns
4539 Helper.applyFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);
4540 return true;
4541 }
4542 case GICXXCustomAction_GICombiner95:{
4543 // Match Patterns
4544 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(State.MIs[0]->getOperand(2),
4545 /*OrNegative=*/true);}()) {
4546 return false;
4547 }
4548 // Apply Patterns
4549 Helper.applySimplifySRemByPow2(*State.MIs[0]);
4550 return true;
4551 }
4552 case GICXXCustomAction_GICombiner96:{
4553 // Match Patterns
4554 if(![&](){return Helper.matchUDivOrURemByConst(*State.MIs[0]);}()) {
4555 return false;
4556 }
4557 // Apply Patterns
4558 Helper.applyUDivOrURemByConst(*State.MIs[0]);
4559 return true;
4560 }
4561 case GICXXCustomAction_GICombiner97:{
4562 // Match Patterns
4563 if(![&](){return Helper.matchSDivOrSRemByConst(*State.MIs[0]);}()) {
4564 return false;
4565 }
4566 // Apply Patterns
4567 Helper.applySDivOrSRemByConst(*State.MIs[0]);
4568 return true;
4569 }
4570 case GICXXCustomAction_GICombiner98:{
4571 // Match Patterns
4572 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/false);}()) {
4573 return false;
4574 }
4575 // Apply Patterns
4576 Helper.applyUDivByPow2(*State.MIs[0]);
4577 return true;
4578 }
4579 case GICXXCustomAction_GICombiner99:{
4580 // Match Patterns
4581 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/true);}()) {
4582 return false;
4583 }
4584 // Apply Patterns
4585 Helper.applySDivByPow2(*State.MIs[0]);
4586 return true;
4587 }
4588 case GICXXCustomAction_GICombiner100:{
4589 SmallVector<MachineInstr *> GIMatchData_matchinfo;
4590 // Match Patterns
4591 if(![&](){return Helper.matchRepeatedFPDivisor(*State.MIs[0], GIMatchData_matchinfo);}()) {
4592 return false;
4593 }
4594 // Apply Patterns
4595 Helper.applyRepeatedFPDivisor(GIMatchData_matchinfo);
4596 return true;
4597 }
4598 case GICXXCustomAction_GICombiner101:{
4599 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4600 // Match Patterns
4601 if(![&](){return Helper.matchSimplifySelectToMinMax(*State.MIs[0], GIMatchData_info);}()) {
4602 return false;
4603 }
4604 // Apply Patterns
4605 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4606 return true;
4607 }
4608 case GICXXCustomAction_GICombiner102:{
4609 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4610 // Match Patterns
4611 if(![&](){return Helper.matchAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
4612 return false;
4613 }
4614 // Apply Patterns
4615 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4616 return true;
4617 }
4618 case GICXXCustomAction_GICombiner103:{
4619 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4620 // Match Patterns
4621 if(![&](){return Helper.matchOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
4622 return false;
4623 }
4624 // Apply Patterns
4625 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4626 return true;
4627 }
4628 case GICXXCustomAction_GICombiner104:{
4629 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4630 // Match Patterns
4631 if(![&](){return Helper.matchSimplifyNegMinMax(*State.MIs[0], GIMatchData_matchinfo);}()) {
4632 return false;
4633 }
4634 // Apply Patterns
4635 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4636 return true;
4637 }
4638 case GICXXCustomAction_GICombiner105:{
4639 SmallVector<Register> GIMatchData_matchinfo;
4640 // Match Patterns
4641 if(![&](){return Helper.matchCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);}()) {
4642 return false;
4643 }
4644 // Apply Patterns
4645 Helper.applyCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);
4646 return true;
4647 }
4648 case GICXXCustomAction_GICombiner106:{
4649 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4650 // Match Patterns
4651 if(![&](){return Helper.matchSextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4652 return false;
4653 }
4654 // Apply Patterns
4655 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4656 return true;
4657 }
4658 case GICXXCustomAction_GICombiner107:{
4659 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4660 // Match Patterns
4661 if(![&](){return Helper.matchZextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4662 return false;
4663 }
4664 // Apply Patterns
4665 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4666 return true;
4667 }
4668 case GICXXCustomAction_GICombiner108:{
4669 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4670 // Match Patterns
4671 if(![&](){return Helper.matchNonNegZext(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4672 return false;
4673 }
4674 // Apply Patterns
4675 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4676 return true;
4677 }
4678 case GICXXCustomAction_GICombiner109:{
4679 SmallVector<Register> GIMatchData_matchinfo;
4680 // Match Patterns
4681 if(![&](){return Helper.matchCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);}()) {
4682 return false;
4683 }
4684 // Apply Patterns
4685 Helper.applyCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);
4686 return true;
4687 }
4688 case GICXXCustomAction_GICombiner110:{
4689 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4690 // Match Patterns
4691 if(![&](){return Helper.matchShuffleUndefRHS(*State.MIs[0], GIMatchData_matchinfo);}()) {
4692 return false;
4693 }
4694 // Apply Patterns
4695 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4696 return true;
4697 }
4698 case GICXXCustomAction_GICombiner111:{
4699 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4700 // Match Patterns
4701 if(![&](){return Helper.matchShuffleDisjointMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
4702 return false;
4703 }
4704 // Apply Patterns
4705 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4706 return true;
4707 }
4708 case GICXXCustomAction_GICombiner112:{
4709 Register GIMatchData_matchinfo;
4710 // Match Patterns
4711 if(![&](){return Helper.matchUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);}()) {
4712 return false;
4713 }
4714 // Apply Patterns
4715 Helper.applyUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);
4716 return true;
4717 }
4718 case GICXXCustomAction_GICombiner113:{
4719 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4720 // Match Patterns
4721 if(![&](){return Helper.matchUnmergeValuesAnyExtBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
4722 return false;
4723 }
4724 // Apply Patterns
4725 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4726 return true;
4727 }
4728 case GICXXCustomAction_GICombiner114:{
4729 SmallVector<Register> GIMatchData_info;
4730 // Match Patterns
4731 if(![&](){return Helper.matchCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);}()) {
4732 return false;
4733 }
4734 // Apply Patterns
4735 Helper.applyCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);
4736 return true;
4737 }
4738 case GICXXCustomAction_GICombiner115:{
4739 Register GIMatchData_src;
4740 // Match Patterns
4741 if(![&](){// Check if first source comes from G_UNMERGE_VALUES.
4742 Register FirstMergeSrc = getRemainingOperands(*State.MIs[0], 1)[0].getReg();
4743 MachineInstr *UnmergeMI = MRI.getVRegDef(FirstMergeSrc);
4744 if (!UnmergeMI || UnmergeMI->getOpcode() != TargetOpcode::G_UNMERGE_VALUES)
4745 return false;
4746
4747 // Check counts match.
4748 unsigned NumMergeSrcs = getRemainingOperands(*State.MIs[0], 1).size();
4749 unsigned NumUnmergeDefs = UnmergeMI->getNumDefs();
4750 if (NumMergeSrcs != NumUnmergeDefs)
4751 return false;
4752
4753 // Verify all merge sources match unmerge defs in order.
4754 for (unsigned I = 0; I < NumMergeSrcs; ++I) {
4755 Register MergeSrc = getRemainingOperands(*State.MIs[0], 1)[I].getReg();
4756 Register UnmergeDef = UnmergeMI->getOperand(I).getReg();
4757
4758 if (MergeSrc != UnmergeDef)
4759 return false;
4760
4761 if (!MRI.hasOneNonDBGUse(MergeSrc))
4762 return false;
4763 }
4764
4765 // Check size compatibility.
4766 GIMatchData_src = UnmergeMI->getOperand(NumUnmergeDefs).getReg();
4767 LLT SrcTy = MRI.getType(GIMatchData_src);
4768 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
4769 if (SrcTy.getSizeInBits() != DstTy.getSizeInBits())
4770 return false;
4771
4772 // Check bitcast legality.
4773 if (SrcTy != DstTy) {
4774 std::array<LLT, 2> Types = {{DstTy, SrcTy}};
4775 LegalityQuery Query(TargetOpcode::G_BITCAST, Types);
4776 if (!Helper.isLegalOrBeforeLegalizer(Query))
4777 return false;
4778 }
4779
4780 return true;}()) {
4781 return false;
4782 }
4783 // Apply Patterns
4784 LLT SrcTy = MRI.getType(GIMatchData_src);
4785 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
4786
4787 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
4788
4789 if (SrcTy == DstTy) {
4790 Helper.replaceRegWith(MRI, State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
4791 } else {
4792 Helper.getBuilder().buildBitcast(State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
4793 }
4794
4795 State.MIs[0]->eraseFromParent();
4796 return true;
4797 }
4798 case GICXXCustomAction_GICombiner116:{
4799 SmallVector<APInt, 8> GIMatchData_info;
4800 // Match Patterns
4801 if(![&](){return Helper.matchCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);}()) {
4802 return false;
4803 }
4804 // Apply Patterns
4805 Helper.applyCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);
4806 return true;
4807 }
4808 case GICXXCustomAction_GICombiner117:{
4809 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4810 // Match Patterns
4811 if(![&](){return Helper.matchCombineUnmergeUndef(*State.MIs[0], GIMatchData_info);}()) {
4812 return false;
4813 }
4814 // Apply Patterns
4815 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4816 return true;
4817 }
4818 case GICXXCustomAction_GICombiner118:{
4819 // Match Patterns
4820 if(![&](){return Helper.matchCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);}()) {
4821 return false;
4822 }
4823 // Apply Patterns
4824 Helper.applyCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);
4825 return true;
4826 }
4827 case GICXXCustomAction_GICombiner119:{
4828 // Match Patterns
4829 if(![&](){return Helper.matchCombineUnmergeZExtToZExt(*State.MIs[0]);}()) {
4830 return false;
4831 }
4832 // Apply Patterns
4833 Helper.applyCombineUnmergeZExtToZExt(*State.MIs[0]);
4834 return true;
4835 }
4836 case GICXXCustomAction_GICombiner120:{
4837 Register GIMatchData_unmergeSrc;
4838 // Match Patterns
4839 if(![&](){return Helper.matchCombineBuildUnmerge(*State.MIs[0], MRI, GIMatchData_unmergeSrc);}()) {
4840 return false;
4841 }
4842 // Apply Patterns
4843 Helper.applyCombineBuildUnmerge(*State.MIs[0], MRI, B, GIMatchData_unmergeSrc);
4844 return true;
4845 }
4846 case GICXXCustomAction_GICombiner121:{
4847 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4848 // Match Patterns
4849 if(![&](){return Helper.matchAddOverflow(*State.MIs[0], GIMatchData_matchinfo);}()) {
4850 return false;
4851 }
4852 // Apply Patterns
4853 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4854 return true;
4855 }
4856 case GICXXCustomAction_GICombiner122:{
4857 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4858 // Match Patterns
4859 if(![&](){return Helper.matchSuboCarryOut(*State.MIs[0], GIMatchData_matchinfo);}()) {
4860 return false;
4861 }
4862 // Apply Patterns
4863 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4864 return true;
4865 }
4866 case GICXXCustomAction_GICombiner123:{
4867 Register GIMatchData_matchinfo;
4868 // Match Patterns
4869 if(![&](){return Helper.matchTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);}()) {
4870 return false;
4871 }
4872 // Apply Patterns
4873 Helper.applyTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);
4874 return true;
4875 }
4876 case GICXXCustomAction_GICombiner124:{
4877 Register GIMatchData_matchinfo;
4878 // Match Patterns
4879 if(![&](){return Helper.matchTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);}()) {
4880 return false;
4881 }
4882 // Apply Patterns
4883 Helper.applyTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);
4884 return true;
4885 }
4886 case GICXXCustomAction_GICombiner125:{
4887 LshrOfTruncOfLshr GIMatchData_matchinfo;
4888 // Match Patterns
4889 if(![&](){return Helper.matchLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo, *State.MIs[2]);}()) {
4890 return false;
4891 }
4892 // Apply Patterns
4893 Helper.applyLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo);
4894 return true;
4895 }
4896 case GICXXCustomAction_GICombiner126:{
4897 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4898 // Match Patterns
4899 if(![&](){return Helper.matchCtls(*State.MIs[0], GIMatchData_matchinfo);}()) {
4900 return false;
4901 }
4902 // Apply Patterns
4903 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4904 return true;
4905 }
4906 case GICXXCustomAction_GICombiner127:{
4907 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4908 // Match Patterns
4909 if(![&](){return Helper.matchBinopWithNeg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4910 return false;
4911 }
4912 // Apply Patterns
4913 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4914 return true;
4915 }
4916 case GICXXCustomAction_GICombiner128:{
4917 SmallVector<Register> GIMatchData_matchinfo;
4918 // Match Patterns
4919 if(![&](){return Helper.matchCombineShuffleVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
4920 return false;
4921 }
4922 // Apply Patterns
4923 Helper.applyCombineShuffleVector(*State.MIs[0], GIMatchData_matchinfo);
4924 return true;
4925 }
4926 case GICXXCustomAction_GICombiner129:{
4927 Register GIMatchData_matchinfo;
4928 // Match Patterns
4929 if(![&](){return matchICmpRedundantTrunc(*State.MIs[0], MRI, Helper.getValueTracking(), GIMatchData_matchinfo);}()) {
4930 return false;
4931 }
4932 // Apply Patterns
4933 applyICmpRedundantTrunc(*State.MIs[0], MRI, B, Observer, GIMatchData_matchinfo);
4934 return true;
4935 }
4936 case GICXXCustomAction_GICombiner130:{
4937 std::pair<uint64_t, uint64_t> GIMatchData_matchinfo;
4938 // Match Patterns
4939 if(![&](){return matchFoldGlobalOffset(*State.MIs[0], MRI, GIMatchData_matchinfo);}()) {
4940 return false;
4941 }
4942 // Apply Patterns
4943 applyFoldGlobalOffset(*State.MIs[0], MRI, B, Observer, GIMatchData_matchinfo);
4944 return true;
4945 }
4946 case GICXXCustomAction_GICombiner131:{
4947 std::tuple<Register, Register, bool> GIMatchData_matchinfo;
4948 // Match Patterns
4949 if(![&](){return matchExtAddvToDotAddv(*State.MIs[0], MRI, STI, GIMatchData_matchinfo);}()) {
4950 return false;
4951 }
4952 // Apply Patterns
4953 applyExtAddvToDotAddv(*State.MIs[0], MRI, B, Observer, STI, GIMatchData_matchinfo);
4954 return true;
4955 }
4956 case GICXXCustomAction_GICombiner132:{
4957 std::pair<Register, bool> GIMatchData_matchinfo;
4958 // Match Patterns
4959 if(![&](){return matchExtUaddvToUaddlv(*State.MIs[0], MRI, GIMatchData_matchinfo);}()) {
4960 return false;
4961 }
4962 // Apply Patterns
4963 applyExtUaddvToUaddlv(*State.MIs[0], MRI, B, Observer, GIMatchData_matchinfo);
4964 return true;
4965 }
4966 case GICXXCustomAction_GICombiner133:{
4967 // Match Patterns
4968 if(![&](){return matchPushAddSubExt(*State.MIs[0], MRI, State.MIs[0]->getOperand(0).getReg(), State.MIs[1]->getOperand(1).getReg(), State.MIs[2]->getOperand(1).getReg());}()) {
4969 return false;
4970 }
4971 // Apply Patterns
4972 applyPushAddSubExt(*State.MIs[0], MRI, B, State.MIs[1]->getOpcode() == TargetOpcode::G_SEXT, State.MIs[0]->getOperand(0).getReg(), State.MIs[1]->getOperand(1).getReg(), State.MIs[2]->getOperand(1).getReg());
4973 return true;
4974 }
4975 case GICXXCustomAction_GICombiner134:{
4976 std::pair<Register, Register> GIMatchData_matchinfo;
4977 // Match Patterns
4978 if(![&](){return matchSimplifyUADDO(*State.MIs[0], MRI, GIMatchData_matchinfo);}()) {
4979 return false;
4980 }
4981 // Apply Patterns
4982 applySimplifyUADDO(*State.MIs[0], MRI, B, Observer, Helper,
4983 GIMatchData_matchinfo);
4984 return true;
4985 }
4986 case GICXXCustomAction_GICombiner135:{
4987 MemCpyFamilyLoweringInfo GIMatchData_matchinfo;
4988 // Match Patterns
4989 if(![&](){return Helper.matchCombineMemCpyFamily(*State.MIs[0], GIMatchData_matchinfo);}()) {
4990 return false;
4991 }
4992 // Apply Patterns
4993 Helper.applyCombineMemCpyFamily(*State.MIs[0], GIMatchData_matchinfo);
4994 return true;
4995 }
4996 case GICXXCustomAction_GICombiner136:{
4997 MemCpyFamilyLoweringInfo GIMatchData_matchinfo;
4998 // Match Patterns
4999 if(![&](){return Helper.matchCombineMemCpyFamily(*State.MIs[0], GIMatchData_matchinfo,
5000 CInfo.EnableOpt ? 0 : 32);}()) {
5001 return false;
5002 }
5003 // Apply Patterns
5004 Helper.applyCombineMemCpyFamily(*State.MIs[0], GIMatchData_matchinfo);
5005 return true;
5006 }
5007 case GICXXCustomAction_GICombiner137:{
5008 // Match Patterns
5009 if(![&](){return llvm::AArch64GISelUtils::matchEmitBZero(*State.MIs[0], MRI,
5010 Libcalls,
5011 CInfo.EnableMinSize);}()) {
5012 return false;
5013 }
5014 // Apply Patterns
5015 llvm::AArch64GISelUtils::applyEmitBZero(*State.MIs[0], B);
5016 return true;
5017 }
5018 }
5019 llvm_unreachable("Unknown Apply Action");
5020}
5021#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
5022#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((Val) >> 8)
5023#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24)
5024#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)
5025#else
5026#define GIMT_Encode2(Val) uint8_t((Val) >> 8), uint8_t(Val)
5027#define GIMT_Encode4(Val) uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
5028#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)
5029#endif
5030const uint8_t *AArch64PreLegalizerCombinerImpl::getMatchTable() const {
5031 constexpr static uint8_t MatchTable0[] = {
5032 /* 0 */ GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(20), GIMT_Encode2(325), /*)*//*default:*//*Label 120*/ GIMT_Encode4(12922),
5033 /* 10 */ /*TargetOpcode::COPY*//*Label 0*/ GIMT_Encode4(1230), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5034 /* 150 */ /*TargetOpcode::G_ADD*//*Label 1*/ GIMT_Encode4(1242),
5035 /* 154 */ /*TargetOpcode::G_SUB*//*Label 2*/ GIMT_Encode4(2270),
5036 /* 158 */ /*TargetOpcode::G_MUL*//*Label 3*/ GIMT_Encode4(3503),
5037 /* 162 */ /*TargetOpcode::G_SDIV*//*Label 4*/ GIMT_Encode4(3795),
5038 /* 166 */ /*TargetOpcode::G_UDIV*//*Label 5*/ GIMT_Encode4(3880),
5039 /* 170 */ /*TargetOpcode::G_SREM*//*Label 6*/ GIMT_Encode4(3986),
5040 /* 174 */ /*TargetOpcode::G_UREM*//*Label 7*/ GIMT_Encode4(4065), GIMT_Encode4(0), GIMT_Encode4(0),
5041 /* 186 */ /*TargetOpcode::G_AND*//*Label 8*/ GIMT_Encode4(4165),
5042 /* 190 */ /*TargetOpcode::G_OR*//*Label 9*/ GIMT_Encode4(4637),
5043 /* 194 */ /*TargetOpcode::G_XOR*//*Label 10*/ GIMT_Encode4(5497), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5044 /* 226 */ /*TargetOpcode::G_PHI*//*Label 11*/ GIMT_Encode4(5759), GIMT_Encode4(0),
5045 /* 234 */ /*TargetOpcode::G_GLOBAL_VALUE*//*Label 12*/ GIMT_Encode4(5774), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5046 /* 250 */ /*TargetOpcode::G_UNMERGE_VALUES*//*Label 13*/ GIMT_Encode4(5786), GIMT_Encode4(0),
5047 /* 258 */ /*TargetOpcode::G_MERGE_VALUES*//*Label 14*/ GIMT_Encode4(5853),
5048 /* 262 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 15*/ GIMT_Encode4(5948),
5049 /* 266 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 16*/ GIMT_Encode4(6020),
5050 /* 270 */ /*TargetOpcode::G_CONCAT_VECTORS*//*Label 17*/ GIMT_Encode4(6035),
5051 /* 274 */ /*TargetOpcode::G_PTRTOINT*//*Label 18*/ GIMT_Encode4(6050),
5052 /* 278 */ /*TargetOpcode::G_INTTOPTR*//*Label 19*/ GIMT_Encode4(6171),
5053 /* 282 */ /*TargetOpcode::G_BITCAST*//*Label 20*/ GIMT_Encode4(6229),
5054 /* 286 */ /*TargetOpcode::G_FREEZE*//*Label 21*/ GIMT_Encode4(6319), GIMT_Encode4(0), GIMT_Encode4(0),
5055 /* 298 */ /*TargetOpcode::G_INTRINSIC_TRUNC*//*Label 22*/ GIMT_Encode4(6383),
5056 /* 302 */ /*TargetOpcode::G_INTRINSIC_ROUND*//*Label 23*/ GIMT_Encode4(6405), GIMT_Encode4(0), GIMT_Encode4(0),
5057 /* 314 */ /*TargetOpcode::G_INTRINSIC_ROUNDEVEN*//*Label 24*/ GIMT_Encode4(6427), GIMT_Encode4(0), GIMT_Encode4(0),
5058 /* 326 */ /*TargetOpcode::G_LOAD*//*Label 25*/ GIMT_Encode4(6449),
5059 /* 330 */ /*TargetOpcode::G_SEXTLOAD*//*Label 26*/ GIMT_Encode4(6461),
5060 /* 334 */ /*TargetOpcode::G_ZEXTLOAD*//*Label 27*/ GIMT_Encode4(6473), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5061 /* 354 */ /*TargetOpcode::G_STORE*//*Label 28*/ GIMT_Encode4(6485), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5062 /* 502 */ /*TargetOpcode::G_ANYEXT*//*Label 29*/ GIMT_Encode4(6509),
5063 /* 506 */ /*TargetOpcode::G_TRUNC*//*Label 30*/ GIMT_Encode4(6640), GIMT_Encode4(0), GIMT_Encode4(0),
5064 /* 518 */ /*TargetOpcode::G_TRUNC_USAT_U*//*Label 31*/ GIMT_Encode4(7055), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5065 /* 538 */ /*TargetOpcode::G_SEXT*//*Label 32*/ GIMT_Encode4(7088),
5066 /* 542 */ /*TargetOpcode::G_SEXT_INREG*//*Label 33*/ GIMT_Encode4(7163),
5067 /* 546 */ /*TargetOpcode::G_ZEXT*//*Label 34*/ GIMT_Encode4(7385),
5068 /* 550 */ /*TargetOpcode::G_SHL*//*Label 35*/ GIMT_Encode4(7515),
5069 /* 554 */ /*TargetOpcode::G_LSHR*//*Label 36*/ GIMT_Encode4(7864),
5070 /* 558 */ /*TargetOpcode::G_ASHR*//*Label 37*/ GIMT_Encode4(8207),
5071 /* 562 */ /*TargetOpcode::G_FSHL*//*Label 38*/ GIMT_Encode4(8532),
5072 /* 566 */ /*TargetOpcode::G_FSHR*//*Label 39*/ GIMT_Encode4(8591),
5073 /* 570 */ /*TargetOpcode::G_ROTR*//*Label 40*/ GIMT_Encode4(8650),
5074 /* 574 */ /*TargetOpcode::G_ROTL*//*Label 41*/ GIMT_Encode4(8674),
5075 /* 578 */ /*TargetOpcode::G_ICMP*//*Label 42*/ GIMT_Encode4(8698),
5076 /* 582 */ /*TargetOpcode::G_FCMP*//*Label 43*/ GIMT_Encode4(8754), GIMT_Encode4(0), GIMT_Encode4(0),
5077 /* 594 */ /*TargetOpcode::G_SELECT*//*Label 44*/ GIMT_Encode4(8766),
5078 /* 598 */ /*TargetOpcode::G_UADDO*//*Label 45*/ GIMT_Encode4(9177),
5079 /* 602 */ /*TargetOpcode::G_UADDE*//*Label 46*/ GIMT_Encode4(9257),
5080 /* 606 */ /*TargetOpcode::G_USUBO*//*Label 47*/ GIMT_Encode4(9285),
5081 /* 610 */ /*TargetOpcode::G_USUBE*//*Label 48*/ GIMT_Encode4(9297),
5082 /* 614 */ /*TargetOpcode::G_SADDO*//*Label 49*/ GIMT_Encode4(9325),
5083 /* 618 */ /*TargetOpcode::G_SADDE*//*Label 50*/ GIMT_Encode4(9394),
5084 /* 622 */ /*TargetOpcode::G_SSUBO*//*Label 51*/ GIMT_Encode4(9422),
5085 /* 626 */ /*TargetOpcode::G_SSUBE*//*Label 52*/ GIMT_Encode4(9434),
5086 /* 630 */ /*TargetOpcode::G_UMULO*//*Label 53*/ GIMT_Encode4(9462),
5087 /* 634 */ /*TargetOpcode::G_SMULO*//*Label 54*/ GIMT_Encode4(9528),
5088 /* 638 */ /*TargetOpcode::G_UMULH*//*Label 55*/ GIMT_Encode4(9594),
5089 /* 642 */ /*TargetOpcode::G_SMULH*//*Label 56*/ GIMT_Encode4(9631),
5090 /* 646 */ /*TargetOpcode::G_UADDSAT*//*Label 57*/ GIMT_Encode4(9657),
5091 /* 650 */ /*TargetOpcode::G_SADDSAT*//*Label 58*/ GIMT_Encode4(9683), GIMT_Encode4(0), GIMT_Encode4(0),
5092 /* 662 */ /*TargetOpcode::G_USHLSAT*//*Label 59*/ GIMT_Encode4(9709),
5093 /* 666 */ /*TargetOpcode::G_SSHLSAT*//*Label 60*/ GIMT_Encode4(9732),
5094 /* 670 */ /*TargetOpcode::G_SMULFIX*//*Label 61*/ GIMT_Encode4(9755),
5095 /* 674 */ /*TargetOpcode::G_UMULFIX*//*Label 62*/ GIMT_Encode4(9783),
5096 /* 678 */ /*TargetOpcode::G_SMULFIXSAT*//*Label 63*/ GIMT_Encode4(9811),
5097 /* 682 */ /*TargetOpcode::G_UMULFIXSAT*//*Label 64*/ GIMT_Encode4(9839), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5098 /* 702 */ /*TargetOpcode::G_FADD*//*Label 65*/ GIMT_Encode4(9867),
5099 /* 706 */ /*TargetOpcode::G_FSUB*//*Label 66*/ GIMT_Encode4(10085),
5100 /* 710 */ /*TargetOpcode::G_FMUL*//*Label 67*/ GIMT_Encode4(10230),
5101 /* 714 */ /*TargetOpcode::G_FMA*//*Label 68*/ GIMT_Encode4(10364),
5102 /* 718 */ /*TargetOpcode::G_FMAD*//*Label 69*/ GIMT_Encode4(10421),
5103 /* 722 */ /*TargetOpcode::G_FDIV*//*Label 70*/ GIMT_Encode4(10478),
5104 /* 726 */ /*TargetOpcode::G_FREM*//*Label 71*/ GIMT_Encode4(10555), GIMT_Encode4(0), GIMT_Encode4(0),
5105 /* 738 */ /*TargetOpcode::G_FPOWI*//*Label 72*/ GIMT_Encode4(10578), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5106 /* 758 */ /*TargetOpcode::G_FLOG2*//*Label 73*/ GIMT_Encode4(10600), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5107 /* 774 */ /*TargetOpcode::G_FNEG*//*Label 74*/ GIMT_Encode4(10622),
5108 /* 778 */ /*TargetOpcode::G_FPEXT*//*Label 75*/ GIMT_Encode4(10673),
5109 /* 782 */ /*TargetOpcode::G_FPTRUNC*//*Label 76*/ GIMT_Encode4(10695),
5110 /* 786 */ /*TargetOpcode::G_FPTOSI*//*Label 77*/ GIMT_Encode4(10750),
5111 /* 790 */ /*TargetOpcode::G_FPTOUI*//*Label 78*/ GIMT_Encode4(10775),
5112 /* 794 */ /*TargetOpcode::G_SITOFP*//*Label 79*/ GIMT_Encode4(10800),
5113 /* 798 */ /*TargetOpcode::G_UITOFP*//*Label 80*/ GIMT_Encode4(10837), GIMT_Encode4(0), GIMT_Encode4(0),
5114 /* 810 */ /*TargetOpcode::G_FABS*//*Label 81*/ GIMT_Encode4(10874),
5115 /* 814 */ /*TargetOpcode::G_FCOPYSIGN*//*Label 82*/ GIMT_Encode4(10953), GIMT_Encode4(0),
5116 /* 822 */ /*TargetOpcode::G_FCANONICALIZE*//*Label 83*/ GIMT_Encode4(10965),
5117 /* 826 */ /*TargetOpcode::G_FMINNUM*//*Label 84*/ GIMT_Encode4(10995),
5118 /* 830 */ /*TargetOpcode::G_FMAXNUM*//*Label 85*/ GIMT_Encode4(11089),
5119 /* 834 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 86*/ GIMT_Encode4(11183),
5120 /* 838 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 87*/ GIMT_Encode4(11209),
5121 /* 842 */ /*TargetOpcode::G_FMINIMUM*//*Label 88*/ GIMT_Encode4(11235),
5122 /* 846 */ /*TargetOpcode::G_FMAXIMUM*//*Label 89*/ GIMT_Encode4(11329),
5123 /* 850 */ /*TargetOpcode::G_FMINIMUMNUM*//*Label 90*/ GIMT_Encode4(11423),
5124 /* 854 */ /*TargetOpcode::G_FMAXIMUMNUM*//*Label 91*/ GIMT_Encode4(11435), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5125 /* 890 */ /*TargetOpcode::G_PTR_ADD*//*Label 92*/ GIMT_Encode4(11447), GIMT_Encode4(0),
5126 /* 898 */ /*TargetOpcode::G_SMIN*//*Label 93*/ GIMT_Encode4(11613),
5127 /* 902 */ /*TargetOpcode::G_SMAX*//*Label 94*/ GIMT_Encode4(11661),
5128 /* 906 */ /*TargetOpcode::G_UMIN*//*Label 95*/ GIMT_Encode4(11709),
5129 /* 910 */ /*TargetOpcode::G_UMAX*//*Label 96*/ GIMT_Encode4(11757),
5130 /* 914 */ /*TargetOpcode::G_ABS*//*Label 97*/ GIMT_Encode4(11805), GIMT_Encode4(0), GIMT_Encode4(0),
5131 /* 926 */ /*TargetOpcode::G_BR*//*Label 98*/ GIMT_Encode4(11838), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5132 /* 946 */ /*TargetOpcode::G_INSERT_VECTOR_ELT*//*Label 99*/ GIMT_Encode4(11850),
5133 /* 950 */ /*TargetOpcode::G_EXTRACT_VECTOR_ELT*//*Label 100*/ GIMT_Encode4(11994),
5134 /* 954 */ /*TargetOpcode::G_SHUFFLE_VECTOR*//*Label 101*/ GIMT_Encode4(12385), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5135 /* 970 */ /*TargetOpcode::G_CTTZ*//*Label 102*/ GIMT_Encode4(12476),
5136 /* 974 */ /*TargetOpcode::G_CTTZ_ZERO_POISON*//*Label 103*/ GIMT_Encode4(12511),
5137 /* 978 */ /*TargetOpcode::G_CTLZ*//*Label 104*/ GIMT_Encode4(12523),
5138 /* 982 */ /*TargetOpcode::G_CTLZ_ZERO_POISON*//*Label 105*/ GIMT_Encode4(12569), GIMT_Encode4(0),
5139 /* 990 */ /*TargetOpcode::G_CTPOP*//*Label 106*/ GIMT_Encode4(12592),
5140 /* 994 */ /*TargetOpcode::G_BSWAP*//*Label 107*/ GIMT_Encode4(12604),
5141 /* 998 */ /*TargetOpcode::G_BITREVERSE*//*Label 108*/ GIMT_Encode4(12616), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5142 /* 1014 */ /*TargetOpcode::G_FCEIL*//*Label 109*/ GIMT_Encode4(12716), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5143 /* 1062 */ /*TargetOpcode::G_FSQRT*//*Label 110*/ GIMT_Encode4(12738),
5144 /* 1066 */ /*TargetOpcode::G_FFLOOR*//*Label 111*/ GIMT_Encode4(12760),
5145 /* 1070 */ /*TargetOpcode::G_FRINT*//*Label 112*/ GIMT_Encode4(12782),
5146 /* 1074 */ /*TargetOpcode::G_FNEARBYINT*//*Label 113*/ GIMT_Encode4(12804), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5147 /* 1150 */ /*TargetOpcode::G_MEMCPY*//*Label 114*/ GIMT_Encode4(12826),
5148 /* 1154 */ /*TargetOpcode::G_MEMCPY_INLINE*//*Label 115*/ GIMT_Encode4(12838),
5149 /* 1158 */ /*TargetOpcode::G_MEMMOVE*//*Label 116*/ GIMT_Encode4(12850),
5150 /* 1162 */ /*TargetOpcode::G_MEMSET*//*Label 117*/ GIMT_Encode4(12862), GIMT_Encode4(0),
5151 /* 1170 */ /*TargetOpcode::G_MEMSET_INLINE*//*Label 118*/ GIMT_Encode4(12885), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5152 /* 1226 */ /*TargetOpcode::G_VECREDUCE_ADD*//*Label 119*/ GIMT_Encode4(12897),
5153 /* 1230 */ // Label 0: @1230
5154 /* 1230 */ GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(1241), // Rule ID 19 //
5155 /* 1235 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
5156 /* 1238 */ // MIs[0] d
5157 /* 1238 */ // No operand predicates
5158 /* 1238 */ // MIs[0] s
5159 /* 1238 */ // No operand predicates
5160 /* 1238 */ // Combiner Rule #19: copy_prop
5161 /* 1238 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
5162 /* 1241 */ // Label 121: @1241
5163 /* 1241 */ GIM_Reject,
5164 /* 1242 */ // Label 1: @1242
5165 /* 1242 */ GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(1330), // Rule ID 453 //
5166 /* 1247 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule320Enabled),
5167 /* 1250 */ // MIs[0] dst
5168 /* 1250 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5169 /* 1254 */ // MIs[0] __add_shift_match_0.shl_neg
5170 /* 1254 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5171 /* 1258 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
5172 /* 1262 */ // MIs[1] __add_shift_match_0.neg_y
5173 /* 1262 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5174 /* 1266 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5175 /* 1270 */ // MIs[2] __add_shift_match_0.zero
5176 /* 1270 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
5177 /* 1274 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5178 /* 1278 */ // MIs[3] Operand 1
5179 /* 1278 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
5180 /* 1289 */ // MIs[2] y
5181 /* 1289 */ // No operand predicates
5182 /* 1289 */ // MIs[1] n
5183 /* 1289 */ // No operand predicates
5184 /* 1289 */ // MIs[0] x
5185 /* 1289 */ // No operand predicates
5186 /* 1289 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner58),
5187 /* 1293 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5188 /* 1295 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5189 /* 1298 */ // Combiner Rule #320: add_shift @ [__add_shift_match_0[1]]
5190 /* 1298 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
5191 /* 1301 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5192 /* 1306 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
5193 /* 1310 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
5194 /* 1314 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5195 /* 1318 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
5196 /* 1322 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // x
5197 /* 1326 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5198 /* 1329 */ GIR_EraseRootFromParent_Done,
5199 /* 1330 */ // Label 122: @1330
5200 /* 1330 */ GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(1418), // Rule ID 452 //
5201 /* 1335 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule320Enabled),
5202 /* 1338 */ // MIs[0] dst
5203 /* 1338 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5204 /* 1342 */ // MIs[0] x
5205 /* 1342 */ // No operand predicates
5206 /* 1342 */ // MIs[0] __add_shift_match_0.shl_neg
5207 /* 1342 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5208 /* 1346 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
5209 /* 1350 */ // MIs[1] __add_shift_match_0.neg_y
5210 /* 1350 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5211 /* 1354 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5212 /* 1358 */ // MIs[2] __add_shift_match_0.zero
5213 /* 1358 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
5214 /* 1362 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5215 /* 1366 */ // MIs[3] Operand 1
5216 /* 1366 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
5217 /* 1377 */ // MIs[2] y
5218 /* 1377 */ // No operand predicates
5219 /* 1377 */ // MIs[1] n
5220 /* 1377 */ // No operand predicates
5221 /* 1377 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner57),
5222 /* 1381 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5223 /* 1383 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5224 /* 1386 */ // Combiner Rule #320: add_shift @ [__add_shift_match_0[0]]
5225 /* 1386 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
5226 /* 1389 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5227 /* 1394 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
5228 /* 1398 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
5229 /* 1402 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5230 /* 1406 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
5231 /* 1410 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // x
5232 /* 1414 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5233 /* 1417 */ GIR_EraseRootFromParent_Done,
5234 /* 1418 */ // Label 123: @1418
5235 /* 1418 */ GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(1452), // Rule ID 2 //
5236 /* 1423 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
5237 /* 1426 */ // MIs[0] root
5238 /* 1426 */ // No operand predicates
5239 /* 1426 */ // MIs[0] sub
5240 /* 1426 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5241 /* 1430 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5242 /* 1434 */ // MIs[1] Operand 1
5243 /* 1434 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
5244 /* 1438 */ // MIs[1] A
5245 /* 1438 */ // No operand predicates
5246 /* 1438 */ // MIs[0] B
5247 /* 1438 */ // No operand predicates
5248 /* 1438 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5249 /* 1440 */ // Combiner Rule #2: ZeroMinusAPlusB
5250 /* 1440 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5251 /* 1443 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5252 /* 1445 */ GIR_RootToRootCopy, /*OpIdx*/2, // B
5253 /* 1447 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // A
5254 /* 1451 */ GIR_EraseRootFromParent_Done,
5255 /* 1452 */ // Label 124: @1452
5256 /* 1452 */ GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(1501), // Rule ID 162 //
5257 /* 1457 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled),
5258 /* 1460 */ // MIs[0] dst
5259 /* 1460 */ // No operand predicates
5260 /* 1460 */ // MIs[0] __simplify_add_to_sub_match_0.neg
5261 /* 1460 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5262 /* 1464 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5263 /* 1468 */ // MIs[1] __simplify_add_to_sub_match_0.zero
5264 /* 1468 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5265 /* 1472 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5266 /* 1476 */ // MIs[2] Operand 1
5267 /* 1476 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(0),
5268 /* 1487 */ // MIs[1] newrhs
5269 /* 1487 */ // No operand predicates
5270 /* 1487 */ // MIs[0] newlhs
5271 /* 1487 */ // No operand predicates
5272 /* 1487 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5273 /* 1489 */ // Combiner Rule #117: simplify_add_to_sub @ [__simplify_add_to_sub_match_0[0]]
5274 /* 1489 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5275 /* 1492 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5276 /* 1494 */ GIR_RootToRootCopy, /*OpIdx*/2, // newlhs
5277 /* 1496 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // newrhs
5278 /* 1500 */ GIR_EraseRootFromParent_Done,
5279 /* 1501 */ // Label 125: @1501
5280 /* 1501 */ GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(1538), // Rule ID 18 //
5281 /* 1506 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
5282 /* 1509 */ // MIs[0] root
5283 /* 1509 */ // No operand predicates
5284 /* 1509 */ // MIs[0] sub
5285 /* 1509 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5286 /* 1513 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5287 /* 1517 */ // MIs[1] A
5288 /* 1517 */ // No operand predicates
5289 /* 1517 */ // MIs[1] c1
5290 /* 1517 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5291 /* 1521 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5292 /* 1525 */ // MIs[2] imm1
5293 /* 1525 */ // No operand predicates
5294 /* 1525 */ // MIs[0] c2
5295 /* 1525 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5296 /* 1529 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5297 /* 1533 */ // MIs[3] imm2
5298 /* 1533 */ // No operand predicates
5299 /* 1533 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5300 /* 1535 */ // Combiner Rule #18: AMinusC1PlusC2
5301 /* 1535 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
5302 /* 1538 */ // Label 126: @1538
5303 /* 1538 */ GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(1572), // Rule ID 5 //
5304 /* 1543 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
5305 /* 1546 */ // MIs[0] root
5306 /* 1546 */ // No operand predicates
5307 /* 1546 */ // MIs[0] sub
5308 /* 1546 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5309 /* 1550 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5310 /* 1554 */ // MIs[1] B
5311 /* 1554 */ // No operand predicates
5312 /* 1554 */ // MIs[1] A
5313 /* 1554 */ // No operand predicates
5314 /* 1554 */ // MIs[0] A
5315 /* 1554 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
5316 /* 1559 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5317 /* 1564 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5318 /* 1566 */ // Combiner Rule #5: BMinusAPlusA
5319 /* 1566 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5320 /* 1571 */ GIR_EraseRootFromParent_Done,
5321 /* 1572 */ // Label 127: @1572
5322 /* 1572 */ GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(1606), // Rule ID 150 //
5323 /* 1577 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
5324 /* 1580 */ // MIs[0] dst
5325 /* 1580 */ // No operand predicates
5326 /* 1580 */ // MIs[0] __add_sub_reg_match_0.tmp
5327 /* 1580 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5328 /* 1584 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5329 /* 1588 */ // MIs[1] src
5330 /* 1588 */ // No operand predicates
5331 /* 1588 */ // MIs[1] __add_sub_reg_match_0.x
5332 /* 1588 */ // No operand predicates
5333 /* 1588 */ // MIs[0] __add_sub_reg_match_0.x
5334 /* 1588 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
5335 /* 1593 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5336 /* 1598 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5337 /* 1600 */ // Combiner Rule #105: add_sub_reg @ [__add_sub_reg_match_0[1]]
5338 /* 1600 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5339 /* 1605 */ GIR_EraseRootFromParent_Done,
5340 /* 1606 */ // Label 128: @1606
5341 /* 1606 */ GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(1651), // Rule ID 7 //
5342 /* 1611 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
5343 /* 1614 */ // MIs[0] root
5344 /* 1614 */ // No operand predicates
5345 /* 1614 */ // MIs[0] sub1
5346 /* 1614 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5347 /* 1618 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5348 /* 1622 */ // MIs[1] A
5349 /* 1622 */ // No operand predicates
5350 /* 1622 */ // MIs[1] B
5351 /* 1622 */ // No operand predicates
5352 /* 1622 */ // MIs[0] sub2
5353 /* 1622 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5354 /* 1626 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5355 /* 1630 */ // MIs[2] B
5356 /* 1630 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
5357 /* 1635 */ // MIs[2] C
5358 /* 1635 */ // No operand predicates
5359 /* 1635 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5360 /* 1637 */ // Combiner Rule #7: AMinusBPlusBMinusC
5361 /* 1637 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5362 /* 1640 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5363 /* 1642 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5364 /* 1646 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
5365 /* 1650 */ GIR_EraseRootFromParent_Done,
5366 /* 1651 */ // Label 129: @1651
5367 /* 1651 */ GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(1696), // Rule ID 6 //
5368 /* 1656 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
5369 /* 1659 */ // MIs[0] root
5370 /* 1659 */ // No operand predicates
5371 /* 1659 */ // MIs[0] sub1
5372 /* 1659 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5373 /* 1663 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5374 /* 1667 */ // MIs[1] A
5375 /* 1667 */ // No operand predicates
5376 /* 1667 */ // MIs[1] B
5377 /* 1667 */ // No operand predicates
5378 /* 1667 */ // MIs[0] sub2
5379 /* 1667 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5380 /* 1671 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5381 /* 1675 */ // MIs[2] C
5382 /* 1675 */ // No operand predicates
5383 /* 1675 */ // MIs[2] A
5384 /* 1675 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5385 /* 1680 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5386 /* 1682 */ // Combiner Rule #6: AMinusBPlusCMinusA
5387 /* 1682 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5388 /* 1685 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5389 /* 1687 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
5390 /* 1691 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
5391 /* 1695 */ GIR_EraseRootFromParent_Done,
5392 /* 1696 */ // Label 130: @1696
5393 /* 1696 */ GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(1751), // Rule ID 22 //
5394 /* 1701 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
5395 /* 1704 */ // MIs[0] dst
5396 /* 1704 */ // No operand predicates
5397 /* 1704 */ // MIs[0] __add_p2i_to_ptradd_match_0.x
5398 /* 1704 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5399 /* 1708 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_PTRTOINT),
5400 /* 1712 */ // MIs[1] ptr
5401 /* 1712 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
5402 /* 1716 */ // MIs[0] other
5403 /* 1716 */ // No operand predicates
5404 /* 1716 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
5405 /* 1720 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5406 /* 1722 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5407 /* 1725 */ // Combiner Rule #22: add_p2i_to_ptradd @ [__add_p2i_to_ptradd_match_0[0]]
5408 /* 1725 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTR_ADD),
5409 /* 1728 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5410 /* 1733 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
5411 /* 1737 */ GIR_RootToRootCopy, /*OpIdx*/2, // other
5412 /* 1739 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTRTOINT),
5413 /* 1743 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
5414 /* 1747 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5415 /* 1750 */ GIR_EraseRootFromParent_Done,
5416 /* 1751 */ // Label 131: @1751
5417 /* 1751 */ GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(1780), // Rule ID 480 //
5418 /* 1756 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule342Enabled),
5419 /* 1759 */ // MIs[0] dst
5420 /* 1759 */ // No operand predicates
5421 /* 1759 */ // MIs[0] ext1
5422 /* 1759 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5423 /* 1763 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
5424 /* 1767 */ // MIs[1] src1
5425 /* 1767 */ // No operand predicates
5426 /* 1767 */ // MIs[0] ext2
5427 /* 1767 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5428 /* 1771 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
5429 /* 1775 */ // MIs[2] src2
5430 /* 1775 */ // No operand predicates
5431 /* 1775 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5432 /* 1777 */ // Combiner Rule #342: push_add_through_sext
5433 /* 1777 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
5434 /* 1780 */ // Label 132: @1780
5435 /* 1780 */ GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(1815), // Rule ID 46 //
5436 /* 1785 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
5437 /* 1788 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
5438 /* 1794 */ // MIs[0] root
5439 /* 1794 */ // No operand predicates
5440 /* 1794 */ // MIs[0] left
5441 /* 1794 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5442 /* 1798 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
5443 /* 1802 */ // MIs[1] imm1
5444 /* 1802 */ // No operand predicates
5445 /* 1802 */ // MIs[0] right
5446 /* 1802 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5447 /* 1806 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_VSCALE),
5448 /* 1810 */ // MIs[2] imm2
5449 /* 1810 */ // No operand predicates
5450 /* 1810 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5451 /* 1812 */ // Combiner Rule #42: add_of_vscale
5452 /* 1812 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
5453 /* 1815 */ // Label 133: @1815
5454 /* 1815 */ GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(1844), // Rule ID 477 //
5455 /* 1820 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule339Enabled),
5456 /* 1823 */ // MIs[0] dst
5457 /* 1823 */ // No operand predicates
5458 /* 1823 */ // MIs[0] ext1
5459 /* 1823 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5460 /* 1827 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
5461 /* 1831 */ // MIs[1] src1
5462 /* 1831 */ // No operand predicates
5463 /* 1831 */ // MIs[0] ext2
5464 /* 1831 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5465 /* 1835 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
5466 /* 1839 */ // MIs[2] src2
5467 /* 1839 */ // No operand predicates
5468 /* 1839 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5469 /* 1841 */ // Combiner Rule #339: push_add_through_zext
5470 /* 1841 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
5471 /* 1844 */ // Label 134: @1844
5472 /* 1844 */ GIM_Try, /*On fail goto*//*Label 135*/ GIMT_Encode4(1868), // Rule ID 104 //
5473 /* 1849 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5474 /* 1852 */ // MIs[0] dst
5475 /* 1852 */ // No operand predicates
5476 /* 1852 */ // MIs[0] __propagate_undef_any_op_match_0.x
5477 /* 1852 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5478 /* 1856 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5479 /* 1860 */ // MIs[0] __propagate_undef_any_op_match_0.y
5480 /* 1860 */ // No operand predicates
5481 /* 1860 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5482 /* 1862 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[0]]
5483 /* 1862 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5484 /* 1865 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5485 /* 1867 */ GIR_EraseRootFromParent_Done,
5486 /* 1868 */ // Label 135: @1868
5487 /* 1868 */ GIM_Try, /*On fail goto*//*Label 136*/ GIMT_Encode4(1902), // Rule ID 3 //
5488 /* 1873 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
5489 /* 1876 */ // MIs[0] root
5490 /* 1876 */ // No operand predicates
5491 /* 1876 */ // MIs[0] A
5492 /* 1876 */ // No operand predicates
5493 /* 1876 */ // MIs[0] sub
5494 /* 1876 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5495 /* 1880 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5496 /* 1884 */ // MIs[1] Operand 1
5497 /* 1884 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
5498 /* 1888 */ // MIs[1] B
5499 /* 1888 */ // No operand predicates
5500 /* 1888 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5501 /* 1890 */ // Combiner Rule #3: APlusZeroMinusB
5502 /* 1890 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5503 /* 1893 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5504 /* 1895 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
5505 /* 1897 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
5506 /* 1901 */ GIR_EraseRootFromParent_Done,
5507 /* 1902 */ // Label 136: @1902
5508 /* 1902 */ GIM_Try, /*On fail goto*//*Label 137*/ GIMT_Encode4(1951), // Rule ID 163 //
5509 /* 1907 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled),
5510 /* 1910 */ // MIs[0] dst
5511 /* 1910 */ // No operand predicates
5512 /* 1910 */ // MIs[0] newlhs
5513 /* 1910 */ // No operand predicates
5514 /* 1910 */ // MIs[0] __simplify_add_to_sub_match_0.neg
5515 /* 1910 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5516 /* 1914 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5517 /* 1918 */ // MIs[1] __simplify_add_to_sub_match_0.zero
5518 /* 1918 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5519 /* 1922 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5520 /* 1926 */ // MIs[2] Operand 1
5521 /* 1926 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(0),
5522 /* 1937 */ // MIs[1] newrhs
5523 /* 1937 */ // No operand predicates
5524 /* 1937 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5525 /* 1939 */ // Combiner Rule #117: simplify_add_to_sub @ [__simplify_add_to_sub_match_0[1]]
5526 /* 1939 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5527 /* 1942 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5528 /* 1944 */ GIR_RootToRootCopy, /*OpIdx*/1, // newlhs
5529 /* 1946 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // newrhs
5530 /* 1950 */ GIR_EraseRootFromParent_Done,
5531 /* 1951 */ // Label 137: @1951
5532 /* 1951 */ GIM_Try, /*On fail goto*//*Label 138*/ GIMT_Encode4(1985), // Rule ID 4 //
5533 /* 1956 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
5534 /* 1959 */ // MIs[0] root
5535 /* 1959 */ // No operand predicates
5536 /* 1959 */ // MIs[0] A
5537 /* 1959 */ // No operand predicates
5538 /* 1959 */ // MIs[0] sub
5539 /* 1959 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5540 /* 1963 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5541 /* 1967 */ // MIs[1] B
5542 /* 1967 */ // No operand predicates
5543 /* 1967 */ // MIs[1] A
5544 /* 1967 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5545 /* 1972 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5546 /* 1977 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5547 /* 1979 */ // Combiner Rule #4: APlusBMinusB
5548 /* 1979 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5549 /* 1984 */ GIR_EraseRootFromParent_Done,
5550 /* 1985 */ // Label 138: @1985
5551 /* 1985 */ GIM_Try, /*On fail goto*//*Label 139*/ GIMT_Encode4(2019), // Rule ID 149 //
5552 /* 1990 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
5553 /* 1993 */ // MIs[0] dst
5554 /* 1993 */ // No operand predicates
5555 /* 1993 */ // MIs[0] __add_sub_reg_match_0.x
5556 /* 1993 */ // No operand predicates
5557 /* 1993 */ // MIs[0] __add_sub_reg_match_0.tmp
5558 /* 1993 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5559 /* 1997 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5560 /* 2001 */ // MIs[1] src
5561 /* 2001 */ // No operand predicates
5562 /* 2001 */ // MIs[1] __add_sub_reg_match_0.x
5563 /* 2001 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5564 /* 2006 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5565 /* 2011 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5566 /* 2013 */ // Combiner Rule #105: add_sub_reg @ [__add_sub_reg_match_0[0]]
5567 /* 2013 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5568 /* 2018 */ GIR_EraseRootFromParent_Done,
5569 /* 2019 */ // Label 139: @2019
5570 /* 2019 */ GIM_Try, /*On fail goto*//*Label 140*/ GIMT_Encode4(2064), // Rule ID 8 //
5571 /* 2024 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
5572 /* 2027 */ // MIs[0] root
5573 /* 2027 */ // No operand predicates
5574 /* 2027 */ // MIs[0] A
5575 /* 2027 */ // No operand predicates
5576 /* 2027 */ // MIs[0] sub1
5577 /* 2027 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5578 /* 2031 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5579 /* 2035 */ // MIs[1] B
5580 /* 2035 */ // No operand predicates
5581 /* 2035 */ // MIs[1] add1
5582 /* 2035 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5583 /* 2039 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
5584 /* 2043 */ // MIs[2] A
5585 /* 2043 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
5586 /* 2048 */ // MIs[2] C
5587 /* 2048 */ // No operand predicates
5588 /* 2048 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5589 /* 2050 */ // Combiner Rule #8: APlusBMinusAplusC
5590 /* 2050 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5591 /* 2053 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5592 /* 2055 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
5593 /* 2059 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
5594 /* 2063 */ GIR_EraseRootFromParent_Done,
5595 /* 2064 */ // Label 140: @2064
5596 /* 2064 */ GIM_Try, /*On fail goto*//*Label 141*/ GIMT_Encode4(2109), // Rule ID 10 //
5597 /* 2069 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
5598 /* 2072 */ // MIs[0] root
5599 /* 2072 */ // No operand predicates
5600 /* 2072 */ // MIs[0] A
5601 /* 2072 */ // No operand predicates
5602 /* 2072 */ // MIs[0] sub1
5603 /* 2072 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5604 /* 2076 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5605 /* 2080 */ // MIs[1] B
5606 /* 2080 */ // No operand predicates
5607 /* 2080 */ // MIs[1] add1
5608 /* 2080 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5609 /* 2084 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
5610 /* 2088 */ // MIs[2] C
5611 /* 2088 */ // No operand predicates
5612 /* 2088 */ // MIs[2] A
5613 /* 2088 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5614 /* 2093 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5615 /* 2095 */ // Combiner Rule #10: APlusBMinusCPlusA
5616 /* 2095 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5617 /* 2098 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5618 /* 2100 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
5619 /* 2104 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
5620 /* 2108 */ GIR_EraseRootFromParent_Done,
5621 /* 2109 */ // Label 141: @2109
5622 /* 2109 */ GIM_Try, /*On fail goto*//*Label 142*/ GIMT_Encode4(2164), // Rule ID 23 //
5623 /* 2114 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
5624 /* 2117 */ // MIs[0] dst
5625 /* 2117 */ // No operand predicates
5626 /* 2117 */ // MIs[0] other
5627 /* 2117 */ // No operand predicates
5628 /* 2117 */ // MIs[0] __add_p2i_to_ptradd_match_0.x
5629 /* 2117 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5630 /* 2121 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_PTRTOINT),
5631 /* 2125 */ // MIs[1] ptr
5632 /* 2125 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
5633 /* 2129 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
5634 /* 2133 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5635 /* 2135 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5636 /* 2138 */ // Combiner Rule #22: add_p2i_to_ptradd @ [__add_p2i_to_ptradd_match_0[1]]
5637 /* 2138 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTR_ADD),
5638 /* 2141 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5639 /* 2146 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
5640 /* 2150 */ GIR_RootToRootCopy, /*OpIdx*/1, // other
5641 /* 2152 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTRTOINT),
5642 /* 2156 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
5643 /* 2160 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5644 /* 2163 */ GIR_EraseRootFromParent_Done,
5645 /* 2164 */ // Label 142: @2164
5646 /* 2164 */ GIM_Try, /*On fail goto*//*Label 143*/ GIMT_Encode4(2188), // Rule ID 107 //
5647 /* 2169 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5648 /* 2172 */ // MIs[0] dst
5649 /* 2172 */ // No operand predicates
5650 /* 2172 */ // MIs[0] __propagate_undef_any_op_match_0.x
5651 /* 2172 */ // No operand predicates
5652 /* 2172 */ // MIs[0] __propagate_undef_any_op_match_0.y
5653 /* 2172 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5654 /* 2176 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5655 /* 2180 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5656 /* 2182 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[3]]
5657 /* 2182 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5658 /* 2185 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5659 /* 2187 */ GIR_EraseRootFromParent_Done,
5660 /* 2188 */ // Label 143: @2188
5661 /* 2188 */ GIM_Try, /*On fail goto*//*Label 144*/ GIMT_Encode4(2211), // Rule ID 119 //
5662 /* 2193 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
5663 /* 2196 */ // MIs[0] dst
5664 /* 2196 */ // No operand predicates
5665 /* 2196 */ // MIs[0] lhs
5666 /* 2196 */ // No operand predicates
5667 /* 2196 */ // MIs[0] Operand 2
5668 /* 2196 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5669 /* 2200 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5670 /* 2205 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[1]]
5671 /* 2205 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5672 /* 2210 */ GIR_EraseRootFromParent_Done,
5673 /* 2211 */ // Label 144: @2211
5674 /* 2211 */ GIM_Try, /*On fail goto*//*Label 145*/ GIMT_Encode4(2236), // Rule ID 381 //
5675 /* 2216 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule249Enabled),
5676 /* 2219 */ // MIs[0] dst
5677 /* 2219 */ // No operand predicates
5678 /* 2219 */ // MIs[0] lhs
5679 /* 2219 */ // No operand predicates
5680 /* 2219 */ // MIs[0] rhs
5681 /* 2219 */ // No operand predicates
5682 /* 2219 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
5683 /* 2223 */ // Combiner Rule #249: G_ADD_commute_constant_to_rhs
5684 /* 2223 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5685 /* 2226 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5686 /* 2228 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
5687 /* 2230 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
5688 /* 2232 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
5689 /* 2235 */ GIR_EraseRootFromParent_Done,
5690 /* 2236 */ // Label 145: @2236
5691 /* 2236 */ GIM_Try, /*On fail goto*//*Label 146*/ GIMT_Encode4(2247), // Rule ID 171 //
5692 /* 2241 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
5693 /* 2244 */ // MIs[0] root
5694 /* 2244 */ // No operand predicates
5695 /* 2244 */ // MIs[0] src1
5696 /* 2244 */ // No operand predicates
5697 /* 2244 */ // MIs[0] src2
5698 /* 2244 */ // No operand predicates
5699 /* 2244 */ // Combiner Rule #121: reassoc_comm_binops
5700 /* 2244 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner41),
5701 /* 2247 */ // Label 146: @2247
5702 /* 2247 */ GIM_Try, /*On fail goto*//*Label 147*/ GIMT_Encode4(2258), // Rule ID 280 //
5703 /* 2252 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
5704 /* 2255 */ // MIs[0] d
5705 /* 2255 */ // No operand predicates
5706 /* 2255 */ // MIs[0] mi.src0
5707 /* 2255 */ // No operand predicates
5708 /* 2255 */ // MIs[0] mi.src1
5709 /* 2255 */ // No operand predicates
5710 /* 2255 */ // Combiner Rule #210: constant_fold_binop @ [mi[0]]
5711 /* 2255 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
5712 /* 2258 */ // Label 147: @2258
5713 /* 2258 */ GIM_Try, /*On fail goto*//*Label 148*/ GIMT_Encode4(2269), // Rule ID 341 //
5714 /* 2263 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
5715 /* 2266 */ // MIs[0] root
5716 /* 2266 */ // No operand predicates
5717 /* 2266 */ // MIs[0] mi.x
5718 /* 2266 */ // No operand predicates
5719 /* 2266 */ // MIs[0] mi.y
5720 /* 2266 */ // No operand predicates
5721 /* 2266 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[0]]
5722 /* 2266 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
5723 /* 2269 */ // Label 148: @2269
5724 /* 2269 */ GIM_Reject,
5725 /* 2270 */ // Label 2: @2270
5726 /* 2270 */ GIM_Try, /*On fail goto*//*Label 149*/ GIMT_Encode4(2347), // Rule ID 454 //
5727 /* 2275 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule321Enabled),
5728 /* 2278 */ // MIs[0] dst
5729 /* 2278 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5730 /* 2282 */ // MIs[0] sub1
5731 /* 2282 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5732 /* 2286 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5733 /* 2290 */ // MIs[1] a
5734 /* 2290 */ // No operand predicates
5735 /* 2290 */ // MIs[1] b
5736 /* 2290 */ // No operand predicates
5737 /* 2290 */ // MIs[0] Operand 2
5738 /* 2290 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
5739 /* 2294 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
5740 /* 2298 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5741 /* 2300 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5742 /* 2303 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
5743 /* 2313 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5744 /* 2316 */ // Combiner Rule #321: sub_one_from_sub
5745 /* 2316 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
5746 /* 2319 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5747 /* 2324 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // b
5748 /* 2328 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5749 /* 2331 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5750 /* 2335 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
5751 /* 2339 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5752 /* 2342 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
5753 /* 2346 */ GIR_EraseRootFromParent_Done,
5754 /* 2347 */ // Label 149: @2347
5755 /* 2347 */ GIM_Try, /*On fail goto*//*Label 150*/ GIMT_Encode4(2441), // Rule ID 460 //
5756 /* 2352 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule325Enabled),
5757 /* 2355 */ // MIs[0] root
5758 /* 2355 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5759 /* 2359 */ // MIs[0] Operand 1
5760 /* 2359 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5761 /* 2363 */ // MIs[0] max
5762 /* 2363 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5763 /* 2367 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SMAX),
5764 /* 2371 */ // MIs[1] A
5765 /* 2371 */ // No operand predicates
5766 /* 2371 */ // MIs[1] sub
5767 /* 2371 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5768 /* 2375 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5769 /* 2379 */ // MIs[2] Operand 1
5770 /* 2379 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/1, 0,
5771 /* 2383 */ // MIs[2] A
5772 /* 2383 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5773 /* 2388 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner59),
5774 /* 2392 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5775 /* 2394 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5776 /* 2397 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5777 /* 2407 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5778 /* 2410 */ // Combiner Rule #325: SubSmaxSub
5779 /* 2410 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5780 /* 2413 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5781 /* 2418 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5782 /* 2421 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5783 /* 2425 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMIN),
5784 /* 2429 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5785 /* 2433 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // A
5786 /* 2437 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5787 /* 2440 */ GIR_EraseRootFromParent_Done,
5788 /* 2441 */ // Label 150: @2441
5789 /* 2441 */ GIM_Try, /*On fail goto*//*Label 151*/ GIMT_Encode4(2535), // Rule ID 461 //
5790 /* 2446 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule326Enabled),
5791 /* 2449 */ // MIs[0] root
5792 /* 2449 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5793 /* 2453 */ // MIs[0] Operand 1
5794 /* 2453 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5795 /* 2457 */ // MIs[0] max
5796 /* 2457 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5797 /* 2461 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMAX),
5798 /* 2465 */ // MIs[1] A
5799 /* 2465 */ // No operand predicates
5800 /* 2465 */ // MIs[1] sub
5801 /* 2465 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5802 /* 2469 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5803 /* 2473 */ // MIs[2] Operand 1
5804 /* 2473 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/1, 0,
5805 /* 2477 */ // MIs[2] A
5806 /* 2477 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5807 /* 2482 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner59),
5808 /* 2486 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5809 /* 2488 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5810 /* 2491 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5811 /* 2501 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5812 /* 2504 */ // Combiner Rule #326: SubUmaxSub
5813 /* 2504 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5814 /* 2507 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5815 /* 2512 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5816 /* 2515 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5817 /* 2519 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMIN),
5818 /* 2523 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5819 /* 2527 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // A
5820 /* 2531 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5821 /* 2534 */ GIR_EraseRootFromParent_Done,
5822 /* 2535 */ // Label 151: @2535
5823 /* 2535 */ GIM_Try, /*On fail goto*//*Label 152*/ GIMT_Encode4(2575), // Rule ID 458 //
5824 /* 2540 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule323Enabled),
5825 /* 2543 */ // MIs[0] root
5826 /* 2543 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5827 /* 2547 */ // MIs[0] Operand 1
5828 /* 2547 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 255,
5829 /* 2551 */ // MIs[0] op1
5830 /* 2551 */ // No operand predicates
5831 /* 2551 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5832 /* 2554 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(18446744073709551615u),
5833 /* 2564 */ // Combiner Rule #323: sub_minus_one
5834 /* 2564 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
5835 /* 2567 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5836 /* 2569 */ GIR_RootToRootCopy, /*OpIdx*/2, // op1
5837 /* 2571 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5838 /* 2574 */ GIR_EraseRootFromParent_Done,
5839 /* 2575 */ // Label 152: @2575
5840 /* 2575 */ GIM_Try, /*On fail goto*//*Label 153*/ GIMT_Encode4(2627), // Rule ID 377 //
5841 /* 2580 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule245Enabled),
5842 /* 2583 */ // MIs[0] dst
5843 /* 2583 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5844 /* 2587 */ // MIs[0] x
5845 /* 2587 */ // No operand predicates
5846 /* 2587 */ // MIs[0] sum
5847 /* 2587 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5848 /* 2591 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5849 /* 2595 */ // MIs[1] y
5850 /* 2595 */ // No operand predicates
5851 /* 2595 */ // MIs[1] z
5852 /* 2595 */ // No operand predicates
5853 /* 2595 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner45),
5854 /* 2599 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5855 /* 2601 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5856 /* 2604 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5857 /* 2614 */ // Combiner Rule #245: sub_add_neg_rhs
5858 /* 2614 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5859 /* 2617 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5860 /* 2619 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5861 /* 2622 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // y
5862 /* 2626 */ GIR_EraseRootFromParent_Done,
5863 /* 2627 */ // Label 153: @2627
5864 /* 2627 */ GIM_Try, /*On fail goto*//*Label 154*/ GIMT_Encode4(2679), // Rule ID 378 //
5865 /* 2632 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule246Enabled),
5866 /* 2635 */ // MIs[0] dst
5867 /* 2635 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5868 /* 2639 */ // MIs[0] x
5869 /* 2639 */ // No operand predicates
5870 /* 2639 */ // MIs[0] sum
5871 /* 2639 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5872 /* 2643 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5873 /* 2647 */ // MIs[1] y
5874 /* 2647 */ // No operand predicates
5875 /* 2647 */ // MIs[1] z
5876 /* 2647 */ // No operand predicates
5877 /* 2647 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner46),
5878 /* 2651 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5879 /* 2653 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5880 /* 2656 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5881 /* 2666 */ // Combiner Rule #246: sub_add_neg_lhs
5882 /* 2666 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5883 /* 2669 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5884 /* 2671 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5885 /* 2674 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // z
5886 /* 2678 */ GIR_EraseRootFromParent_Done,
5887 /* 2679 */ // Label 154: @2679
5888 /* 2679 */ GIM_Try, /*On fail goto*//*Label 155*/ GIMT_Encode4(2777), // Rule ID 459 //
5889 /* 2684 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule324Enabled),
5890 /* 2687 */ // MIs[0] d
5891 /* 2687 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5892 /* 2691 */ // MIs[0] a
5893 /* 2691 */ // No operand predicates
5894 /* 2691 */ // MIs[0] mul
5895 /* 2691 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5896 /* 2695 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
5897 /* 2699 */ GIM_CheckHasOneUse, /*MI*/1,
5898 /* 2701 */ // MIs[1] x
5899 /* 2701 */ // No operand predicates
5900 /* 2701 */ // MIs[1] c
5901 /* 2701 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5902 /* 2705 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5903 /* 2709 */ // MIs[2] imm
5904 /* 2709 */ // No operand predicates
5905 /* 2709 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5906 /* 2711 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
5907 /* 2714 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5908 /* 2717 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5909 /* 2727 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5910 /* 2730 */ // Combiner Rule #324: sub_of_mul_const
5911 /* 2730 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5912 /* 2733 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5913 /* 2738 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5914 /* 2741 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // c
5915 /* 2745 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MUL),
5916 /* 2749 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5917 /* 2754 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
5918 /* 2758 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5919 /* 2761 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5920 /* 2765 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // d
5921 /* 2769 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // a
5922 /* 2773 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5923 /* 2776 */ GIR_EraseRootFromParent_Done,
5924 /* 2777 */ // Label 155: @2777
5925 /* 2777 */ GIM_Try, /*On fail goto*//*Label 156*/ GIMT_Encode4(2838), // Rule ID 9 //
5926 /* 2782 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
5927 /* 2785 */ // MIs[0] root
5928 /* 2785 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5929 /* 2789 */ // MIs[0] A
5930 /* 2789 */ // No operand predicates
5931 /* 2789 */ // MIs[0] sub1
5932 /* 2789 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5933 /* 2793 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5934 /* 2797 */ // MIs[1] B
5935 /* 2797 */ // No operand predicates
5936 /* 2797 */ // MIs[1] C
5937 /* 2797 */ // No operand predicates
5938 /* 2797 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
5939 /* 2801 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5940 /* 2803 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5941 /* 2806 */ // Combiner Rule #9: AMinusBMinusC
5942 /* 2806 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5943 /* 2809 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5944 /* 2814 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // C
5945 /* 2818 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
5946 /* 2822 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5947 /* 2826 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5948 /* 2830 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // A
5949 /* 2834 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5950 /* 2837 */ GIR_EraseRootFromParent_Done,
5951 /* 2838 */ // Label 156: @2838
5952 /* 2838 */ GIM_Try, /*On fail goto*//*Label 157*/ GIMT_Encode4(2883), // Rule ID 0 //
5953 /* 2843 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
5954 /* 2846 */ // MIs[0] root
5955 /* 2846 */ // No operand predicates
5956 /* 2846 */ // MIs[0] add1
5957 /* 2846 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5958 /* 2850 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5959 /* 2854 */ // MIs[1] A
5960 /* 2854 */ // No operand predicates
5961 /* 2854 */ // MIs[1] sub1
5962 /* 2854 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5963 /* 2858 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5964 /* 2862 */ // MIs[2] B
5965 /* 2862 */ // No operand predicates
5966 /* 2862 */ // MIs[2] C
5967 /* 2862 */ // No operand predicates
5968 /* 2862 */ // MIs[0] B
5969 /* 2862 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
5970 /* 2867 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5971 /* 2869 */ // Combiner Rule #0: APlusBMinusCMinusB
5972 /* 2869 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5973 /* 2872 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5974 /* 2874 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5975 /* 2878 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
5976 /* 2882 */ GIR_EraseRootFromParent_Done,
5977 /* 2883 */ // Label 157: @2883
5978 /* 2883 */ GIM_Try, /*On fail goto*//*Label 158*/ GIMT_Encode4(2920), // Rule ID 14 //
5979 /* 2888 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
5980 /* 2891 */ // MIs[0] root
5981 /* 2891 */ // No operand predicates
5982 /* 2891 */ // MIs[0] add
5983 /* 2891 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5984 /* 2895 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5985 /* 2899 */ // MIs[1] A
5986 /* 2899 */ // No operand predicates
5987 /* 2899 */ // MIs[1] c1
5988 /* 2899 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5989 /* 2903 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5990 /* 2907 */ // MIs[2] imm1
5991 /* 2907 */ // No operand predicates
5992 /* 2907 */ // MIs[0] c2
5993 /* 2907 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5994 /* 2911 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5995 /* 2915 */ // MIs[3] imm2
5996 /* 2915 */ // No operand predicates
5997 /* 2915 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5998 /* 2917 */ // Combiner Rule #14: APlusC1MinusC2
5999 /* 2917 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
6000 /* 2920 */ // Label 158: @2920
6001 /* 2920 */ GIM_Try, /*On fail goto*//*Label 159*/ GIMT_Encode4(2953), // Rule ID 375 //
6002 /* 2925 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule243Enabled),
6003 /* 2928 */ // MIs[0] dst
6004 /* 2928 */ // No operand predicates
6005 /* 2928 */ // MIs[0] sum
6006 /* 2928 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6007 /* 2932 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
6008 /* 2936 */ // MIs[1] x
6009 /* 2936 */ // No operand predicates
6010 /* 2936 */ // MIs[1] y
6011 /* 2936 */ // No operand predicates
6012 /* 2936 */ // MIs[0] z
6013 /* 2936 */ // No operand predicates
6014 /* 2936 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner43),
6015 /* 2940 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
6016 /* 2945 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6017 /* 2947 */ // Combiner Rule #243: sub_add_reg_rhs
6018 /* 2947 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
6019 /* 2952 */ GIR_EraseRootFromParent_Done,
6020 /* 2953 */ // Label 159: @2953
6021 /* 2953 */ GIM_Try, /*On fail goto*//*Label 160*/ GIMT_Encode4(2986), // Rule ID 376 //
6022 /* 2958 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule244Enabled),
6023 /* 2961 */ // MIs[0] dst
6024 /* 2961 */ // No operand predicates
6025 /* 2961 */ // MIs[0] sum
6026 /* 2961 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6027 /* 2965 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
6028 /* 2969 */ // MIs[1] x
6029 /* 2969 */ // No operand predicates
6030 /* 2969 */ // MIs[1] y
6031 /* 2969 */ // No operand predicates
6032 /* 2969 */ // MIs[0] z
6033 /* 2969 */ // No operand predicates
6034 /* 2969 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner44),
6035 /* 2973 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6036 /* 2978 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6037 /* 2980 */ // Combiner Rule #244: sub_add_reg_lhs
6038 /* 2980 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6039 /* 2985 */ GIR_EraseRootFromParent_Done,
6040 /* 2986 */ // Label 160: @2986
6041 /* 2986 */ GIM_Try, /*On fail goto*//*Label 161*/ GIMT_Encode4(3023), // Rule ID 17 //
6042 /* 2991 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
6043 /* 2994 */ // MIs[0] root
6044 /* 2994 */ // No operand predicates
6045 /* 2994 */ // MIs[0] sub1
6046 /* 2994 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6047 /* 2998 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
6048 /* 3002 */ // MIs[1] c1
6049 /* 3002 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
6050 /* 3006 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6051 /* 3010 */ // MIs[2] imm1
6052 /* 3010 */ // No operand predicates
6053 /* 3010 */ // MIs[1] A
6054 /* 3010 */ // No operand predicates
6055 /* 3010 */ // MIs[0] c2
6056 /* 3010 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6057 /* 3014 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6058 /* 3018 */ // MIs[3] imm2
6059 /* 3018 */ // No operand predicates
6060 /* 3018 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
6061 /* 3020 */ // Combiner Rule #17: C1Minus2MinusC2
6062 /* 3020 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
6063 /* 3023 */ // Label 161: @3023
6064 /* 3023 */ GIM_Try, /*On fail goto*//*Label 162*/ GIMT_Encode4(3068), // Rule ID 1 //
6065 /* 3028 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
6066 /* 3031 */ // MIs[0] root
6067 /* 3031 */ // No operand predicates
6068 /* 3031 */ // MIs[0] sub2
6069 /* 3031 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6070 /* 3035 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
6071 /* 3039 */ // MIs[1] A
6072 /* 3039 */ // No operand predicates
6073 /* 3039 */ // MIs[1] sub1
6074 /* 3039 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6075 /* 3043 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
6076 /* 3047 */ // MIs[2] B
6077 /* 3047 */ // No operand predicates
6078 /* 3047 */ // MIs[2] C
6079 /* 3047 */ // No operand predicates
6080 /* 3047 */ // MIs[0] C
6081 /* 3047 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/2,
6082 /* 3052 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6083 /* 3054 */ // Combiner Rule #1: AMinusBMinusCMinusC
6084 /* 3054 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
6085 /* 3057 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6086 /* 3059 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
6087 /* 3063 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // B
6088 /* 3067 */ GIR_EraseRootFromParent_Done,
6089 /* 3068 */ // Label 162: @3068
6090 /* 3068 */ GIM_Try, /*On fail goto*//*Label 163*/ GIMT_Encode4(3105), // Rule ID 16 //
6091 /* 3073 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
6092 /* 3076 */ // MIs[0] root
6093 /* 3076 */ // No operand predicates
6094 /* 3076 */ // MIs[0] sub1
6095 /* 3076 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6096 /* 3080 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
6097 /* 3084 */ // MIs[1] A
6098 /* 3084 */ // No operand predicates
6099 /* 3084 */ // MIs[1] c1
6100 /* 3084 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6101 /* 3088 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6102 /* 3092 */ // MIs[2] imm1
6103 /* 3092 */ // No operand predicates
6104 /* 3092 */ // MIs[0] c2
6105 /* 3092 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6106 /* 3096 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6107 /* 3100 */ // MIs[3] imm2
6108 /* 3100 */ // No operand predicates
6109 /* 3100 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
6110 /* 3102 */ // Combiner Rule #16: AMinusC1MinusC2
6111 /* 3102 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
6112 /* 3105 */ // Label 163: @3105
6113 /* 3105 */ GIM_Try, /*On fail goto*//*Label 164*/ GIMT_Encode4(3134), // Rule ID 479 //
6114 /* 3110 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule341Enabled),
6115 /* 3113 */ // MIs[0] dst
6116 /* 3113 */ // No operand predicates
6117 /* 3113 */ // MIs[0] ext1
6118 /* 3113 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6119 /* 3117 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
6120 /* 3121 */ // MIs[1] src1
6121 /* 3121 */ // No operand predicates
6122 /* 3121 */ // MIs[0] ext2
6123 /* 3121 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6124 /* 3125 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
6125 /* 3129 */ // MIs[2] src2
6126 /* 3129 */ // No operand predicates
6127 /* 3129 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6128 /* 3131 */ // Combiner Rule #341: push_sub_through_sext
6129 /* 3131 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
6130 /* 3134 */ // Label 164: @3134
6131 /* 3134 */ GIM_Try, /*On fail goto*//*Label 165*/ GIMT_Encode4(3163), // Rule ID 476 //
6132 /* 3139 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule338Enabled),
6133 /* 3142 */ // MIs[0] dst
6134 /* 3142 */ // No operand predicates
6135 /* 3142 */ // MIs[0] ext1
6136 /* 3142 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6137 /* 3146 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6138 /* 3150 */ // MIs[1] src1
6139 /* 3150 */ // No operand predicates
6140 /* 3150 */ // MIs[0] ext2
6141 /* 3150 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6142 /* 3154 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
6143 /* 3158 */ // MIs[2] src2
6144 /* 3158 */ // No operand predicates
6145 /* 3158 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6146 /* 3160 */ // Combiner Rule #338: push_sub_through_zext
6147 /* 3160 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
6148 /* 3163 */ // Label 165: @3163
6149 /* 3163 */ GIM_Try, /*On fail goto*//*Label 166*/ GIMT_Encode4(3187), // Rule ID 105 //
6150 /* 3168 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6151 /* 3171 */ // MIs[0] dst
6152 /* 3171 */ // No operand predicates
6153 /* 3171 */ // MIs[0] __propagate_undef_any_op_match_0.x
6154 /* 3171 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6155 /* 3175 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6156 /* 3179 */ // MIs[0] __propagate_undef_any_op_match_0.y
6157 /* 3179 */ // No operand predicates
6158 /* 3179 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6159 /* 3181 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[1]]
6160 /* 3181 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6161 /* 3184 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6162 /* 3186 */ GIR_EraseRootFromParent_Done,
6163 /* 3187 */ // Label 166: @3187
6164 /* 3187 */ GIM_Try, /*On fail goto*//*Label 167*/ GIMT_Encode4(3230), // Rule ID 181 //
6165 /* 3192 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled),
6166 /* 3195 */ // MIs[0] dst
6167 /* 3195 */ // No operand predicates
6168 /* 3195 */ // MIs[0] Operand 1
6169 /* 3195 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
6170 /* 3199 */ // MIs[0] and
6171 /* 3199 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6172 /* 3203 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6173 /* 3207 */ // MIs[1] x
6174 /* 3207 */ // No operand predicates
6175 /* 3207 */ // MIs[1] Operand 2
6176 /* 3207 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
6177 /* 3211 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner24),
6178 /* 3215 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6179 /* 3217 */ // Combiner Rule #131: neg_and_one_to_sext_inreg
6180 /* 3217 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
6181 /* 3220 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6182 /* 3222 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6183 /* 3226 */ GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
6184 /* 3229 */ GIR_EraseRootFromParent_Done,
6185 /* 3230 */ // Label 167: @3230
6186 /* 3230 */ GIM_Try, /*On fail goto*//*Label 168*/ GIMT_Encode4(3267), // Rule ID 15 //
6187 /* 3235 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
6188 /* 3238 */ // MIs[0] root
6189 /* 3238 */ // No operand predicates
6190 /* 3238 */ // MIs[0] c2
6191 /* 3238 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6192 /* 3242 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6193 /* 3246 */ // MIs[1] imm2
6194 /* 3246 */ // No operand predicates
6195 /* 3246 */ // MIs[0] add
6196 /* 3246 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6197 /* 3250 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
6198 /* 3254 */ // MIs[2] A
6199 /* 3254 */ // No operand predicates
6200 /* 3254 */ // MIs[2] c1
6201 /* 3254 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
6202 /* 3258 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6203 /* 3262 */ // MIs[3] imm1
6204 /* 3262 */ // No operand predicates
6205 /* 3262 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
6206 /* 3264 */ // Combiner Rule #15: C2MinusAPlusC1
6207 /* 3264 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
6208 /* 3267 */ // Label 168: @3267
6209 /* 3267 */ GIM_Try, /*On fail goto*//*Label 169*/ GIMT_Encode4(3306), // Rule ID 130 //
6210 /* 3272 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
6211 /* 3275 */ // MIs[0] dst
6212 /* 3275 */ // No operand predicates
6213 /* 3275 */ // MIs[0] x
6214 /* 3275 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
6215 /* 3279 */ // MIs[0] x
6216 /* 3279 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6217 /* 3284 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6218 /* 3287 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
6219 /* 3297 */ // Combiner Rule #94: same_val_zero @ [__same_val_zero_match_0[0]]
6220 /* 3297 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
6221 /* 3300 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6222 /* 3302 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
6223 /* 3305 */ GIR_EraseRootFromParent_Done,
6224 /* 3306 */ // Label 169: @3306
6225 /* 3306 */ GIM_Try, /*On fail goto*//*Label 170*/ GIMT_Encode4(3340), // Rule ID 12 //
6226 /* 3311 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
6227 /* 3314 */ // MIs[0] root
6228 /* 3314 */ // No operand predicates
6229 /* 3314 */ // MIs[0] A
6230 /* 3314 */ // No operand predicates
6231 /* 3314 */ // MIs[0] add
6232 /* 3314 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6233 /* 3318 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
6234 /* 3322 */ // MIs[1] A
6235 /* 3322 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
6236 /* 3327 */ // MIs[1] B
6237 /* 3327 */ // No operand predicates
6238 /* 3327 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6239 /* 3332 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6240 /* 3334 */ // Combiner Rule #12: AMinusBMinusA
6241 /* 3334 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6242 /* 3339 */ GIR_EraseRootFromParent_Done,
6243 /* 3340 */ // Label 170: @3340
6244 /* 3340 */ GIM_Try, /*On fail goto*//*Label 171*/ GIMT_Encode4(3374), // Rule ID 11 //
6245 /* 3345 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
6246 /* 3348 */ // MIs[0] root
6247 /* 3348 */ // No operand predicates
6248 /* 3348 */ // MIs[0] A
6249 /* 3348 */ // No operand predicates
6250 /* 3348 */ // MIs[0] sub1
6251 /* 3348 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6252 /* 3352 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
6253 /* 3356 */ // MIs[1] Operand 1
6254 /* 3356 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
6255 /* 3360 */ // MIs[1] B
6256 /* 3360 */ // No operand predicates
6257 /* 3360 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6258 /* 3362 */ // Combiner Rule #11: AMinusZeroMinusB
6259 /* 3362 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
6260 /* 3365 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6261 /* 3367 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
6262 /* 3369 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
6263 /* 3373 */ GIR_EraseRootFromParent_Done,
6264 /* 3374 */ // Label 171: @3374
6265 /* 3374 */ GIM_Try, /*On fail goto*//*Label 172*/ GIMT_Encode4(3401), // Rule ID 49 //
6266 /* 3379 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
6267 /* 3382 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
6268 /* 3388 */ // MIs[0] root
6269 /* 3388 */ // No operand predicates
6270 /* 3388 */ // MIs[0] x
6271 /* 3388 */ // No operand predicates
6272 /* 3388 */ // MIs[0] right
6273 /* 3388 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6274 /* 3392 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
6275 /* 3396 */ // MIs[1] imm
6276 /* 3396 */ // No operand predicates
6277 /* 3396 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6278 /* 3398 */ // Combiner Rule #45: sub_of_vscale
6279 /* 3398 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
6280 /* 3401 */ // Label 172: @3401
6281 /* 3401 */ GIM_Try, /*On fail goto*//*Label 173*/ GIMT_Encode4(3425), // Rule ID 108 //
6282 /* 3406 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6283 /* 3409 */ // MIs[0] dst
6284 /* 3409 */ // No operand predicates
6285 /* 3409 */ // MIs[0] __propagate_undef_any_op_match_0.x
6286 /* 3409 */ // No operand predicates
6287 /* 3409 */ // MIs[0] __propagate_undef_any_op_match_0.y
6288 /* 3409 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6289 /* 3413 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6290 /* 3417 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6291 /* 3419 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[4]]
6292 /* 3419 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6293 /* 3422 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6294 /* 3424 */ GIR_EraseRootFromParent_Done,
6295 /* 3425 */ // Label 173: @3425
6296 /* 3425 */ GIM_Try, /*On fail goto*//*Label 174*/ GIMT_Encode4(3448), // Rule ID 118 //
6297 /* 3430 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
6298 /* 3433 */ // MIs[0] dst
6299 /* 3433 */ // No operand predicates
6300 /* 3433 */ // MIs[0] lhs
6301 /* 3433 */ // No operand predicates
6302 /* 3433 */ // MIs[0] Operand 2
6303 /* 3433 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6304 /* 3437 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6305 /* 3442 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[0]]
6306 /* 3442 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6307 /* 3447 */ GIR_EraseRootFromParent_Done,
6308 /* 3448 */ // Label 174: @3448
6309 /* 3448 */ GIM_Try, /*On fail goto*//*Label 175*/ GIMT_Encode4(3469), // Rule ID 21 //
6310 /* 3453 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
6311 /* 3456 */ // MIs[0] d
6312 /* 3456 */ // No operand predicates
6313 /* 3456 */ // MIs[0] op1
6314 /* 3456 */ // No operand predicates
6315 /* 3456 */ // MIs[0] c
6316 /* 3456 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6317 /* 3460 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6318 /* 3464 */ // MIs[1] imm
6319 /* 3464 */ // No operand predicates
6320 /* 3464 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6321 /* 3466 */ // Combiner Rule #21: sub_to_add
6322 /* 3466 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
6323 /* 3469 */ // Label 175: @3469
6324 /* 3469 */ GIM_Try, /*On fail goto*//*Label 176*/ GIMT_Encode4(3480), // Rule ID 288 //
6325 /* 3474 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
6326 /* 3477 */ // MIs[0] d
6327 /* 3477 */ // No operand predicates
6328 /* 3477 */ // MIs[0] mi.src0
6329 /* 3477 */ // No operand predicates
6330 /* 3477 */ // MIs[0] mi.src1
6331 /* 3477 */ // No operand predicates
6332 /* 3477 */ // Combiner Rule #210: constant_fold_binop @ [mi[8]]
6333 /* 3477 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
6334 /* 3480 */ // Label 176: @3480
6335 /* 3480 */ GIM_Try, /*On fail goto*//*Label 177*/ GIMT_Encode4(3491), // Rule ID 342 //
6336 /* 3485 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6337 /* 3488 */ // MIs[0] root
6338 /* 3488 */ // No operand predicates
6339 /* 3488 */ // MIs[0] mi.x
6340 /* 3488 */ // No operand predicates
6341 /* 3488 */ // MIs[0] mi.y
6342 /* 3488 */ // No operand predicates
6343 /* 3488 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[1]]
6344 /* 3488 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
6345 /* 3491 */ // Label 177: @3491
6346 /* 3491 */ GIM_Try, /*On fail goto*//*Label 178*/ GIMT_Encode4(3502), // Rule ID 418 //
6347 /* 3496 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule286Enabled),
6348 /* 3499 */ // MIs[0] dst
6349 /* 3499 */ // No operand predicates
6350 /* 3499 */ // MIs[0] src1
6351 /* 3499 */ // No operand predicates
6352 /* 3499 */ // MIs[0] src2
6353 /* 3499 */ // No operand predicates
6354 /* 3499 */ // Combiner Rule #286: simplify_neg_minmax
6355 /* 3499 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
6356 /* 3502 */ // Label 178: @3502
6357 /* 3502 */ GIM_Reject,
6358 /* 3503 */ // Label 3: @3503
6359 /* 3503 */ GIM_Try, /*On fail goto*//*Label 179*/ GIMT_Encode4(3543), // Rule ID 24 //
6360 /* 3508 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
6361 /* 3511 */ // MIs[0] dst
6362 /* 3511 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
6363 /* 3515 */ // MIs[0] x
6364 /* 3515 */ // No operand predicates
6365 /* 3515 */ // MIs[0] Operand 2
6366 /* 3515 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
6367 /* 3519 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6368 /* 3522 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
6369 /* 3532 */ // Combiner Rule #23: mul_by_neg_one
6370 /* 3532 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
6371 /* 3535 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6372 /* 3537 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
6373 /* 3540 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
6374 /* 3542 */ GIR_EraseRootFromParent_Done,
6375 /* 3543 */ // Label 179: @3543
6376 /* 3543 */ GIM_Try, /*On fail goto*//*Label 180*/ GIMT_Encode4(3572), // Rule ID 481 //
6377 /* 3548 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule343Enabled),
6378 /* 3551 */ // MIs[0] dst
6379 /* 3551 */ // No operand predicates
6380 /* 3551 */ // MIs[0] ext1
6381 /* 3551 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6382 /* 3555 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
6383 /* 3559 */ // MIs[1] src1
6384 /* 3559 */ // No operand predicates
6385 /* 3559 */ // MIs[0] ext2
6386 /* 3559 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6387 /* 3563 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
6388 /* 3567 */ // MIs[2] src2
6389 /* 3567 */ // No operand predicates
6390 /* 3567 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6391 /* 3569 */ // Combiner Rule #343: push_mul_through_sext
6392 /* 3569 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
6393 /* 3572 */ // Label 180: @3572
6394 /* 3572 */ GIM_Try, /*On fail goto*//*Label 181*/ GIMT_Encode4(3607), // Rule ID 47 //
6395 /* 3577 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
6396 /* 3580 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
6397 /* 3586 */ // MIs[0] root
6398 /* 3586 */ // No operand predicates
6399 /* 3586 */ // MIs[0] left
6400 /* 3586 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6401 /* 3590 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
6402 /* 3594 */ // MIs[1] scale
6403 /* 3594 */ // No operand predicates
6404 /* 3594 */ // MIs[0] x
6405 /* 3594 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6406 /* 3598 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6407 /* 3602 */ // MIs[2] imm1
6408 /* 3602 */ // No operand predicates
6409 /* 3602 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6410 /* 3604 */ // Combiner Rule #43: mul_of_vscale
6411 /* 3604 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
6412 /* 3607 */ // Label 181: @3607
6413 /* 3607 */ GIM_Try, /*On fail goto*//*Label 182*/ GIMT_Encode4(3636), // Rule ID 478 //
6414 /* 3612 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule340Enabled),
6415 /* 3615 */ // MIs[0] dst
6416 /* 3615 */ // No operand predicates
6417 /* 3615 */ // MIs[0] ext1
6418 /* 3615 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6419 /* 3619 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6420 /* 3623 */ // MIs[1] src1
6421 /* 3623 */ // No operand predicates
6422 /* 3623 */ // MIs[0] ext2
6423 /* 3623 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6424 /* 3627 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
6425 /* 3631 */ // MIs[2] src2
6426 /* 3631 */ // No operand predicates
6427 /* 3631 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6428 /* 3633 */ // Combiner Rule #340: push_mul_through_zext
6429 /* 3633 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
6430 /* 3636 */ // Label 182: @3636
6431 /* 3636 */ GIM_Try, /*On fail goto*//*Label 183*/ GIMT_Encode4(3657), // Rule ID 85 //
6432 /* 3641 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6433 /* 3644 */ // MIs[0] dst
6434 /* 3644 */ // No operand predicates
6435 /* 3644 */ // MIs[0] __undef_to_int_zero_match_0.x
6436 /* 3644 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6437 /* 3648 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6438 /* 3652 */ // MIs[0] __undef_to_int_zero_match_0.y
6439 /* 3652 */ // No operand predicates
6440 /* 3652 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6441 /* 3654 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[1]]
6442 /* 3654 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
6443 /* 3657 */ // Label 183: @3657
6444 /* 3657 */ GIM_Try, /*On fail goto*//*Label 184*/ GIMT_Encode4(3678), // Rule ID 87 //
6445 /* 3662 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6446 /* 3665 */ // MIs[0] dst
6447 /* 3665 */ // No operand predicates
6448 /* 3665 */ // MIs[0] __undef_to_int_zero_match_0.x
6449 /* 3665 */ // No operand predicates
6450 /* 3665 */ // MIs[0] __undef_to_int_zero_match_0.y
6451 /* 3665 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6452 /* 3669 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6453 /* 3673 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6454 /* 3675 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[3]]
6455 /* 3675 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
6456 /* 3678 */ // Label 184: @3678
6457 /* 3678 */ GIM_Try, /*On fail goto*//*Label 185*/ GIMT_Encode4(3701), // Rule ID 140 //
6458 /* 3683 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule96Enabled),
6459 /* 3686 */ // MIs[0] dst
6460 /* 3686 */ // No operand predicates
6461 /* 3686 */ // MIs[0] lhs
6462 /* 3686 */ // No operand predicates
6463 /* 3686 */ // MIs[0] zero
6464 /* 3686 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6465 /* 3690 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6466 /* 3695 */ // Combiner Rule #96: binop_right_to_zero
6467 /* 3695 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6468 /* 3700 */ GIR_EraseRootFromParent_Done,
6469 /* 3701 */ // Label 185: @3701
6470 /* 3701 */ GIM_Try, /*On fail goto*//*Label 186*/ GIMT_Encode4(3724), // Rule ID 147 //
6471 /* 3706 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
6472 /* 3709 */ // MIs[0] dst
6473 /* 3709 */ // No operand predicates
6474 /* 3709 */ // MIs[0] x
6475 /* 3709 */ // No operand predicates
6476 /* 3709 */ // MIs[0] Operand 2
6477 /* 3709 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
6478 /* 3713 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6479 /* 3718 */ // Combiner Rule #103: right_identity_one_int
6480 /* 3718 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6481 /* 3723 */ GIR_EraseRootFromParent_Done,
6482 /* 3724 */ // Label 186: @3724
6483 /* 3724 */ GIM_Try, /*On fail goto*//*Label 187*/ GIMT_Encode4(3747), // Rule ID 139 //
6484 /* 3729 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
6485 /* 3732 */ // MIs[0] dst
6486 /* 3732 */ // No operand predicates
6487 /* 3732 */ // MIs[0] zero
6488 /* 3732 */ // No operand predicates
6489 /* 3732 */ // MIs[0] rhs
6490 /* 3732 */ // No operand predicates
6491 /* 3732 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
6492 /* 3736 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6493 /* 3741 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[7]]
6494 /* 3741 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6495 /* 3746 */ GIR_EraseRootFromParent_Done,
6496 /* 3747 */ // Label 187: @3747
6497 /* 3747 */ GIM_Try, /*On fail goto*//*Label 188*/ GIMT_Encode4(3772), // Rule ID 382 //
6498 /* 3752 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule250Enabled),
6499 /* 3755 */ // MIs[0] dst
6500 /* 3755 */ // No operand predicates
6501 /* 3755 */ // MIs[0] lhs
6502 /* 3755 */ // No operand predicates
6503 /* 3755 */ // MIs[0] rhs
6504 /* 3755 */ // No operand predicates
6505 /* 3755 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
6506 /* 3759 */ // Combiner Rule #250: G_MUL_commute_constant_to_rhs
6507 /* 3759 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MUL),
6508 /* 3762 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6509 /* 3764 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
6510 /* 3766 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
6511 /* 3768 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
6512 /* 3771 */ GIR_EraseRootFromParent_Done,
6513 /* 3772 */ // Label 188: @3772
6514 /* 3772 */ GIM_Try, /*On fail goto*//*Label 189*/ GIMT_Encode4(3783), // Rule ID 20 //
6515 /* 3777 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
6516 /* 3780 */ // MIs[0] d
6517 /* 3780 */ // No operand predicates
6518 /* 3780 */ // MIs[0] op1
6519 /* 3780 */ // No operand predicates
6520 /* 3780 */ // MIs[0] op2
6521 /* 3780 */ // No operand predicates
6522 /* 3780 */ // Combiner Rule #20: mul_to_shl
6523 /* 3780 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
6524 /* 3783 */ // Label 189: @3783
6525 /* 3783 */ GIM_Try, /*On fail goto*//*Label 190*/ GIMT_Encode4(3794), // Rule ID 285 //
6526 /* 3788 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
6527 /* 3791 */ // MIs[0] d
6528 /* 3791 */ // No operand predicates
6529 /* 3791 */ // MIs[0] mi.src0
6530 /* 3791 */ // No operand predicates
6531 /* 3791 */ // MIs[0] mi.src1
6532 /* 3791 */ // No operand predicates
6533 /* 3791 */ // Combiner Rule #210: constant_fold_binop @ [mi[5]]
6534 /* 3791 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
6535 /* 3794 */ // Label 190: @3794
6536 /* 3794 */ GIM_Reject,
6537 /* 3795 */ // Label 4: @3795
6538 /* 3795 */ GIM_Try, /*On fail goto*//*Label 191*/ GIMT_Encode4(3818), // Rule ID 135 //
6539 /* 3800 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
6540 /* 3803 */ // MIs[0] dst
6541 /* 3803 */ // No operand predicates
6542 /* 3803 */ // MIs[0] zero
6543 /* 3803 */ // No operand predicates
6544 /* 3803 */ // MIs[0] rhs
6545 /* 3803 */ // No operand predicates
6546 /* 3803 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
6547 /* 3807 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6548 /* 3812 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[3]]
6549 /* 3812 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6550 /* 3817 */ GIR_EraseRootFromParent_Done,
6551 /* 3818 */ // Label 191: @3818
6552 /* 3818 */ GIM_Try, /*On fail goto*//*Label 192*/ GIMT_Encode4(3835), // Rule ID 371 //
6553 /* 3823 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule239Enabled),
6554 /* 3826 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
6555 /* 3832 */ // MIs[0] dst
6556 /* 3832 */ // No operand predicates
6557 /* 3832 */ // MIs[0] x
6558 /* 3832 */ // No operand predicates
6559 /* 3832 */ // MIs[0] y
6560 /* 3832 */ // No operand predicates
6561 /* 3832 */ // Combiner Rule #239: sdiv_by_pow2
6562 /* 3832 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner99),
6563 /* 3835 */ // Label 192: @3835
6564 /* 3835 */ GIM_Try, /*On fail goto*//*Label 193*/ GIMT_Encode4(3846), // Rule ID 255 //
6565 /* 3840 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
6566 /* 3843 */ // MIs[0] root
6567 /* 3843 */ // No operand predicates
6568 /* 3843 */ // MIs[0] mi.x
6569 /* 3843 */ // No operand predicates
6570 /* 3843 */ // MIs[0] mi.y
6571 /* 3843 */ // No operand predicates
6572 /* 3843 */ // Combiner Rule #193: div_rem_to_divrem @ [mi[0]]
6573 /* 3843 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
6574 /* 3846 */ // Label 193: @3846
6575 /* 3846 */ GIM_Try, /*On fail goto*//*Label 194*/ GIMT_Encode4(3857), // Rule ID 291 //
6576 /* 3851 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
6577 /* 3854 */ // MIs[0] d
6578 /* 3854 */ // No operand predicates
6579 /* 3854 */ // MIs[0] mi.src0
6580 /* 3854 */ // No operand predicates
6581 /* 3854 */ // MIs[0] mi.src1
6582 /* 3854 */ // No operand predicates
6583 /* 3854 */ // Combiner Rule #210: constant_fold_binop @ [mi[11]]
6584 /* 3854 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
6585 /* 3857 */ // Label 194: @3857
6586 /* 3857 */ GIM_Try, /*On fail goto*//*Label 195*/ GIMT_Encode4(3868), // Rule ID 347 //
6587 /* 3862 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6588 /* 3865 */ // MIs[0] root
6589 /* 3865 */ // No operand predicates
6590 /* 3865 */ // MIs[0] mi.x
6591 /* 3865 */ // No operand predicates
6592 /* 3865 */ // MIs[0] mi.y
6593 /* 3865 */ // No operand predicates
6594 /* 3865 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[6]]
6595 /* 3865 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
6596 /* 3868 */ // Label 195: @3868
6597 /* 3868 */ GIM_Try, /*On fail goto*//*Label 196*/ GIMT_Encode4(3879), // Rule ID 373 //
6598 /* 3873 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule241Enabled),
6599 /* 3876 */ // MIs[0] dst
6600 /* 3876 */ // No operand predicates
6601 /* 3876 */ // MIs[0] x
6602 /* 3876 */ // No operand predicates
6603 /* 3876 */ // MIs[0] y
6604 /* 3876 */ // No operand predicates
6605 /* 3876 */ // Combiner Rule #241: sdiv_by_const
6606 /* 3876 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
6607 /* 3879 */ // Label 196: @3879
6608 /* 3879 */ GIM_Reject,
6609 /* 3880 */ // Label 5: @3880
6610 /* 3880 */ GIM_Try, /*On fail goto*//*Label 197*/ GIMT_Encode4(3901), // Rule ID 91 //
6611 /* 3885 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
6612 /* 3888 */ // MIs[0] dst
6613 /* 3888 */ // No operand predicates
6614 /* 3888 */ // MIs[0] __binop_left_undef_to_zero_match_0.x
6615 /* 3888 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6616 /* 3892 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6617 /* 3896 */ // MIs[0] __binop_left_undef_to_zero_match_0.y
6618 /* 3896 */ // No operand predicates
6619 /* 3896 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6620 /* 3898 */ // Combiner Rule #79: binop_left_undef_to_zero @ [__binop_left_undef_to_zero_match_0[1]]
6621 /* 3898 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
6622 /* 3901 */ // Label 197: @3901
6623 /* 3901 */ GIM_Try, /*On fail goto*//*Label 198*/ GIMT_Encode4(3924), // Rule ID 136 //
6624 /* 3906 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
6625 /* 3909 */ // MIs[0] dst
6626 /* 3909 */ // No operand predicates
6627 /* 3909 */ // MIs[0] zero
6628 /* 3909 */ // No operand predicates
6629 /* 3909 */ // MIs[0] rhs
6630 /* 3909 */ // No operand predicates
6631 /* 3909 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
6632 /* 3913 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6633 /* 3918 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[4]]
6634 /* 3918 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6635 /* 3923 */ GIR_EraseRootFromParent_Done,
6636 /* 3924 */ // Label 198: @3924
6637 /* 3924 */ GIM_Try, /*On fail goto*//*Label 199*/ GIMT_Encode4(3941), // Rule ID 370 //
6638 /* 3929 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule238Enabled),
6639 /* 3932 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
6640 /* 3938 */ // MIs[0] dst
6641 /* 3938 */ // No operand predicates
6642 /* 3938 */ // MIs[0] x
6643 /* 3938 */ // No operand predicates
6644 /* 3938 */ // MIs[0] y
6645 /* 3938 */ // No operand predicates
6646 /* 3938 */ // Combiner Rule #238: udiv_by_pow2
6647 /* 3938 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
6648 /* 3941 */ // Label 199: @3941
6649 /* 3941 */ GIM_Try, /*On fail goto*//*Label 200*/ GIMT_Encode4(3952), // Rule ID 256 //
6650 /* 3946 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
6651 /* 3949 */ // MIs[0] root
6652 /* 3949 */ // No operand predicates
6653 /* 3949 */ // MIs[0] mi.x
6654 /* 3949 */ // No operand predicates
6655 /* 3949 */ // MIs[0] mi.y
6656 /* 3949 */ // No operand predicates
6657 /* 3949 */ // Combiner Rule #193: div_rem_to_divrem @ [mi[1]]
6658 /* 3949 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
6659 /* 3952 */ // Label 200: @3952
6660 /* 3952 */ GIM_Try, /*On fail goto*//*Label 201*/ GIMT_Encode4(3963), // Rule ID 290 //
6661 /* 3957 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
6662 /* 3960 */ // MIs[0] d
6663 /* 3960 */ // No operand predicates
6664 /* 3960 */ // MIs[0] mi.src0
6665 /* 3960 */ // No operand predicates
6666 /* 3960 */ // MIs[0] mi.src1
6667 /* 3960 */ // No operand predicates
6668 /* 3960 */ // Combiner Rule #210: constant_fold_binop @ [mi[10]]
6669 /* 3960 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
6670 /* 3963 */ // Label 201: @3963
6671 /* 3963 */ GIM_Try, /*On fail goto*//*Label 202*/ GIMT_Encode4(3974), // Rule ID 349 //
6672 /* 3968 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6673 /* 3971 */ // MIs[0] root
6674 /* 3971 */ // No operand predicates
6675 /* 3971 */ // MIs[0] mi.x
6676 /* 3971 */ // No operand predicates
6677 /* 3971 */ // MIs[0] mi.y
6678 /* 3971 */ // No operand predicates
6679 /* 3971 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[8]]
6680 /* 3971 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
6681 /* 3974 */ // Label 202: @3974
6682 /* 3974 */ GIM_Try, /*On fail goto*//*Label 203*/ GIMT_Encode4(3985), // Rule ID 372 //
6683 /* 3979 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule240Enabled),
6684 /* 3982 */ // MIs[0] dst
6685 /* 3982 */ // No operand predicates
6686 /* 3982 */ // MIs[0] x
6687 /* 3982 */ // No operand predicates
6688 /* 3982 */ // MIs[0] y
6689 /* 3982 */ // No operand predicates
6690 /* 3982 */ // Combiner Rule #240: udiv_by_const
6691 /* 3982 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
6692 /* 3985 */ // Label 203: @3985
6693 /* 3985 */ GIM_Reject,
6694 /* 3986 */ // Label 6: @3986
6695 /* 3986 */ GIM_Try, /*On fail goto*//*Label 204*/ GIMT_Encode4(4009), // Rule ID 137 //
6696 /* 3991 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
6697 /* 3994 */ // MIs[0] dst
6698 /* 3994 */ // No operand predicates
6699 /* 3994 */ // MIs[0] zero
6700 /* 3994 */ // No operand predicates
6701 /* 3994 */ // MIs[0] rhs
6702 /* 3994 */ // No operand predicates
6703 /* 3994 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
6704 /* 3998 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6705 /* 4003 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[5]]
6706 /* 4003 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6707 /* 4008 */ GIR_EraseRootFromParent_Done,
6708 /* 4009 */ // Label 204: @4009
6709 /* 4009 */ GIM_Try, /*On fail goto*//*Label 205*/ GIMT_Encode4(4020), // Rule ID 257 //
6710 /* 4014 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
6711 /* 4017 */ // MIs[0] root
6712 /* 4017 */ // No operand predicates
6713 /* 4017 */ // MIs[0] mi.x
6714 /* 4017 */ // No operand predicates
6715 /* 4017 */ // MIs[0] mi.y
6716 /* 4017 */ // No operand predicates
6717 /* 4017 */ // Combiner Rule #193: div_rem_to_divrem @ [mi[2]]
6718 /* 4017 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
6719 /* 4020 */ // Label 205: @4020
6720 /* 4020 */ GIM_Try, /*On fail goto*//*Label 206*/ GIMT_Encode4(4031), // Rule ID 293 //
6721 /* 4025 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
6722 /* 4028 */ // MIs[0] d
6723 /* 4028 */ // No operand predicates
6724 /* 4028 */ // MIs[0] mi.src0
6725 /* 4028 */ // No operand predicates
6726 /* 4028 */ // MIs[0] mi.src1
6727 /* 4028 */ // No operand predicates
6728 /* 4028 */ // Combiner Rule #210: constant_fold_binop @ [mi[13]]
6729 /* 4028 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
6730 /* 4031 */ // Label 206: @4031
6731 /* 4031 */ GIM_Try, /*On fail goto*//*Label 207*/ GIMT_Encode4(4042), // Rule ID 348 //
6732 /* 4036 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6733 /* 4039 */ // MIs[0] root
6734 /* 4039 */ // No operand predicates
6735 /* 4039 */ // MIs[0] mi.x
6736 /* 4039 */ // No operand predicates
6737 /* 4039 */ // MIs[0] mi.y
6738 /* 4039 */ // No operand predicates
6739 /* 4039 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[7]]
6740 /* 4039 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
6741 /* 4042 */ // Label 207: @4042
6742 /* 4042 */ GIM_Try, /*On fail goto*//*Label 208*/ GIMT_Encode4(4053), // Rule ID 367 //
6743 /* 4047 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule235Enabled),
6744 /* 4050 */ // MIs[0] dst
6745 /* 4050 */ // No operand predicates
6746 /* 4050 */ // MIs[0] x
6747 /* 4050 */ // No operand predicates
6748 /* 4050 */ // MIs[0] y
6749 /* 4050 */ // No operand predicates
6750 /* 4050 */ // Combiner Rule #235: srem_pow2_to_mask
6751 /* 4050 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
6752 /* 4053 */ // Label 208: @4053
6753 /* 4053 */ GIM_Try, /*On fail goto*//*Label 209*/ GIMT_Encode4(4064), // Rule ID 369 //
6754 /* 4058 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule237Enabled),
6755 /* 4061 */ // MIs[0] dst
6756 /* 4061 */ // No operand predicates
6757 /* 4061 */ // MIs[0] x
6758 /* 4061 */ // No operand predicates
6759 /* 4061 */ // MIs[0] y
6760 /* 4061 */ // No operand predicates
6761 /* 4061 */ // Combiner Rule #237: srem_by_const
6762 /* 4061 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
6763 /* 4064 */ // Label 209: @4064
6764 /* 4064 */ GIM_Reject,
6765 /* 4065 */ // Label 7: @4065
6766 /* 4065 */ GIM_Try, /*On fail goto*//*Label 210*/ GIMT_Encode4(4086), // Rule ID 92 //
6767 /* 4070 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
6768 /* 4073 */ // MIs[0] dst
6769 /* 4073 */ // No operand predicates
6770 /* 4073 */ // MIs[0] __binop_left_undef_to_zero_match_0.x
6771 /* 4073 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6772 /* 4077 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6773 /* 4081 */ // MIs[0] __binop_left_undef_to_zero_match_0.y
6774 /* 4081 */ // No operand predicates
6775 /* 4081 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6776 /* 4083 */ // Combiner Rule #79: binop_left_undef_to_zero @ [__binop_left_undef_to_zero_match_0[2]]
6777 /* 4083 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
6778 /* 4086 */ // Label 210: @4086
6779 /* 4086 */ GIM_Try, /*On fail goto*//*Label 211*/ GIMT_Encode4(4109), // Rule ID 138 //
6780 /* 4091 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
6781 /* 4094 */ // MIs[0] dst
6782 /* 4094 */ // No operand predicates
6783 /* 4094 */ // MIs[0] zero
6784 /* 4094 */ // No operand predicates
6785 /* 4094 */ // MIs[0] rhs
6786 /* 4094 */ // No operand predicates
6787 /* 4094 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
6788 /* 4098 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6789 /* 4103 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[6]]
6790 /* 4103 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6791 /* 4108 */ GIR_EraseRootFromParent_Done,
6792 /* 4109 */ // Label 211: @4109
6793 /* 4109 */ GIM_Try, /*On fail goto*//*Label 212*/ GIMT_Encode4(4120), // Rule ID 201 //
6794 /* 4114 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
6795 /* 4117 */ // MIs[0] dst
6796 /* 4117 */ // No operand predicates
6797 /* 4117 */ // MIs[0] x
6798 /* 4117 */ // No operand predicates
6799 /* 4117 */ // MIs[0] y
6800 /* 4117 */ // No operand predicates
6801 /* 4117 */ // Combiner Rule #151: urem_pow2_to_mask
6802 /* 4117 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner57),
6803 /* 4120 */ // Label 212: @4120
6804 /* 4120 */ GIM_Try, /*On fail goto*//*Label 213*/ GIMT_Encode4(4131), // Rule ID 258 //
6805 /* 4125 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
6806 /* 4128 */ // MIs[0] root
6807 /* 4128 */ // No operand predicates
6808 /* 4128 */ // MIs[0] mi.x
6809 /* 4128 */ // No operand predicates
6810 /* 4128 */ // MIs[0] mi.y
6811 /* 4128 */ // No operand predicates
6812 /* 4128 */ // Combiner Rule #193: div_rem_to_divrem @ [mi[3]]
6813 /* 4128 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
6814 /* 4131 */ // Label 213: @4131
6815 /* 4131 */ GIM_Try, /*On fail goto*//*Label 214*/ GIMT_Encode4(4142), // Rule ID 292 //
6816 /* 4136 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
6817 /* 4139 */ // MIs[0] d
6818 /* 4139 */ // No operand predicates
6819 /* 4139 */ // MIs[0] mi.src0
6820 /* 4139 */ // No operand predicates
6821 /* 4139 */ // MIs[0] mi.src1
6822 /* 4139 */ // No operand predicates
6823 /* 4139 */ // Combiner Rule #210: constant_fold_binop @ [mi[12]]
6824 /* 4139 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
6825 /* 4142 */ // Label 214: @4142
6826 /* 4142 */ GIM_Try, /*On fail goto*//*Label 215*/ GIMT_Encode4(4153), // Rule ID 350 //
6827 /* 4147 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6828 /* 4150 */ // MIs[0] root
6829 /* 4150 */ // No operand predicates
6830 /* 4150 */ // MIs[0] mi.x
6831 /* 4150 */ // No operand predicates
6832 /* 4150 */ // MIs[0] mi.y
6833 /* 4150 */ // No operand predicates
6834 /* 4150 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[9]]
6835 /* 4150 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
6836 /* 4153 */ // Label 215: @4153
6837 /* 4153 */ GIM_Try, /*On fail goto*//*Label 216*/ GIMT_Encode4(4164), // Rule ID 368 //
6838 /* 4158 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule236Enabled),
6839 /* 4161 */ // MIs[0] dst
6840 /* 4161 */ // No operand predicates
6841 /* 4161 */ // MIs[0] x
6842 /* 4161 */ // No operand predicates
6843 /* 4161 */ // MIs[0] y
6844 /* 4161 */ // No operand predicates
6845 /* 4161 */ // Combiner Rule #236: urem_by_const
6846 /* 4161 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
6847 /* 4164 */ // Label 216: @4164
6848 /* 4164 */ GIM_Reject,
6849 /* 4165 */ // Label 8: @4165
6850 /* 4165 */ GIM_Try, /*On fail goto*//*Label 217*/ GIMT_Encode4(4251), // Rule ID 415 //
6851 /* 4170 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule283Enabled),
6852 /* 4173 */ // MIs[0] root
6853 /* 4173 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
6854 /* 4177 */ // MIs[0] or
6855 /* 4177 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6856 /* 4181 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
6857 /* 4185 */ // MIs[1] x
6858 /* 4185 */ // No operand predicates
6859 /* 4185 */ // MIs[1] y
6860 /* 4185 */ // No operand predicates
6861 /* 4185 */ // MIs[0] not
6862 /* 4185 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6863 /* 4189 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6864 /* 4193 */ // MIs[2] y
6865 /* 4193 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
6866 /* 4198 */ // MIs[2] Operand 2
6867 /* 4198 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6868 /* 4202 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6869 /* 4204 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6870 /* 4207 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
6871 /* 4217 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6872 /* 4220 */ // Combiner Rule #283: and_xor_or_to_xor_and
6873 /* 4220 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
6874 /* 4223 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6875 /* 4228 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
6876 /* 4232 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
6877 /* 4235 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6878 /* 4239 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6879 /* 4243 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
6880 /* 4247 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6881 /* 4250 */ GIR_EraseRootFromParent_Done,
6882 /* 4251 */ // Label 217: @4251
6883 /* 4251 */ GIM_Try, /*On fail goto*//*Label 218*/ GIMT_Encode4(4349), // Rule ID 177 //
6884 /* 4256 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule127Enabled),
6885 /* 4259 */ // MIs[0] root
6886 /* 4259 */ // No operand predicates
6887 /* 4259 */ // MIs[0] d1
6888 /* 4259 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6889 /* 4263 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
6890 /* 4267 */ // MIs[1] p
6891 /* 4267 */ // No operand predicates
6892 /* 4267 */ // MIs[1] s1
6893 /* 4267 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
6894 /* 4271 */ // MIs[1] Operand 3
6895 /* 4271 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
6896 /* 4275 */ // MIs[0] d2
6897 /* 4275 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6898 /* 4279 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
6899 /* 4283 */ // MIs[2] p
6900 /* 4283 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6901 /* 4288 */ // MIs[2] s2
6902 /* 4288 */ // No operand predicates
6903 /* 4288 */ // MIs[2] Operand 3
6904 /* 4288 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
6905 /* 4292 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner22),
6906 /* 4296 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6907 /* 4298 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6908 /* 4301 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
6909 /* 4311 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6910 /* 4314 */ // Combiner Rule #127: double_icmp_zero_and_combine
6911 /* 4314 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6912 /* 4317 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6913 /* 4322 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
6914 /* 4326 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
6915 /* 4330 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
6916 /* 4334 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6917 /* 4338 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
6918 /* 4342 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6919 /* 4345 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
6920 /* 4348 */ GIR_EraseRootFromParent_Done,
6921 /* 4349 */ // Label 218: @4349
6922 /* 4349 */ GIM_Try, /*On fail goto*//*Label 219*/ GIMT_Encode4(4386), // Rule ID 275 //
6923 /* 4354 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
6924 /* 4357 */ // MIs[0] root
6925 /* 4357 */ // No operand predicates
6926 /* 4357 */ // MIs[0] shift
6927 /* 4357 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6928 /* 4361 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
6929 /* 4365 */ // MIs[1] x
6930 /* 4365 */ // No operand predicates
6931 /* 4365 */ // MIs[1] lsb
6932 /* 4365 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6933 /* 4369 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6934 /* 4373 */ // MIs[2] imm1
6935 /* 4373 */ // No operand predicates
6936 /* 4373 */ // MIs[0] mask
6937 /* 4373 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6938 /* 4377 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6939 /* 4381 */ // MIs[3] imm2
6940 /* 4381 */ // No operand predicates
6941 /* 4381 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
6942 /* 4383 */ // Combiner Rule #207: bitfield_extract_from_and
6943 /* 4383 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76),
6944 /* 4386 */ // Label 219: @4386
6945 /* 4386 */ GIM_Try, /*On fail goto*//*Label 220*/ GIMT_Encode4(4435), // Rule ID 414 //
6946 /* 4391 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule282Enabled),
6947 /* 4394 */ // MIs[0] root
6948 /* 4394 */ // No operand predicates
6949 /* 4394 */ // MIs[0] or
6950 /* 4394 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6951 /* 4398 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
6952 /* 4402 */ // MIs[1] x
6953 /* 4402 */ // No operand predicates
6954 /* 4402 */ // MIs[1] not
6955 /* 4402 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6956 /* 4406 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6957 /* 4410 */ // MIs[2] y
6958 /* 4410 */ // No operand predicates
6959 /* 4410 */ // MIs[2] Operand 2
6960 /* 4410 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6961 /* 4414 */ // MIs[0] y
6962 /* 4414 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
6963 /* 4419 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6964 /* 4421 */ // Combiner Rule #282: and_xor_or_to_and
6965 /* 4421 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6966 /* 4424 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6967 /* 4426 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6968 /* 4430 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
6969 /* 4434 */ GIR_EraseRootFromParent_Done,
6970 /* 4435 */ // Label 220: @4435
6971 /* 4435 */ GIM_Try, /*On fail goto*//*Label 221*/ GIMT_Encode4(4456), // Rule ID 84 //
6972 /* 4440 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6973 /* 4443 */ // MIs[0] dst
6974 /* 4443 */ // No operand predicates
6975 /* 4443 */ // MIs[0] __undef_to_int_zero_match_0.x
6976 /* 4443 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6977 /* 4447 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6978 /* 4451 */ // MIs[0] __undef_to_int_zero_match_0.y
6979 /* 4451 */ // No operand predicates
6980 /* 4451 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6981 /* 4453 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[0]]
6982 /* 4453 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
6983 /* 4456 */ // Label 221: @4456
6984 /* 4456 */ GIM_Try, /*On fail goto*//*Label 222*/ GIMT_Encode4(4480), // Rule ID 128 //
6985 /* 4461 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
6986 /* 4464 */ // MIs[0] dst
6987 /* 4464 */ // No operand predicates
6988 /* 4464 */ // MIs[0] src
6989 /* 4464 */ // No operand predicates
6990 /* 4464 */ // MIs[0] src
6991 /* 4464 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6992 /* 4469 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6993 /* 4474 */ // Combiner Rule #93: binop_same_val @ [__binop_same_val_match_0[0]]
6994 /* 4474 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6995 /* 4479 */ GIR_EraseRootFromParent_Done,
6996 /* 4480 */ // Label 222: @4480
6997 /* 4480 */ GIM_Try, /*On fail goto*//*Label 223*/ GIMT_Encode4(4501), // Rule ID 86 //
6998 /* 4485 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6999 /* 4488 */ // MIs[0] dst
7000 /* 4488 */ // No operand predicates
7001 /* 4488 */ // MIs[0] __undef_to_int_zero_match_0.x
7002 /* 4488 */ // No operand predicates
7003 /* 4488 */ // MIs[0] __undef_to_int_zero_match_0.y
7004 /* 4488 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7005 /* 4492 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7006 /* 4496 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7007 /* 4498 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[2]]
7008 /* 4498 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
7009 /* 4501 */ // Label 223: @4501
7010 /* 4501 */ GIM_Try, /*On fail goto*//*Label 224*/ GIMT_Encode4(4526), // Rule ID 383 //
7011 /* 4506 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule251Enabled),
7012 /* 4509 */ // MIs[0] dst
7013 /* 4509 */ // No operand predicates
7014 /* 4509 */ // MIs[0] lhs
7015 /* 4509 */ // No operand predicates
7016 /* 4509 */ // MIs[0] rhs
7017 /* 4509 */ // No operand predicates
7018 /* 4509 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
7019 /* 4513 */ // Combiner Rule #251: G_AND_commute_constant_to_rhs
7020 /* 4513 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
7021 /* 4516 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7022 /* 4518 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
7023 /* 4520 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
7024 /* 4522 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
7025 /* 4525 */ GIR_EraseRootFromParent_Done,
7026 /* 4526 */ // Label 224: @4526
7027 /* 4526 */ GIM_Try, /*On fail goto*//*Label 225*/ GIMT_Encode4(4537), // Rule ID 80 //
7028 /* 4531 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
7029 /* 4534 */ // MIs[0] dst
7030 /* 4534 */ // No operand predicates
7031 /* 4534 */ // MIs[0] src1
7032 /* 4534 */ // No operand predicates
7033 /* 4534 */ // MIs[0] src2
7034 /* 4534 */ // No operand predicates
7035 /* 4534 */ // Combiner Rule #74: load_and_mask
7036 /* 4534 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner28),
7037 /* 4537 */ // Label 225: @4537
7038 /* 4537 */ GIM_Try, /*On fail goto*//*Label 226*/ GIMT_Encode4(4548), // Rule ID 164 //
7039 /* 4542 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
7040 /* 4545 */ // MIs[0] root
7041 /* 4545 */ // No operand predicates
7042 /* 4545 */ // MIs[0] mi.x
7043 /* 4545 */ // No operand predicates
7044 /* 4545 */ // MIs[0] mi.y
7045 /* 4545 */ // No operand predicates
7046 /* 4545 */ // Combiner Rule #118: hoist_logic_op_with_same_opcode_hands @ [mi[0]]
7047 /* 4545 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
7048 /* 4548 */ // Label 226: @4548
7049 /* 4548 */ GIM_Try, /*On fail goto*//*Label 227*/ GIMT_Encode4(4559), // Rule ID 184 //
7050 /* 4553 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule134Enabled),
7051 /* 4556 */ // MIs[0] dst
7052 /* 4556 */ // No operand predicates
7053 /* 4556 */ // MIs[0] src1
7054 /* 4556 */ // No operand predicates
7055 /* 4556 */ // MIs[0] src2
7056 /* 4556 */ // No operand predicates
7057 /* 4556 */ // Combiner Rule #134: narrow_binop_feeding_and
7058 /* 4556 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
7059 /* 4559 */ // Label 227: @4559
7060 /* 4559 */ GIM_Try, /*On fail goto*//*Label 228*/ GIMT_Encode4(4570), // Rule ID 199 //
7061 /* 4564 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule149Enabled),
7062 /* 4567 */ // MIs[0] dst
7063 /* 4567 */ // No operand predicates
7064 /* 4567 */ // MIs[0] src1
7065 /* 4567 */ // No operand predicates
7066 /* 4567 */ // MIs[0] src2
7067 /* 4567 */ // No operand predicates
7068 /* 4567 */ // Combiner Rule #149: redundant_and
7069 /* 4567 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
7070 /* 4570 */ // Label 228: @4570
7071 /* 4570 */ GIM_Try, /*On fail goto*//*Label 229*/ GIMT_Encode4(4581), // Rule ID 223 //
7072 /* 4575 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
7073 /* 4578 */ // MIs[0] dst
7074 /* 4578 */ // No operand predicates
7075 /* 4578 */ // MIs[0] x
7076 /* 4578 */ // No operand predicates
7077 /* 4578 */ // MIs[0] y
7078 /* 4578 */ // No operand predicates
7079 /* 4578 */ // Combiner Rule #173: overlapping_and
7080 /* 4578 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner65),
7081 /* 4581 */ // Label 229: @4581
7082 /* 4581 */ GIM_Try, /*On fail goto*//*Label 230*/ GIMT_Encode4(4592), // Rule ID 282 //
7083 /* 4586 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
7084 /* 4589 */ // MIs[0] d
7085 /* 4589 */ // No operand predicates
7086 /* 4589 */ // MIs[0] mi.src0
7087 /* 4589 */ // No operand predicates
7088 /* 4589 */ // MIs[0] mi.src1
7089 /* 4589 */ // No operand predicates
7090 /* 4589 */ // Combiner Rule #210: constant_fold_binop @ [mi[2]]
7091 /* 4589 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
7092 /* 4592 */ // Label 230: @4592
7093 /* 4592 */ GIM_Try, /*On fail goto*//*Label 231*/ GIMT_Encode4(4603), // Rule ID 332 //
7094 /* 4597 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule224Enabled),
7095 /* 4600 */ // MIs[0] dst
7096 /* 4600 */ // No operand predicates
7097 /* 4600 */ // MIs[0] src1
7098 /* 4600 */ // No operand predicates
7099 /* 4600 */ // MIs[0] src2
7100 /* 4600 */ // No operand predicates
7101 /* 4600 */ // Combiner Rule #224: and_or_disjoint_mask
7102 /* 4600 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
7103 /* 4603 */ // Label 231: @4603
7104 /* 4603 */ GIM_Try, /*On fail goto*//*Label 232*/ GIMT_Encode4(4614), // Rule ID 344 //
7105 /* 4608 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
7106 /* 4611 */ // MIs[0] root
7107 /* 4611 */ // No operand predicates
7108 /* 4611 */ // MIs[0] mi.x
7109 /* 4611 */ // No operand predicates
7110 /* 4611 */ // MIs[0] mi.y
7111 /* 4611 */ // No operand predicates
7112 /* 4611 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[3]]
7113 /* 4611 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
7114 /* 4614 */ // Label 232: @4614
7115 /* 4614 */ GIM_Try, /*On fail goto*//*Label 233*/ GIMT_Encode4(4625), // Rule ID 410 //
7116 /* 4619 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule278Enabled),
7117 /* 4622 */ // MIs[0] dst
7118 /* 4622 */ // No operand predicates
7119 /* 4622 */ // MIs[0] src1
7120 /* 4622 */ // No operand predicates
7121 /* 4622 */ // MIs[0] src2
7122 /* 4622 */ // No operand predicates
7123 /* 4622 */ // Combiner Rule #278: match_ands
7124 /* 4622 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
7125 /* 4625 */ // Label 233: @4625
7126 /* 4625 */ GIM_Try, /*On fail goto*//*Label 234*/ GIMT_Encode4(4636), // Rule ID 455 //
7127 /* 4630 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule322Enabled),
7128 /* 4633 */ // MIs[0] root
7129 /* 4633 */ // No operand predicates
7130 /* 4633 */ // MIs[0] mi.x
7131 /* 4633 */ // No operand predicates
7132 /* 4633 */ // MIs[0] mi.y
7133 /* 4633 */ // No operand predicates
7134 /* 4633 */ // Combiner Rule #322: binop_with_neg @ [mi[0]]
7135 /* 4633 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7136 /* 4636 */ // Label 234: @4636
7137 /* 4636 */ GIM_Reject,
7138 /* 4637 */ // Label 9: @4637
7139 /* 4637 */ GIM_Try, /*On fail goto*//*Label 235*/ GIMT_Encode4(4723), // Rule ID 413 //
7140 /* 4642 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule281Enabled),
7141 /* 4645 */ // MIs[0] root
7142 /* 4645 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
7143 /* 4649 */ // MIs[0] and
7144 /* 4649 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7145 /* 4653 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
7146 /* 4657 */ // MIs[1] x
7147 /* 4657 */ // No operand predicates
7148 /* 4657 */ // MIs[1] y
7149 /* 4657 */ // No operand predicates
7150 /* 4657 */ // MIs[0] not
7151 /* 4657 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7152 /* 4661 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
7153 /* 4665 */ // MIs[2] y
7154 /* 4665 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
7155 /* 4670 */ // MIs[2] Operand 2
7156 /* 4670 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
7157 /* 4674 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7158 /* 4676 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
7159 /* 4679 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
7160 /* 4689 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7161 /* 4692 */ // Combiner Rule #281: or_and_xor_to_xor_or
7162 /* 4692 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
7163 /* 4695 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7164 /* 4700 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
7165 /* 4704 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
7166 /* 4707 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7167 /* 4711 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
7168 /* 4715 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
7169 /* 4719 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7170 /* 4722 */ GIR_EraseRootFromParent_Done,
7171 /* 4723 */ // Label 235: @4723
7172 /* 4723 */ GIM_Try, /*On fail goto*//*Label 236*/ GIMT_Encode4(4770), // Rule ID 266 //
7173 /* 4728 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7174 /* 4731 */ // MIs[0] root
7175 /* 4731 */ // No operand predicates
7176 /* 4731 */ // MIs[0] out1
7177 /* 4731 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7178 /* 4735 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHL),
7179 /* 4739 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
7180 /* 4739 */ // No operand predicates
7181 /* 4739 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
7182 /* 4739 */ // No operand predicates
7183 /* 4739 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
7184 /* 4739 */ // No operand predicates
7185 /* 4739 */ // MIs[0] out2
7186 /* 4739 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7187 /* 4743 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SHL),
7188 /* 4747 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
7189 /* 4747 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
7190 /* 4752 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
7191 /* 4752 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
7192 /* 4757 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7193 /* 4762 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7194 /* 4764 */ // Combiner Rule #200: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[0]]
7195 /* 4764 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7196 /* 4769 */ GIR_EraseRootFromParent_Done,
7197 /* 4770 */ // Label 236: @4770
7198 /* 4770 */ GIM_Try, /*On fail goto*//*Label 237*/ GIMT_Encode4(4817), // Rule ID 268 //
7199 /* 4775 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
7200 /* 4778 */ // MIs[0] root
7201 /* 4778 */ // No operand predicates
7202 /* 4778 */ // MIs[0] out1
7203 /* 4778 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7204 /* 4782 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHR),
7205 /* 4786 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
7206 /* 4786 */ // No operand predicates
7207 /* 4786 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
7208 /* 4786 */ // No operand predicates
7209 /* 4786 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
7210 /* 4786 */ // No operand predicates
7211 /* 4786 */ // MIs[0] out2
7212 /* 4786 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7213 /* 4790 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
7214 /* 4794 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
7215 /* 4794 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
7216 /* 4799 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
7217 /* 4799 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
7218 /* 4804 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7219 /* 4809 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7220 /* 4811 */ // Combiner Rule #201: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[0]]
7221 /* 4811 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7222 /* 4816 */ GIR_EraseRootFromParent_Done,
7223 /* 4817 */ // Label 237: @4817
7224 /* 4817 */ GIM_Try, /*On fail goto*//*Label 238*/ GIMT_Encode4(4915), // Rule ID 178 //
7225 /* 4822 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule128Enabled),
7226 /* 4825 */ // MIs[0] root
7227 /* 4825 */ // No operand predicates
7228 /* 4825 */ // MIs[0] d1
7229 /* 4825 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7230 /* 4829 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
7231 /* 4833 */ // MIs[1] p
7232 /* 4833 */ // No operand predicates
7233 /* 4833 */ // MIs[1] s1
7234 /* 4833 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
7235 /* 4837 */ // MIs[1] Operand 3
7236 /* 4837 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
7237 /* 4841 */ // MIs[0] d2
7238 /* 4841 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7239 /* 4845 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
7240 /* 4849 */ // MIs[2] p
7241 /* 4849 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
7242 /* 4854 */ // MIs[2] s2
7243 /* 4854 */ // No operand predicates
7244 /* 4854 */ // MIs[2] Operand 3
7245 /* 4854 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
7246 /* 4858 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner23),
7247 /* 4862 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7248 /* 4864 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
7249 /* 4867 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
7250 /* 4877 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7251 /* 4880 */ // Combiner Rule #128: double_icmp_zero_or_combine
7252 /* 4880 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7253 /* 4883 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7254 /* 4888 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
7255 /* 4892 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
7256 /* 4896 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
7257 /* 4900 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
7258 /* 4904 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
7259 /* 4908 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7260 /* 4911 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
7261 /* 4914 */ GIR_EraseRootFromParent_Done,
7262 /* 4915 */ // Label 238: @4915
7263 /* 4915 */ GIM_Try, /*On fail goto*//*Label 239*/ GIMT_Encode4(4964), // Rule ID 412 //
7264 /* 4920 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule280Enabled),
7265 /* 4923 */ // MIs[0] root
7266 /* 4923 */ // No operand predicates
7267 /* 4923 */ // MIs[0] and
7268 /* 4923 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7269 /* 4927 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
7270 /* 4931 */ // MIs[1] x
7271 /* 4931 */ // No operand predicates
7272 /* 4931 */ // MIs[1] not
7273 /* 4931 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7274 /* 4935 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
7275 /* 4939 */ // MIs[2] y
7276 /* 4939 */ // No operand predicates
7277 /* 4939 */ // MIs[2] Operand 2
7278 /* 4939 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
7279 /* 4943 */ // MIs[0] y
7280 /* 4943 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
7281 /* 4948 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7282 /* 4950 */ // Combiner Rule #280: or_and_xor_to_or
7283 /* 4950 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7284 /* 4953 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7285 /* 4955 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7286 /* 4959 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
7287 /* 4963 */ GIR_EraseRootFromParent_Done,
7288 /* 4964 */ // Label 239: @4964
7289 /* 4964 */ GIM_Try, /*On fail goto*//*Label 240*/ GIMT_Encode4(4998), // Rule ID 466 //
7290 /* 4969 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule331Enabled),
7291 /* 4972 */ // MIs[0] dst
7292 /* 4972 */ // No operand predicates
7293 /* 4972 */ // MIs[0] __combine_or_of_and_match_0.and
7294 /* 4972 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7295 /* 4976 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
7296 /* 4980 */ // MIs[1] x
7297 /* 4980 */ // No operand predicates
7298 /* 4980 */ // MIs[1] y
7299 /* 4980 */ // No operand predicates
7300 /* 4980 */ // MIs[0] x
7301 /* 4980 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
7302 /* 4985 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7303 /* 4990 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7304 /* 4992 */ // Combiner Rule #331: combine_or_of_and @ [__combine_or_of_and_match_0[0]]
7305 /* 4992 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7306 /* 4997 */ GIR_EraseRootFromParent_Done,
7307 /* 4998 */ // Label 240: @4998
7308 /* 4998 */ GIM_Try, /*On fail goto*//*Label 241*/ GIMT_Encode4(5032), // Rule ID 467 //
7309 /* 5003 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule331Enabled),
7310 /* 5006 */ // MIs[0] dst
7311 /* 5006 */ // No operand predicates
7312 /* 5006 */ // MIs[0] __combine_or_of_and_match_0.and
7313 /* 5006 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7314 /* 5010 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
7315 /* 5014 */ // MIs[1] y
7316 /* 5014 */ // No operand predicates
7317 /* 5014 */ // MIs[1] x
7318 /* 5014 */ // No operand predicates
7319 /* 5014 */ // MIs[0] x
7320 /* 5014 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
7321 /* 5019 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
7322 /* 5024 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7323 /* 5026 */ // Combiner Rule #331: combine_or_of_and @ [__combine_or_of_and_match_0[1]]
7324 /* 5026 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
7325 /* 5031 */ GIR_EraseRootFromParent_Done,
7326 /* 5032 */ // Label 241: @5032
7327 /* 5032 */ GIM_Try, /*On fail goto*//*Label 242*/ GIMT_Encode4(5079), // Rule ID 269 //
7328 /* 5037 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
7329 /* 5040 */ // MIs[0] root
7330 /* 5040 */ // No operand predicates
7331 /* 5040 */ // MIs[0] out2
7332 /* 5040 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7333 /* 5044 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
7334 /* 5048 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
7335 /* 5048 */ // No operand predicates
7336 /* 5048 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
7337 /* 5048 */ // No operand predicates
7338 /* 5048 */ // MIs[0] out1
7339 /* 5048 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7340 /* 5052 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHR),
7341 /* 5056 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
7342 /* 5056 */ // No operand predicates
7343 /* 5056 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
7344 /* 5056 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
7345 /* 5061 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
7346 /* 5061 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
7347 /* 5066 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
7348 /* 5071 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7349 /* 5073 */ // Combiner Rule #201: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[1]]
7350 /* 5073 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
7351 /* 5078 */ GIR_EraseRootFromParent_Done,
7352 /* 5079 */ // Label 242: @5079
7353 /* 5079 */ GIM_Try, /*On fail goto*//*Label 243*/ GIMT_Encode4(5126), // Rule ID 267 //
7354 /* 5084 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7355 /* 5087 */ // MIs[0] root
7356 /* 5087 */ // No operand predicates
7357 /* 5087 */ // MIs[0] out2
7358 /* 5087 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7359 /* 5091 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
7360 /* 5095 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
7361 /* 5095 */ // No operand predicates
7362 /* 5095 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
7363 /* 5095 */ // No operand predicates
7364 /* 5095 */ // MIs[0] out1
7365 /* 5095 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7366 /* 5099 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHL),
7367 /* 5103 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
7368 /* 5103 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
7369 /* 5108 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
7370 /* 5108 */ // No operand predicates
7371 /* 5108 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
7372 /* 5108 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
7373 /* 5113 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
7374 /* 5118 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7375 /* 5120 */ // Combiner Rule #200: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[1]]
7376 /* 5120 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
7377 /* 5125 */ GIR_EraseRootFromParent_Done,
7378 /* 5126 */ // Label 243: @5126
7379 /* 5126 */ GIM_Try, /*On fail goto*//*Label 244*/ GIMT_Encode4(5176), // Rule ID 417 //
7380 /* 5131 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule285Enabled),
7381 /* 5134 */ // MIs[0] root
7382 /* 5134 */ // No operand predicates
7383 /* 5134 */ // MIs[0] xor
7384 /* 5134 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7385 /* 5138 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
7386 /* 5142 */ // MIs[1] x
7387 /* 5142 */ // No operand predicates
7388 /* 5142 */ // MIs[1] y
7389 /* 5142 */ // No operand predicates
7390 /* 5142 */ // MIs[0] and
7391 /* 5142 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7392 /* 5146 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_AND),
7393 /* 5150 */ // MIs[2] x
7394 /* 5150 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
7395 /* 5155 */ // MIs[2] y
7396 /* 5155 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
7397 /* 5160 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7398 /* 5162 */ // Combiner Rule #285: or_xor_and
7399 /* 5162 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7400 /* 5165 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7401 /* 5167 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7402 /* 5171 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
7403 /* 5175 */ GIR_EraseRootFromParent_Done,
7404 /* 5176 */ // Label 244: @5176
7405 /* 5176 */ GIM_Try, /*On fail goto*//*Label 245*/ GIMT_Encode4(5226), // Rule ID 416 //
7406 /* 5181 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule284Enabled),
7407 /* 5184 */ // MIs[0] root
7408 /* 5184 */ // No operand predicates
7409 /* 5184 */ // MIs[0] xor
7410 /* 5184 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7411 /* 5188 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
7412 /* 5192 */ // MIs[1] x
7413 /* 5192 */ // No operand predicates
7414 /* 5192 */ // MIs[1] y
7415 /* 5192 */ // No operand predicates
7416 /* 5192 */ // MIs[0] or
7417 /* 5192 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7418 /* 5196 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_OR),
7419 /* 5200 */ // MIs[2] x
7420 /* 5200 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
7421 /* 5205 */ // MIs[2] y
7422 /* 5205 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
7423 /* 5210 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7424 /* 5212 */ // Combiner Rule #284: or_xor_or
7425 /* 5212 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7426 /* 5215 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7427 /* 5217 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7428 /* 5221 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
7429 /* 5225 */ GIR_EraseRootFromParent_Done,
7430 /* 5226 */ // Label 245: @5226
7431 /* 5226 */ GIM_Try, /*On fail goto*//*Label 246*/ GIMT_Encode4(5247), // Rule ID 88 //
7432 /* 5231 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
7433 /* 5234 */ // MIs[0] dst
7434 /* 5234 */ // No operand predicates
7435 /* 5234 */ // MIs[0] __undef_to_negative_one_match_0.x
7436 /* 5234 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7437 /* 5238 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7438 /* 5242 */ // MIs[0] __undef_to_negative_one_match_0.y
7439 /* 5242 */ // No operand predicates
7440 /* 5242 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7441 /* 5244 */ // Combiner Rule #78: undef_to_negative_one @ [__undef_to_negative_one_match_0[0]]
7442 /* 5244 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
7443 /* 5247 */ // Label 246: @5247
7444 /* 5247 */ GIM_Try, /*On fail goto*//*Label 247*/ GIMT_Encode4(5271), // Rule ID 129 //
7445 /* 5252 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
7446 /* 5255 */ // MIs[0] dst
7447 /* 5255 */ // No operand predicates
7448 /* 5255 */ // MIs[0] src
7449 /* 5255 */ // No operand predicates
7450 /* 5255 */ // MIs[0] src
7451 /* 5255 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
7452 /* 5260 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7453 /* 5265 */ // Combiner Rule #93: binop_same_val @ [__binop_same_val_match_0[1]]
7454 /* 5265 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7455 /* 5270 */ GIR_EraseRootFromParent_Done,
7456 /* 5271 */ // Label 247: @5271
7457 /* 5271 */ GIM_Try, /*On fail goto*//*Label 248*/ GIMT_Encode4(5305), // Rule ID 468 //
7458 /* 5276 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule331Enabled),
7459 /* 5279 */ // MIs[0] dst
7460 /* 5279 */ // No operand predicates
7461 /* 5279 */ // MIs[0] x
7462 /* 5279 */ // No operand predicates
7463 /* 5279 */ // MIs[0] __combine_or_of_and_match_0.and
7464 /* 5279 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7465 /* 5283 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
7466 /* 5287 */ // MIs[1] x
7467 /* 5287 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
7468 /* 5292 */ // MIs[1] y
7469 /* 5292 */ // No operand predicates
7470 /* 5292 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7471 /* 5297 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7472 /* 5299 */ // Combiner Rule #331: combine_or_of_and @ [__combine_or_of_and_match_0[2]]
7473 /* 5299 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7474 /* 5304 */ GIR_EraseRootFromParent_Done,
7475 /* 5305 */ // Label 248: @5305
7476 /* 5305 */ GIM_Try, /*On fail goto*//*Label 249*/ GIMT_Encode4(5339), // Rule ID 469 //
7477 /* 5310 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule331Enabled),
7478 /* 5313 */ // MIs[0] dst
7479 /* 5313 */ // No operand predicates
7480 /* 5313 */ // MIs[0] x
7481 /* 5313 */ // No operand predicates
7482 /* 5313 */ // MIs[0] __combine_or_of_and_match_0.and
7483 /* 5313 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7484 /* 5317 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
7485 /* 5321 */ // MIs[1] y
7486 /* 5321 */ // No operand predicates
7487 /* 5321 */ // MIs[1] x
7488 /* 5321 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
7489 /* 5326 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7490 /* 5331 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7491 /* 5333 */ // Combiner Rule #331: combine_or_of_and @ [__combine_or_of_and_match_0[3]]
7492 /* 5333 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7493 /* 5338 */ GIR_EraseRootFromParent_Done,
7494 /* 5339 */ // Label 249: @5339
7495 /* 5339 */ GIM_Try, /*On fail goto*//*Label 250*/ GIMT_Encode4(5360), // Rule ID 89 //
7496 /* 5344 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
7497 /* 5347 */ // MIs[0] dst
7498 /* 5347 */ // No operand predicates
7499 /* 5347 */ // MIs[0] __undef_to_negative_one_match_0.x
7500 /* 5347 */ // No operand predicates
7501 /* 5347 */ // MIs[0] __undef_to_negative_one_match_0.y
7502 /* 5347 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7503 /* 5351 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7504 /* 5355 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7505 /* 5357 */ // Combiner Rule #78: undef_to_negative_one @ [__undef_to_negative_one_match_0[1]]
7506 /* 5357 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
7507 /* 5360 */ // Label 250: @5360
7508 /* 5360 */ GIM_Try, /*On fail goto*//*Label 251*/ GIMT_Encode4(5383), // Rule ID 120 //
7509 /* 5365 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
7510 /* 5368 */ // MIs[0] dst
7511 /* 5368 */ // No operand predicates
7512 /* 5368 */ // MIs[0] lhs
7513 /* 5368 */ // No operand predicates
7514 /* 5368 */ // MIs[0] Operand 2
7515 /* 5368 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7516 /* 5372 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7517 /* 5377 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[2]]
7518 /* 5377 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7519 /* 5382 */ GIR_EraseRootFromParent_Done,
7520 /* 5383 */ // Label 251: @5383
7521 /* 5383 */ GIM_Try, /*On fail goto*//*Label 252*/ GIMT_Encode4(5408), // Rule ID 384 //
7522 /* 5388 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule252Enabled),
7523 /* 5391 */ // MIs[0] dst
7524 /* 5391 */ // No operand predicates
7525 /* 5391 */ // MIs[0] lhs
7526 /* 5391 */ // No operand predicates
7527 /* 5391 */ // MIs[0] rhs
7528 /* 5391 */ // No operand predicates
7529 /* 5391 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
7530 /* 5395 */ // Combiner Rule #252: G_OR_commute_constant_to_rhs
7531 /* 5395 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7532 /* 5398 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7533 /* 5400 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
7534 /* 5402 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
7535 /* 5404 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
7536 /* 5407 */ GIR_EraseRootFromParent_Done,
7537 /* 5408 */ // Label 252: @5408
7538 /* 5408 */ GIM_Try, /*On fail goto*//*Label 253*/ GIMT_Encode4(5419), // Rule ID 165 //
7539 /* 5413 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
7540 /* 5416 */ // MIs[0] root
7541 /* 5416 */ // No operand predicates
7542 /* 5416 */ // MIs[0] mi.x
7543 /* 5416 */ // No operand predicates
7544 /* 5416 */ // MIs[0] mi.y
7545 /* 5416 */ // No operand predicates
7546 /* 5416 */ // Combiner Rule #118: hoist_logic_op_with_same_opcode_hands @ [mi[1]]
7547 /* 5416 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
7548 /* 5419 */ // Label 253: @5419
7549 /* 5419 */ GIM_Try, /*On fail goto*//*Label 254*/ GIMT_Encode4(5430), // Rule ID 200 //
7550 /* 5424 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
7551 /* 5427 */ // MIs[0] dst
7552 /* 5427 */ // No operand predicates
7553 /* 5427 */ // MIs[0] src1
7554 /* 5427 */ // No operand predicates
7555 /* 5427 */ // MIs[0] src2
7556 /* 5427 */ // No operand predicates
7557 /* 5427 */ // Combiner Rule #150: redundant_or
7558 /* 5427 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
7559 /* 5430 */ // Label 254: @5430
7560 /* 5430 */ GIM_Try, /*On fail goto*//*Label 255*/ GIMT_Encode4(5441), // Rule ID 254 //
7561 /* 5435 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
7562 /* 5438 */ // MIs[0] dst
7563 /* 5438 */ // No operand predicates
7564 /* 5438 */ // MIs[0] src1
7565 /* 5438 */ // No operand predicates
7566 /* 5438 */ // MIs[0] src2
7567 /* 5438 */ // No operand predicates
7568 /* 5438 */ // Combiner Rule #192: load_or_combine
7569 /* 5438 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner71),
7570 /* 5441 */ // Label 255: @5441
7571 /* 5441 */ GIM_Try, /*On fail goto*//*Label 256*/ GIMT_Encode4(5452), // Rule ID 259 //
7572 /* 5446 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
7573 /* 5449 */ // MIs[0] dst
7574 /* 5449 */ // No operand predicates
7575 /* 5449 */ // MIs[0] src1
7576 /* 5449 */ // No operand predicates
7577 /* 5449 */ // MIs[0] src2
7578 /* 5449 */ // No operand predicates
7579 /* 5449 */ // Combiner Rule #194: funnel_shift_from_or_shift
7580 /* 5449 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner73),
7581 /* 5452 */ // Label 256: @5452
7582 /* 5452 */ GIM_Try, /*On fail goto*//*Label 257*/ GIMT_Encode4(5463), // Rule ID 286 //
7583 /* 5457 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
7584 /* 5460 */ // MIs[0] d
7585 /* 5460 */ // No operand predicates
7586 /* 5460 */ // MIs[0] mi.src0
7587 /* 5460 */ // No operand predicates
7588 /* 5460 */ // MIs[0] mi.src1
7589 /* 5460 */ // No operand predicates
7590 /* 5460 */ // Combiner Rule #210: constant_fold_binop @ [mi[6]]
7591 /* 5460 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
7592 /* 5463 */ // Label 257: @5463
7593 /* 5463 */ GIM_Try, /*On fail goto*//*Label 258*/ GIMT_Encode4(5474), // Rule ID 345 //
7594 /* 5468 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
7595 /* 5471 */ // MIs[0] root
7596 /* 5471 */ // No operand predicates
7597 /* 5471 */ // MIs[0] mi.x
7598 /* 5471 */ // No operand predicates
7599 /* 5471 */ // MIs[0] mi.y
7600 /* 5471 */ // No operand predicates
7601 /* 5471 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[4]]
7602 /* 5471 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
7603 /* 5474 */ // Label 258: @5474
7604 /* 5474 */ GIM_Try, /*On fail goto*//*Label 259*/ GIMT_Encode4(5485), // Rule ID 411 //
7605 /* 5479 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule279Enabled),
7606 /* 5482 */ // MIs[0] dst
7607 /* 5482 */ // No operand predicates
7608 /* 5482 */ // MIs[0] src1
7609 /* 5482 */ // No operand predicates
7610 /* 5482 */ // MIs[0] src2
7611 /* 5482 */ // No operand predicates
7612 /* 5482 */ // Combiner Rule #279: match_ors
7613 /* 5482 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7614 /* 5485 */ // Label 259: @5485
7615 /* 5485 */ GIM_Try, /*On fail goto*//*Label 260*/ GIMT_Encode4(5496), // Rule ID 456 //
7616 /* 5490 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule322Enabled),
7617 /* 5493 */ // MIs[0] root
7618 /* 5493 */ // No operand predicates
7619 /* 5493 */ // MIs[0] mi.x
7620 /* 5493 */ // No operand predicates
7621 /* 5493 */ // MIs[0] mi.y
7622 /* 5493 */ // No operand predicates
7623 /* 5493 */ // Combiner Rule #322: binop_with_neg @ [mi[1]]
7624 /* 5493 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7625 /* 5496 */ // Label 260: @5496
7626 /* 5496 */ GIM_Reject,
7627 /* 5497 */ // Label 10: @5497
7628 /* 5497 */ GIM_Try, /*On fail goto*//*Label 261*/ GIMT_Encode4(5557), // Rule ID 13 //
7629 /* 5502 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
7630 /* 5505 */ // MIs[0] root
7631 /* 5505 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
7632 /* 5509 */ // MIs[0] add
7633 /* 5509 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7634 /* 5513 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
7635 /* 5517 */ // MIs[1] A
7636 /* 5517 */ // No operand predicates
7637 /* 5517 */ // MIs[1] Operand 2
7638 /* 5517 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 255,
7639 /* 5521 */ // MIs[0] Operand 2
7640 /* 5521 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
7641 /* 5525 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
7642 /* 5529 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7643 /* 5531 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7644 /* 5534 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
7645 /* 5544 */ // Combiner Rule #13: NotAPlusNegOne
7646 /* 5544 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
7647 /* 5547 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7648 /* 5549 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
7649 /* 5552 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
7650 /* 5556 */ GIR_EraseRootFromParent_Done,
7651 /* 5557 */ // Label 261: @5557
7652 /* 5557 */ GIM_Try, /*On fail goto*//*Label 262*/ GIMT_Encode4(5581), // Rule ID 106 //
7653 /* 5562 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
7654 /* 5565 */ // MIs[0] dst
7655 /* 5565 */ // No operand predicates
7656 /* 5565 */ // MIs[0] __propagate_undef_any_op_match_0.x
7657 /* 5565 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7658 /* 5569 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7659 /* 5573 */ // MIs[0] __propagate_undef_any_op_match_0.y
7660 /* 5573 */ // No operand predicates
7661 /* 5573 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7662 /* 5575 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[2]]
7663 /* 5575 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7664 /* 5578 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7665 /* 5580 */ GIR_EraseRootFromParent_Done,
7666 /* 5581 */ // Label 262: @5581
7667 /* 5581 */ GIM_Try, /*On fail goto*//*Label 263*/ GIMT_Encode4(5620), // Rule ID 131 //
7668 /* 5586 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
7669 /* 5589 */ // MIs[0] dst
7670 /* 5589 */ // No operand predicates
7671 /* 5589 */ // MIs[0] x
7672 /* 5589 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
7673 /* 5593 */ // MIs[0] x
7674 /* 5593 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
7675 /* 5598 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7676 /* 5601 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
7677 /* 5611 */ // Combiner Rule #94: same_val_zero @ [__same_val_zero_match_0[1]]
7678 /* 5611 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7679 /* 5614 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7680 /* 5616 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
7681 /* 5619 */ GIR_EraseRootFromParent_Done,
7682 /* 5620 */ // Label 263: @5620
7683 /* 5620 */ GIM_Try, /*On fail goto*//*Label 264*/ GIMT_Encode4(5644), // Rule ID 109 //
7684 /* 5625 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
7685 /* 5628 */ // MIs[0] dst
7686 /* 5628 */ // No operand predicates
7687 /* 5628 */ // MIs[0] __propagate_undef_any_op_match_0.x
7688 /* 5628 */ // No operand predicates
7689 /* 5628 */ // MIs[0] __propagate_undef_any_op_match_0.y
7690 /* 5628 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7691 /* 5632 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7692 /* 5636 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7693 /* 5638 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[5]]
7694 /* 5638 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7695 /* 5641 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7696 /* 5643 */ GIR_EraseRootFromParent_Done,
7697 /* 5644 */ // Label 264: @5644
7698 /* 5644 */ GIM_Try, /*On fail goto*//*Label 265*/ GIMT_Encode4(5667), // Rule ID 121 //
7699 /* 5649 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
7700 /* 5652 */ // MIs[0] dst
7701 /* 5652 */ // No operand predicates
7702 /* 5652 */ // MIs[0] lhs
7703 /* 5652 */ // No operand predicates
7704 /* 5652 */ // MIs[0] Operand 2
7705 /* 5652 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7706 /* 5656 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7707 /* 5661 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[3]]
7708 /* 5661 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7709 /* 5666 */ GIR_EraseRootFromParent_Done,
7710 /* 5667 */ // Label 265: @5667
7711 /* 5667 */ GIM_Try, /*On fail goto*//*Label 266*/ GIMT_Encode4(5692), // Rule ID 385 //
7712 /* 5672 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule253Enabled),
7713 /* 5675 */ // MIs[0] dst
7714 /* 5675 */ // No operand predicates
7715 /* 5675 */ // MIs[0] lhs
7716 /* 5675 */ // No operand predicates
7717 /* 5675 */ // MIs[0] rhs
7718 /* 5675 */ // No operand predicates
7719 /* 5675 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
7720 /* 5679 */ // Combiner Rule #253: G_XOR_commute_constant_to_rhs
7721 /* 5679 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
7722 /* 5682 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7723 /* 5684 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
7724 /* 5686 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
7725 /* 5688 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
7726 /* 5691 */ GIR_EraseRootFromParent_Done,
7727 /* 5692 */ // Label 266: @5692
7728 /* 5692 */ GIM_Try, /*On fail goto*//*Label 267*/ GIMT_Encode4(5703), // Rule ID 166 //
7729 /* 5697 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
7730 /* 5700 */ // MIs[0] root
7731 /* 5700 */ // No operand predicates
7732 /* 5700 */ // MIs[0] mi.x
7733 /* 5700 */ // No operand predicates
7734 /* 5700 */ // MIs[0] mi.y
7735 /* 5700 */ // No operand predicates
7736 /* 5700 */ // Combiner Rule #118: hoist_logic_op_with_same_opcode_hands @ [mi[2]]
7737 /* 5700 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
7738 /* 5703 */ // Label 267: @5703
7739 /* 5703 */ GIM_Try, /*On fail goto*//*Label 268*/ GIMT_Encode4(5714), // Rule ID 205 //
7740 /* 5708 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
7741 /* 5711 */ // MIs[0] dst
7742 /* 5711 */ // No operand predicates
7743 /* 5711 */ // MIs[0] src1
7744 /* 5711 */ // No operand predicates
7745 /* 5711 */ // MIs[0] src2
7746 /* 5711 */ // No operand predicates
7747 /* 5711 */ // Combiner Rule #155: not_cmp_fold
7748 /* 5711 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner61),
7749 /* 5714 */ // Label 268: @5714
7750 /* 5714 */ GIM_Try, /*On fail goto*//*Label 269*/ GIMT_Encode4(5725), // Rule ID 241 //
7751 /* 5719 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
7752 /* 5722 */ // MIs[0] dst
7753 /* 5722 */ // No operand predicates
7754 /* 5722 */ // MIs[0] src1
7755 /* 5722 */ // No operand predicates
7756 /* 5722 */ // MIs[0] src2
7757 /* 5722 */ // No operand predicates
7758 /* 5722 */ // Combiner Rule #187: xor_of_and_with_same_reg
7759 /* 5722 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner68),
7760 /* 5725 */ // Label 269: @5725
7761 /* 5725 */ GIM_Try, /*On fail goto*//*Label 270*/ GIMT_Encode4(5736), // Rule ID 289 //
7762 /* 5730 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
7763 /* 5733 */ // MIs[0] d
7764 /* 5733 */ // No operand predicates
7765 /* 5733 */ // MIs[0] mi.src0
7766 /* 5733 */ // No operand predicates
7767 /* 5733 */ // MIs[0] mi.src1
7768 /* 5733 */ // No operand predicates
7769 /* 5733 */ // Combiner Rule #210: constant_fold_binop @ [mi[9]]
7770 /* 5733 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
7771 /* 5736 */ // Label 270: @5736
7772 /* 5736 */ GIM_Try, /*On fail goto*//*Label 271*/ GIMT_Encode4(5747), // Rule ID 346 //
7773 /* 5741 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
7774 /* 5744 */ // MIs[0] root
7775 /* 5744 */ // No operand predicates
7776 /* 5744 */ // MIs[0] mi.x
7777 /* 5744 */ // No operand predicates
7778 /* 5744 */ // MIs[0] mi.y
7779 /* 5744 */ // No operand predicates
7780 /* 5744 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[5]]
7781 /* 5744 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
7782 /* 5747 */ // Label 271: @5747
7783 /* 5747 */ GIM_Try, /*On fail goto*//*Label 272*/ GIMT_Encode4(5758), // Rule ID 457 //
7784 /* 5752 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule322Enabled),
7785 /* 5755 */ // MIs[0] root
7786 /* 5755 */ // No operand predicates
7787 /* 5755 */ // MIs[0] mi.x
7788 /* 5755 */ // No operand predicates
7789 /* 5755 */ // MIs[0] mi.y
7790 /* 5755 */ // No operand predicates
7791 /* 5755 */ // Combiner Rule #322: binop_with_neg @ [mi[2]]
7792 /* 5755 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7793 /* 5758 */ // Label 272: @5758
7794 /* 5758 */ GIM_Reject,
7795 /* 5759 */ // Label 11: @5759
7796 /* 5759 */ GIM_Try, /*On fail goto*//*Label 273*/ GIMT_Encode4(5773), // Rule ID 161 //
7797 /* 5764 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule116Enabled),
7798 /* 5767 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
7799 /* 5770 */ // MIs[0] dst
7800 /* 5770 */ // No operand predicates
7801 /* 5770 */ // MIs[0] srcs
7802 /* 5770 */ // No operand predicates
7803 /* 5770 */ // Combiner Rule #116: extend_through_phis
7804 /* 5770 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
7805 /* 5773 */ // Label 273: @5773
7806 /* 5773 */ GIM_Reject,
7807 /* 5774 */ // Label 12: @5774
7808 /* 5774 */ GIM_Try, /*On fail goto*//*Label 274*/ GIMT_Encode4(5785), // Rule ID 473 //
7809 /* 5779 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule335Enabled),
7810 /* 5782 */ // MIs[0] dst
7811 /* 5782 */ // No operand predicates
7812 /* 5782 */ // MIs[0] gv
7813 /* 5782 */ // No operand predicates
7814 /* 5782 */ // Combiner Rule #335: fold_global_offset
7815 /* 5782 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
7816 /* 5785 */ // Label 274: @5785
7817 /* 5785 */ GIM_Reject,
7818 /* 5786 */ // Label 13: @5786
7819 /* 5786 */ GIM_Try, /*On fail goto*//*Label 275*/ GIMT_Encode4(5797), // Rule ID 427 //
7820 /* 5791 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule295Enabled),
7821 /* 5794 */ // Combiner Rule #295: unmerge_anyext_build_vector; wip_match_opcode 'G_UNMERGE_VALUES'
7822 /* 5794 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
7823 /* 5797 */ // Label 275: @5797
7824 /* 5797 */ GIM_Try, /*On fail goto*//*Label 276*/ GIMT_Encode4(5808), // Rule ID 428 //
7825 /* 5802 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule296Enabled),
7826 /* 5805 */ // Combiner Rule #296: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
7827 /* 5805 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114),
7828 /* 5808 */ // Label 276: @5808
7829 /* 5808 */ GIM_Try, /*On fail goto*//*Label 277*/ GIMT_Encode4(5819), // Rule ID 430 //
7830 /* 5813 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule298Enabled),
7831 /* 5816 */ // Combiner Rule #298: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
7832 /* 5816 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner116),
7833 /* 5819 */ // Label 277: @5819
7834 /* 5819 */ GIM_Try, /*On fail goto*//*Label 278*/ GIMT_Encode4(5830), // Rule ID 431 //
7835 /* 5824 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule299Enabled),
7836 /* 5827 */ // Combiner Rule #299: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
7837 /* 5827 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner117),
7838 /* 5830 */ // Label 278: @5830
7839 /* 5830 */ GIM_Try, /*On fail goto*//*Label 279*/ GIMT_Encode4(5841), // Rule ID 432 //
7840 /* 5835 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule300Enabled),
7841 /* 5838 */ // Combiner Rule #300: unmerge_dead_to_trunc; wip_match_opcode 'G_UNMERGE_VALUES'
7842 /* 5838 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7843 /* 5841 */ // Label 279: @5841
7844 /* 5841 */ GIM_Try, /*On fail goto*//*Label 280*/ GIMT_Encode4(5852), // Rule ID 433 //
7845 /* 5846 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule301Enabled),
7846 /* 5849 */ // Combiner Rule #301: unmerge_zext_to_zext; wip_match_opcode 'G_UNMERGE_VALUES'
7847 /* 5849 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
7848 /* 5852 */ // Label 280: @5852
7849 /* 5852 */ GIM_Reject,
7850 /* 5853 */ // Label 14: @5853
7851 /* 5853 */ GIM_Try, /*On fail goto*//*Label 281*/ GIMT_Encode4(5867), // Rule ID 429 //
7852 /* 5858 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule297Enabled),
7853 /* 5861 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
7854 /* 5864 */ // MIs[0] dst
7855 /* 5864 */ // No operand predicates
7856 /* 5864 */ // MIs[0] merge_srcs
7857 /* 5864 */ // No operand predicates
7858 /* 5864 */ // Combiner Rule #297: merge_unmerge
7859 /* 5864 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner115),
7860 /* 5867 */ // Label 281: @5867
7861 /* 5867 */ GIM_Try, /*On fail goto*//*Label 282*/ GIMT_Encode4(5947),
7862 /* 5872 */ GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
7863 /* 5875 */ GIM_Try, /*On fail goto*//*Label 283*/ GIMT_Encode4(5905), // Rule ID 434 //
7864 /* 5880 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule302Enabled),
7865 /* 5883 */ // MIs[0] root
7866 /* 5883 */ // No operand predicates
7867 /* 5883 */ // MIs[0] x
7868 /* 5883 */ // No operand predicates
7869 /* 5883 */ // MIs[0] undef
7870 /* 5883 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7871 /* 5887 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7872 /* 5891 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner50),
7873 /* 5895 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7874 /* 5897 */ // Combiner Rule #302: merge_of_x_and_undef
7875 /* 5897 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ANYEXT),
7876 /* 5900 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7877 /* 5902 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
7878 /* 5904 */ GIR_EraseRootFromParent_Done,
7879 /* 5905 */ // Label 283: @5905
7880 /* 5905 */ GIM_Try, /*On fail goto*//*Label 284*/ GIMT_Encode4(5946), // Rule ID 435 //
7881 /* 5910 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule303Enabled),
7882 /* 5913 */ // MIs[0] root
7883 /* 5913 */ // No operand predicates
7884 /* 5913 */ // MIs[0] x
7885 /* 5913 */ // No operand predicates
7886 /* 5913 */ // MIs[0] zero
7887 /* 5913 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7888 /* 5917 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7889 /* 5921 */ // MIs[1] Operand 1
7890 /* 5921 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
7891 /* 5932 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner51),
7892 /* 5936 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7893 /* 5938 */ // Combiner Rule #303: merge_of_x_and_zero
7894 /* 5938 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
7895 /* 5941 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7896 /* 5943 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
7897 /* 5945 */ GIR_EraseRootFromParent_Done,
7898 /* 5946 */ // Label 284: @5946
7899 /* 5946 */ GIM_Reject,
7900 /* 5947 */ // Label 282: @5947
7901 /* 5947 */ GIM_Reject,
7902 /* 5948 */ // Label 15: @5948
7903 /* 5948 */ GIM_Try, /*On fail goto*//*Label 285*/ GIMT_Encode4(6019),
7904 /* 5953 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
7905 /* 5956 */ GIM_Try, /*On fail goto*//*Label 286*/ GIMT_Encode4(5974), // Rule ID 111 //
7906 /* 5961 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
7907 /* 5964 */ // MIs[0] root
7908 /* 5964 */ // No operand predicates
7909 /* 5964 */ // MIs[0] srcs
7910 /* 5964 */ // No operand predicates
7911 /* 5964 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
7912 /* 5968 */ // Combiner Rule #85: propagate_undef_all_ops_build_vector
7913 /* 5968 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7914 /* 5971 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7915 /* 5973 */ GIR_EraseRootFromParent_Done,
7916 /* 5974 */ // Label 286: @5974
7917 /* 5974 */ GIM_Try, /*On fail goto*//*Label 287*/ GIMT_Encode4(5985), // Rule ID 76 //
7918 /* 5979 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
7919 /* 5982 */ // MIs[0] dst
7920 /* 5982 */ // No operand predicates
7921 /* 5982 */ // MIs[0] srcs
7922 /* 5982 */ // No operand predicates
7923 /* 5982 */ // Combiner Rule #72: extract_all_elts_from_build_vector
7924 /* 5982 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner26),
7925 /* 5985 */ // Label 287: @5985
7926 /* 5985 */ GIM_Try, /*On fail goto*//*Label 288*/ GIMT_Encode4(5996), // Rule ID 151 //
7927 /* 5990 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
7928 /* 5993 */ // MIs[0] build_vector
7929 /* 5993 */ // No operand predicates
7930 /* 5993 */ // MIs[0] srcs
7931 /* 5993 */ // No operand predicates
7932 /* 5993 */ // Combiner Rule #106: buildvector_identity_fold_bv
7933 /* 5993 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
7934 /* 5996 */ // Label 288: @5996
7935 /* 5996 */ GIM_Try, /*On fail goto*//*Label 289*/ GIMT_Encode4(6007), // Rule ID 426 //
7936 /* 6001 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule294Enabled),
7937 /* 6004 */ // MIs[0] dst
7938 /* 6004 */ // No operand predicates
7939 /* 6004 */ // MIs[0] unused
7940 /* 6004 */ // No operand predicates
7941 /* 6004 */ // Combiner Rule #294: combine_use_vector_truncate
7942 /* 6004 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner112),
7943 /* 6007 */ // Label 289: @6007
7944 /* 6007 */ GIM_Try, /*On fail goto*//*Label 290*/ GIMT_Encode4(6018), // Rule ID 436 //
7945 /* 6012 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule304Enabled),
7946 /* 6015 */ // MIs[0] dst
7947 /* 6015 */ // No operand predicates
7948 /* 6015 */ // MIs[0] unused
7949 /* 6015 */ // No operand predicates
7950 /* 6015 */ // Combiner Rule #304: combine_build_unmerge
7951 /* 6015 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
7952 /* 6018 */ // Label 290: @6018
7953 /* 6018 */ GIM_Reject,
7954 /* 6019 */ // Label 285: @6019
7955 /* 6019 */ GIM_Reject,
7956 /* 6020 */ // Label 16: @6020
7957 /* 6020 */ GIM_Try, /*On fail goto*//*Label 291*/ GIMT_Encode4(6034), // Rule ID 152 //
7958 /* 6025 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
7959 /* 6028 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
7960 /* 6031 */ // MIs[0] build_vector
7961 /* 6031 */ // No operand predicates
7962 /* 6031 */ // MIs[0] srcs
7963 /* 6031 */ // No operand predicates
7964 /* 6031 */ // Combiner Rule #107: buildvector_identity_fold_bvt
7965 /* 6031 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
7966 /* 6034 */ // Label 291: @6034
7967 /* 6034 */ GIM_Reject,
7968 /* 6035 */ // Label 17: @6035
7969 /* 6035 */ GIM_Try, /*On fail goto*//*Label 292*/ GIMT_Encode4(6049), // Rule ID 419 //
7970 /* 6040 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule287Enabled),
7971 /* 6043 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
7972 /* 6046 */ // MIs[0] dst
7973 /* 6046 */ // No operand predicates
7974 /* 6046 */ // MIs[0] srcs
7975 /* 6046 */ // No operand predicates
7976 /* 6046 */ // Combiner Rule #287: combine_concat_vector
7977 /* 6046 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
7978 /* 6049 */ // Label 292: @6049
7979 /* 6049 */ GIM_Reject,
7980 /* 6050 */ // Label 18: @6050
7981 /* 6050 */ GIM_Try, /*On fail goto*//*Label 293*/ GIMT_Encode4(6082), // Rule ID 142 //
7982 /* 6055 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule98Enabled),
7983 /* 6058 */ // MIs[0] dst
7984 /* 6058 */ // No operand predicates
7985 /* 6058 */ // MIs[0] t
7986 /* 6058 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7987 /* 6062 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
7988 /* 6066 */ // MIs[1] ptr
7989 /* 6066 */ // No operand predicates
7990 /* 6066 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner14),
7991 /* 6070 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7992 /* 6072 */ // Combiner Rule #98: i2p_to_p2i_same_size
7993 /* 6072 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7994 /* 6075 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7995 /* 6077 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
7996 /* 6081 */ GIR_EraseRootFromParent_Done,
7997 /* 6082 */ // Label 293: @6082
7998 /* 6082 */ GIM_Try, /*On fail goto*//*Label 294*/ GIMT_Encode4(6114), // Rule ID 143 //
7999 /* 6087 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule99Enabled),
8000 /* 6090 */ // MIs[0] dst
8001 /* 6090 */ // No operand predicates
8002 /* 6090 */ // MIs[0] t
8003 /* 6090 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8004 /* 6094 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
8005 /* 6098 */ // MIs[1] ptr
8006 /* 6098 */ // No operand predicates
8007 /* 6098 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner15),
8008 /* 6102 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8009 /* 6104 */ // Combiner Rule #99: i2p_to_p2i_zext
8010 /* 6104 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
8011 /* 6107 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8012 /* 6109 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
8013 /* 6113 */ GIR_EraseRootFromParent_Done,
8014 /* 6114 */ // Label 294: @6114
8015 /* 6114 */ GIM_Try, /*On fail goto*//*Label 295*/ GIMT_Encode4(6146), // Rule ID 144 //
8016 /* 6119 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule100Enabled),
8017 /* 6122 */ // MIs[0] dst
8018 /* 6122 */ // No operand predicates
8019 /* 6122 */ // MIs[0] t
8020 /* 6122 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8021 /* 6126 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
8022 /* 6130 */ // MIs[1] ptr
8023 /* 6130 */ // No operand predicates
8024 /* 6130 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner16),
8025 /* 6134 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8026 /* 6136 */ // Combiner Rule #100: i2p_to_p2i_trunc
8027 /* 6136 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_TRUNC),
8028 /* 6139 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8029 /* 6141 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
8030 /* 6145 */ GIR_EraseRootFromParent_Done,
8031 /* 6146 */ // Label 295: @6146
8032 /* 6146 */ GIM_Try, /*On fail goto*//*Label 296*/ GIMT_Encode4(6170), // Rule ID 100 //
8033 /* 6151 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
8034 /* 6154 */ // MIs[0] dst
8035 /* 6154 */ // No operand predicates
8036 /* 6154 */ // MIs[0] __unary_undef_to_undef_match_0.x
8037 /* 6154 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8038 /* 6158 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8039 /* 6162 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8040 /* 6164 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[3]]
8041 /* 6164 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8042 /* 6167 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8043 /* 6169 */ GIR_EraseRootFromParent_Done,
8044 /* 6170 */ // Label 296: @6170
8045 /* 6170 */ GIM_Reject,
8046 /* 6171 */ // Label 19: @6171
8047 /* 6171 */ GIM_Try, /*On fail goto*//*Label 297*/ GIMT_Encode4(6204), // Rule ID 141 //
8048 /* 6176 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled),
8049 /* 6179 */ // MIs[0] dst
8050 /* 6179 */ // No operand predicates
8051 /* 6179 */ // MIs[0] mid
8052 /* 6179 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8053 /* 6183 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_PTRTOINT),
8054 /* 6187 */ // MIs[1] x
8055 /* 6187 */ // No operand predicates
8056 /* 6187 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
8057 /* 6191 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
8058 /* 6196 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8059 /* 6198 */ // Combiner Rule #97: p2i_to_i2p
8060 /* 6198 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
8061 /* 6203 */ GIR_EraseRootFromParent_Done,
8062 /* 6204 */ // Label 297: @6204
8063 /* 6204 */ GIM_Try, /*On fail goto*//*Label 298*/ GIMT_Encode4(6228), // Rule ID 101 //
8064 /* 6209 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
8065 /* 6212 */ // MIs[0] dst
8066 /* 6212 */ // No operand predicates
8067 /* 6212 */ // MIs[0] __unary_undef_to_undef_match_0.x
8068 /* 6212 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8069 /* 6216 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8070 /* 6220 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8071 /* 6222 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[4]]
8072 /* 6222 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8073 /* 6225 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8074 /* 6227 */ GIR_EraseRootFromParent_Done,
8075 /* 6228 */ // Label 298: @6228
8076 /* 6228 */ GIM_Reject,
8077 /* 6229 */ // Label 20: @6229
8078 /* 6229 */ GIM_Try, /*On fail goto*//*Label 299*/ GIMT_Encode4(6262), // Rule ID 155 //
8079 /* 6234 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled),
8080 /* 6237 */ // MIs[0] dst
8081 /* 6237 */ // No operand predicates
8082 /* 6237 */ // MIs[0] src1
8083 /* 6237 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8084 /* 6241 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
8085 /* 6245 */ // MIs[1] src0
8086 /* 6245 */ // No operand predicates
8087 /* 6245 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
8088 /* 6249 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
8089 /* 6254 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8090 /* 6256 */ // Combiner Rule #110: bitcast_bitcast_fold
8091 /* 6256 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
8092 /* 6261 */ GIR_EraseRootFromParent_Done,
8093 /* 6262 */ // Label 299: @6262
8094 /* 6262 */ GIM_Try, /*On fail goto*//*Label 300*/ GIMT_Encode4(6294), // Rule ID 156 //
8095 /* 6267 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
8096 /* 6270 */ // MIs[0] dst
8097 /* 6270 */ // No operand predicates
8098 /* 6270 */ // MIs[0] src1
8099 /* 6270 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8100 /* 6274 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
8101 /* 6278 */ // MIs[1] src0
8102 /* 6278 */ // No operand predicates
8103 /* 6278 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner18),
8104 /* 6282 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8105 /* 6284 */ // Combiner Rule #111: bitcast_bitcast_to_bitcast
8106 /* 6284 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_BITCAST),
8107 /* 6287 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8108 /* 6289 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src0
8109 /* 6293 */ GIR_EraseRootFromParent_Done,
8110 /* 6294 */ // Label 300: @6294
8111 /* 6294 */ GIM_Try, /*On fail goto*//*Label 301*/ GIMT_Encode4(6318), // Rule ID 98 //
8112 /* 6299 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
8113 /* 6302 */ // MIs[0] dst
8114 /* 6302 */ // No operand predicates
8115 /* 6302 */ // MIs[0] __unary_undef_to_undef_match_0.x
8116 /* 6302 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8117 /* 6306 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8118 /* 6310 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8119 /* 6312 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[1]]
8120 /* 6312 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8121 /* 6315 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8122 /* 6317 */ GIR_EraseRootFromParent_Done,
8123 /* 6318 */ // Label 301: @6318
8124 /* 6318 */ GIM_Reject,
8125 /* 6319 */ // Label 21: @6319
8126 /* 6319 */ GIM_Try, /*On fail goto*//*Label 302*/ GIMT_Encode4(6348), // Rule ID 25 //
8127 /* 6324 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
8128 /* 6327 */ // MIs[0] dst
8129 /* 6327 */ // No operand predicates
8130 /* 6327 */ // MIs[0] src
8131 /* 6327 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8132 /* 6331 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREEZE),
8133 /* 6335 */ // MIs[1] __idempotent_prop_match_0.x
8134 /* 6335 */ // No operand predicates
8135 /* 6335 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8136 /* 6340 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8137 /* 6342 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[0]]
8138 /* 6342 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8139 /* 6347 */ GIR_EraseRootFromParent_Done,
8140 /* 6348 */ // Label 302: @6348
8141 /* 6348 */ GIM_Try, /*On fail goto*//*Label 303*/ GIMT_Encode4(6371), // Rule ID 50 //
8142 /* 6353 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
8143 /* 6356 */ // MIs[0] root
8144 /* 6356 */ // No operand predicates
8145 /* 6356 */ // MIs[0] src
8146 /* 6356 */ // No operand predicates
8147 /* 6356 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
8148 /* 6360 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8149 /* 6365 */ // Combiner Rule #46: freeze_of_non_undef_non_poison
8150 /* 6365 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8151 /* 6370 */ GIR_EraseRootFromParent_Done,
8152 /* 6371 */ // Label 303: @6371
8153 /* 6371 */ GIM_Try, /*On fail goto*//*Label 304*/ GIMT_Encode4(6382), // Rule ID 51 //
8154 /* 6376 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
8155 /* 6379 */ // MIs[0] dst
8156 /* 6379 */ // No operand predicates
8157 /* 6379 */ // MIs[0] src
8158 /* 6379 */ // No operand predicates
8159 /* 6379 */ // Combiner Rule #47: push_freeze_to_prevent_poison_from_propagating
8160 /* 6379 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
8161 /* 6382 */ // Label 304: @6382
8162 /* 6382 */ GIM_Reject,
8163 /* 6383 */ // Label 22: @6383
8164 /* 6383 */ GIM_Try, /*On fail goto*//*Label 305*/ GIMT_Encode4(6404), // Rule ID 215 //
8165 /* 6388 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
8166 /* 6391 */ // MIs[0] dst
8167 /* 6391 */ // No operand predicates
8168 /* 6391 */ // MIs[0] src0
8169 /* 6391 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8170 /* 6395 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8171 /* 6399 */ // MIs[1] cst
8172 /* 6399 */ // No operand predicates
8173 /* 6399 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8174 /* 6401 */ // Combiner Rule #165: constant_fold_intrinsic_trunc
8175 /* 6401 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
8176 /* 6404 */ // Label 305: @6404
8177 /* 6404 */ GIM_Reject,
8178 /* 6405 */ // Label 23: @6405
8179 /* 6405 */ GIM_Try, /*On fail goto*//*Label 306*/ GIMT_Encode4(6426), // Rule ID 216 //
8180 /* 6410 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
8181 /* 6413 */ // MIs[0] dst
8182 /* 6413 */ // No operand predicates
8183 /* 6413 */ // MIs[0] src0
8184 /* 6413 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8185 /* 6417 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8186 /* 6421 */ // MIs[1] cst
8187 /* 6421 */ // No operand predicates
8188 /* 6421 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8189 /* 6423 */ // Combiner Rule #166: constant_fold_intrinsic_round
8190 /* 6423 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
8191 /* 6426 */ // Label 306: @6426
8192 /* 6426 */ GIM_Reject,
8193 /* 6427 */ // Label 24: @6427
8194 /* 6427 */ GIM_Try, /*On fail goto*//*Label 307*/ GIMT_Encode4(6448), // Rule ID 217 //
8195 /* 6432 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
8196 /* 6435 */ // MIs[0] dst
8197 /* 6435 */ // No operand predicates
8198 /* 6435 */ // MIs[0] src0
8199 /* 6435 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8200 /* 6439 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8201 /* 6443 */ // MIs[1] cst
8202 /* 6443 */ // No operand predicates
8203 /* 6443 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8204 /* 6445 */ // Combiner Rule #167: constant_fold_intrinsic_roundeven
8205 /* 6445 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
8206 /* 6448 */ // Label 307: @6448
8207 /* 6448 */ GIM_Reject,
8208 /* 6449 */ // Label 25: @6449
8209 /* 6449 */ GIM_Try, /*On fail goto*//*Label 308*/ GIMT_Encode4(6460), // Rule ID 77 //
8210 /* 6454 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
8211 /* 6457 */ // MIs[0] root
8212 /* 6457 */ // No operand predicates
8213 /* 6457 */ // MIs[0] mi.ptr
8214 /* 6457 */ // No operand predicates
8215 /* 6457 */ // Combiner Rule #73: extending_loads @ [mi[0]]
8216 /* 6457 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
8217 /* 6460 */ // Label 308: @6460
8218 /* 6460 */ GIM_Reject,
8219 /* 6461 */ // Label 26: @6461
8220 /* 6461 */ GIM_Try, /*On fail goto*//*Label 309*/ GIMT_Encode4(6472), // Rule ID 78 //
8221 /* 6466 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
8222 /* 6469 */ // MIs[0] root
8223 /* 6469 */ // No operand predicates
8224 /* 6469 */ // MIs[0] mi.ptr
8225 /* 6469 */ // No operand predicates
8226 /* 6469 */ // Combiner Rule #73: extending_loads @ [mi[1]]
8227 /* 6469 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
8228 /* 6472 */ // Label 309: @6472
8229 /* 6472 */ GIM_Reject,
8230 /* 6473 */ // Label 27: @6473
8231 /* 6473 */ GIM_Try, /*On fail goto*//*Label 310*/ GIMT_Encode4(6484), // Rule ID 79 //
8232 /* 6478 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
8233 /* 6481 */ // MIs[0] root
8234 /* 6481 */ // No operand predicates
8235 /* 6481 */ // MIs[0] mi.ptr
8236 /* 6481 */ // No operand predicates
8237 /* 6481 */ // Combiner Rule #73: extending_loads @ [mi[2]]
8238 /* 6481 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
8239 /* 6484 */ // Label 310: @6484
8240 /* 6484 */ GIM_Reject,
8241 /* 6485 */ // Label 28: @6485
8242 /* 6485 */ GIM_Try, /*On fail goto*//*Label 311*/ GIMT_Encode4(6508), // Rule ID 113 //
8243 /* 6490 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
8244 /* 6493 */ // MIs[0] val
8245 /* 6493 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/0, // MIs[1]
8246 /* 6497 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8247 /* 6501 */ // MIs[0] ptr
8248 /* 6501 */ // No operand predicates
8249 /* 6501 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
8250 /* 6505 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8251 /* 6507 */ // Combiner Rule #87: erase_undef_store
8252 /* 6507 */ GIR_EraseRootFromParent_Done,
8253 /* 6508 */ // Label 311: @6508
8254 /* 6508 */ GIM_Reject,
8255 /* 6509 */ // Label 29: @6509
8256 /* 6509 */ GIM_Try, /*On fail goto*//*Label 312*/ GIMT_Encode4(6530), // Rule ID 64 //
8257 /* 6514 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled),
8258 /* 6517 */ // MIs[0] root
8259 /* 6517 */ // No operand predicates
8260 /* 6517 */ // MIs[0] select
8261 /* 6517 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8262 /* 6521 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
8263 /* 6525 */ // MIs[1] cond
8264 /* 6525 */ // No operand predicates
8265 /* 6525 */ // MIs[1] true
8266 /* 6525 */ // No operand predicates
8267 /* 6525 */ // MIs[1] false
8268 /* 6525 */ // No operand predicates
8269 /* 6525 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8270 /* 6527 */ // Combiner Rule #60: select_of_anyext
8271 /* 6527 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
8272 /* 6530 */ // Label 312: @6530
8273 /* 6530 */ GIM_Try, /*On fail goto*//*Label 313*/ GIMT_Encode4(6551), // Rule ID 59 //
8274 /* 6535 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
8275 /* 6538 */ // MIs[0] root
8276 /* 6538 */ // No operand predicates
8277 /* 6538 */ // MIs[0] second
8278 /* 6538 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8279 /* 6542 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8280 /* 6546 */ // MIs[1] src
8281 /* 6546 */ // No operand predicates
8282 /* 6546 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8283 /* 6548 */ // Combiner Rule #55: anyext_of_anyext
8284 /* 6548 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
8285 /* 6551 */ // Label 313: @6551
8286 /* 6551 */ GIM_Try, /*On fail goto*//*Label 314*/ GIMT_Encode4(6572), // Rule ID 61 //
8287 /* 6556 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
8288 /* 6559 */ // MIs[0] root
8289 /* 6559 */ // No operand predicates
8290 /* 6559 */ // MIs[0] second
8291 /* 6559 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8292 /* 6563 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
8293 /* 6567 */ // MIs[1] src
8294 /* 6567 */ // No operand predicates
8295 /* 6567 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8296 /* 6569 */ // Combiner Rule #57: anyext_of_sext
8297 /* 6569 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
8298 /* 6572 */ // Label 314: @6572
8299 /* 6572 */ GIM_Try, /*On fail goto*//*Label 315*/ GIMT_Encode4(6593), // Rule ID 60 //
8300 /* 6577 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
8301 /* 6580 */ // MIs[0] root
8302 /* 6580 */ // No operand predicates
8303 /* 6580 */ // MIs[0] second
8304 /* 6580 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8305 /* 6584 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
8306 /* 6588 */ // MIs[1] src
8307 /* 6588 */ // No operand predicates
8308 /* 6588 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8309 /* 6590 */ // Combiner Rule #56: anyext_of_zext
8310 /* 6590 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
8311 /* 6593 */ // Label 315: @6593
8312 /* 6593 */ GIM_Try, /*On fail goto*//*Label 316*/ GIMT_Encode4(6617), // Rule ID 99 //
8313 /* 6598 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
8314 /* 6601 */ // MIs[0] dst
8315 /* 6601 */ // No operand predicates
8316 /* 6601 */ // MIs[0] __unary_undef_to_undef_match_0.x
8317 /* 6601 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8318 /* 6605 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8319 /* 6609 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8320 /* 6611 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[2]]
8321 /* 6611 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8322 /* 6614 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8323 /* 6616 */ GIR_EraseRootFromParent_Done,
8324 /* 6617 */ // Label 316: @6617
8325 /* 6617 */ GIM_Try, /*On fail goto*//*Label 317*/ GIMT_Encode4(6628), // Rule ID 145 //
8326 /* 6622 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
8327 /* 6625 */ // MIs[0] dst
8328 /* 6625 */ // No operand predicates
8329 /* 6625 */ // MIs[0] src
8330 /* 6625 */ // No operand predicates
8331 /* 6625 */ // Combiner Rule #101: anyext_trunc_fold
8332 /* 6625 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
8333 /* 6628 */ // Label 317: @6628
8334 /* 6628 */ GIM_Try, /*On fail goto*//*Label 318*/ GIMT_Encode4(6639), // Rule ID 314 //
8335 /* 6633 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
8336 /* 6636 */ // MIs[0] dst
8337 /* 6636 */ // No operand predicates
8338 /* 6636 */ // MIs[0] d.src
8339 /* 6636 */ // No operand predicates
8340 /* 6636 */ // Combiner Rule #213: constant_fold_cast_op @ [d[2]]
8341 /* 6636 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
8342 /* 6639 */ // Label 318: @6639
8343 /* 6639 */ GIM_Reject,
8344 /* 6640 */ // Label 30: @6640
8345 /* 6640 */ GIM_Try, /*On fail goto*//*Label 319*/ GIMT_Encode4(6661), // Rule ID 65 //
8346 /* 6645 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule61Enabled),
8347 /* 6648 */ // MIs[0] root
8348 /* 6648 */ // No operand predicates
8349 /* 6648 */ // MIs[0] select
8350 /* 6648 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8351 /* 6652 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
8352 /* 6656 */ // MIs[1] cond
8353 /* 6656 */ // No operand predicates
8354 /* 6656 */ // MIs[1] true
8355 /* 6656 */ // No operand predicates
8356 /* 6656 */ // MIs[1] false
8357 /* 6656 */ // No operand predicates
8358 /* 6656 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8359 /* 6658 */ // Combiner Rule #61: select_of_truncate
8360 /* 6658 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
8361 /* 6661 */ // Label 319: @6661
8362 /* 6661 */ GIM_Try, /*On fail goto*//*Label 320*/ GIMT_Encode4(6690), // Rule ID 67 //
8363 /* 6666 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled),
8364 /* 6669 */ // MIs[0] root
8365 /* 6669 */ // No operand predicates
8366 /* 6669 */ // MIs[0] binop
8367 /* 6669 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8368 /* 6673 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
8369 /* 6677 */ // MIs[1] x
8370 /* 6677 */ // No operand predicates
8371 /* 6677 */ // MIs[1] const
8372 /* 6677 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8373 /* 6681 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8374 /* 6685 */ // MIs[2] imm
8375 /* 6685 */ // No operand predicates
8376 /* 6685 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8377 /* 6687 */ // Combiner Rule #63: narrow_binop_add
8378 /* 6687 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
8379 /* 6690 */ // Label 320: @6690
8380 /* 6690 */ GIM_Try, /*On fail goto*//*Label 321*/ GIMT_Encode4(6719), // Rule ID 70 //
8381 /* 6695 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule66Enabled),
8382 /* 6698 */ // MIs[0] root
8383 /* 6698 */ // No operand predicates
8384 /* 6698 */ // MIs[0] binop
8385 /* 6698 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8386 /* 6702 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
8387 /* 6706 */ // MIs[1] x
8388 /* 6706 */ // No operand predicates
8389 /* 6706 */ // MIs[1] const
8390 /* 6706 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8391 /* 6710 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8392 /* 6714 */ // MIs[2] imm
8393 /* 6714 */ // No operand predicates
8394 /* 6714 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8395 /* 6716 */ // Combiner Rule #66: narrow_binop_and
8396 /* 6716 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
8397 /* 6719 */ // Label 321: @6719
8398 /* 6719 */ GIM_Try, /*On fail goto*//*Label 322*/ GIMT_Encode4(6748), // Rule ID 69 //
8399 /* 6724 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
8400 /* 6727 */ // MIs[0] root
8401 /* 6727 */ // No operand predicates
8402 /* 6727 */ // MIs[0] binop
8403 /* 6727 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8404 /* 6731 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
8405 /* 6735 */ // MIs[1] x
8406 /* 6735 */ // No operand predicates
8407 /* 6735 */ // MIs[1] const
8408 /* 6735 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8409 /* 6739 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8410 /* 6743 */ // MIs[2] imm
8411 /* 6743 */ // No operand predicates
8412 /* 6743 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8413 /* 6745 */ // Combiner Rule #65: narrow_binop_mul
8414 /* 6745 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
8415 /* 6748 */ // Label 322: @6748
8416 /* 6748 */ GIM_Try, /*On fail goto*//*Label 323*/ GIMT_Encode4(6777), // Rule ID 71 //
8417 /* 6753 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule67Enabled),
8418 /* 6756 */ // MIs[0] root
8419 /* 6756 */ // No operand predicates
8420 /* 6756 */ // MIs[0] binop
8421 /* 6756 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8422 /* 6760 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
8423 /* 6764 */ // MIs[1] x
8424 /* 6764 */ // No operand predicates
8425 /* 6764 */ // MIs[1] const
8426 /* 6764 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8427 /* 6768 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8428 /* 6772 */ // MIs[2] imm
8429 /* 6772 */ // No operand predicates
8430 /* 6772 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8431 /* 6774 */ // Combiner Rule #67: narrow_binop_or
8432 /* 6774 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
8433 /* 6777 */ // Label 323: @6777
8434 /* 6777 */ GIM_Try, /*On fail goto*//*Label 324*/ GIMT_Encode4(6806), // Rule ID 68 //
8435 /* 6782 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
8436 /* 6785 */ // MIs[0] root
8437 /* 6785 */ // No operand predicates
8438 /* 6785 */ // MIs[0] binop
8439 /* 6785 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8440 /* 6789 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
8441 /* 6793 */ // MIs[1] x
8442 /* 6793 */ // No operand predicates
8443 /* 6793 */ // MIs[1] const
8444 /* 6793 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8445 /* 6797 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8446 /* 6801 */ // MIs[2] imm
8447 /* 6801 */ // No operand predicates
8448 /* 6801 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8449 /* 6803 */ // Combiner Rule #64: narrow_binop_sub
8450 /* 6803 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
8451 /* 6806 */ // Label 324: @6806
8452 /* 6806 */ GIM_Try, /*On fail goto*//*Label 325*/ GIMT_Encode4(6838), // Rule ID 445 //
8453 /* 6811 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule313Enabled),
8454 /* 6814 */ // MIs[0] dst
8455 /* 6814 */ // No operand predicates
8456 /* 6814 */ // MIs[0] min
8457 /* 6814 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8458 /* 6818 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMIN),
8459 /* 6822 */ // MIs[1] x
8460 /* 6822 */ // No operand predicates
8461 /* 6822 */ // MIs[1] y
8462 /* 6822 */ // No operand predicates
8463 /* 6822 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner53),
8464 /* 6826 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8465 /* 6828 */ // Combiner Rule #313: trunc_usatu
8466 /* 6828 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_TRUNC_USAT_U),
8467 /* 6831 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8468 /* 6833 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
8469 /* 6837 */ GIR_EraseRootFromParent_Done,
8470 /* 6838 */ // Label 325: @6838
8471 /* 6838 */ GIM_Try, /*On fail goto*//*Label 326*/ GIMT_Encode4(6867), // Rule ID 72 //
8472 /* 6843 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
8473 /* 6846 */ // MIs[0] root
8474 /* 6846 */ // No operand predicates
8475 /* 6846 */ // MIs[0] binop
8476 /* 6846 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8477 /* 6850 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
8478 /* 6854 */ // MIs[1] x
8479 /* 6854 */ // No operand predicates
8480 /* 6854 */ // MIs[1] const
8481 /* 6854 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8482 /* 6858 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8483 /* 6862 */ // MIs[2] imm
8484 /* 6862 */ // No operand predicates
8485 /* 6862 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8486 /* 6864 */ // Combiner Rule #68: narrow_binop_xor
8487 /* 6864 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
8488 /* 6867 */ // Label 326: @6867
8489 /* 6867 */ GIM_Try, /*On fail goto*//*Label 327*/ GIMT_Encode4(6888), // Rule ID 54 //
8490 /* 6872 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
8491 /* 6875 */ // MIs[0] root
8492 /* 6875 */ // No operand predicates
8493 /* 6875 */ // MIs[0] ext
8494 /* 6875 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8495 /* 6879 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8496 /* 6883 */ // MIs[1] src
8497 /* 6883 */ // No operand predicates
8498 /* 6883 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8499 /* 6885 */ // Combiner Rule #50: truncate_of_anyext
8500 /* 6885 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
8501 /* 6888 */ // Label 327: @6888
8502 /* 6888 */ GIM_Try, /*On fail goto*//*Label 328*/ GIMT_Encode4(6912), // Rule ID 66 //
8503 /* 6893 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled),
8504 /* 6896 */ // MIs[0] root
8505 /* 6896 */ // No operand predicates
8506 /* 6896 */ // MIs[0] bv
8507 /* 6896 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8508 /* 6900 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
8509 /* 6904 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
8510 /* 6907 */ // MIs[1] unused
8511 /* 6907 */ // No operand predicates
8512 /* 6907 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8513 /* 6909 */ // Combiner Rule #62: buildvector_of_truncate
8514 /* 6909 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
8515 /* 6912 */ // Label 328: @6912
8516 /* 6912 */ GIM_Try, /*On fail goto*//*Label 329*/ GIMT_Encode4(6933), // Rule ID 53 //
8517 /* 6917 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
8518 /* 6920 */ // MIs[0] root
8519 /* 6920 */ // No operand predicates
8520 /* 6920 */ // MIs[0] ext
8521 /* 6920 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8522 /* 6924 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
8523 /* 6928 */ // MIs[1] src
8524 /* 6928 */ // No operand predicates
8525 /* 6928 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8526 /* 6930 */ // Combiner Rule #49: truncate_of_sext
8527 /* 6930 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
8528 /* 6933 */ // Label 329: @6933
8529 /* 6933 */ GIM_Try, /*On fail goto*//*Label 330*/ GIMT_Encode4(6954), // Rule ID 52 //
8530 /* 6938 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
8531 /* 6941 */ // MIs[0] root
8532 /* 6941 */ // No operand predicates
8533 /* 6941 */ // MIs[0] ext
8534 /* 6941 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8535 /* 6945 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
8536 /* 6949 */ // MIs[1] src
8537 /* 6949 */ // No operand predicates
8538 /* 6949 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8539 /* 6951 */ // Combiner Rule #48: truncate_of_zext
8540 /* 6951 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
8541 /* 6954 */ // Label 330: @6954
8542 /* 6954 */ GIM_Try, /*On fail goto*//*Label 331*/ GIMT_Encode4(6978), // Rule ID 97 //
8543 /* 6959 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
8544 /* 6962 */ // MIs[0] dst
8545 /* 6962 */ // No operand predicates
8546 /* 6962 */ // MIs[0] __unary_undef_to_undef_match_0.x
8547 /* 6962 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8548 /* 6966 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8549 /* 6970 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8550 /* 6972 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[0]]
8551 /* 6972 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8552 /* 6975 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8553 /* 6977 */ GIR_EraseRootFromParent_Done,
8554 /* 6978 */ // Label 331: @6978
8555 /* 6978 */ GIM_Try, /*On fail goto*//*Label 332*/ GIMT_Encode4(6999), // Rule ID 73 //
8556 /* 6983 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled),
8557 /* 6986 */ // MIs[0] root
8558 /* 6986 */ // No operand predicates
8559 /* 6986 */ // MIs[0] int
8560 /* 6986 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8561 /* 6990 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8562 /* 6994 */ // MIs[1] imm
8563 /* 6994 */ // No operand predicates
8564 /* 6994 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8565 /* 6996 */ // Combiner Rule #69: integer_of_truncate
8566 /* 6996 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
8567 /* 6999 */ // Label 332: @6999
8568 /* 6999 */ GIM_Try, /*On fail goto*//*Label 333*/ GIMT_Encode4(7010), // Rule ID 153 //
8569 /* 7004 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
8570 /* 7007 */ // MIs[0] dst
8571 /* 7007 */ // No operand predicates
8572 /* 7007 */ // MIs[0] src
8573 /* 7007 */ // No operand predicates
8574 /* 7007 */ // Combiner Rule #108: trunc_buildvector_fold
8575 /* 7007 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
8576 /* 7010 */ // Label 333: @7010
8577 /* 7010 */ GIM_Try, /*On fail goto*//*Label 334*/ GIMT_Encode4(7021), // Rule ID 154 //
8578 /* 7015 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule109Enabled),
8579 /* 7018 */ // MIs[0] dst
8580 /* 7018 */ // No operand predicates
8581 /* 7018 */ // MIs[0] src
8582 /* 7018 */ // No operand predicates
8583 /* 7018 */ // Combiner Rule #109: trunc_lshr_buildvector_fold
8584 /* 7018 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
8585 /* 7021 */ // Label 334: @7021
8586 /* 7021 */ GIM_Try, /*On fail goto*//*Label 335*/ GIMT_Encode4(7032), // Rule ID 204 //
8587 /* 7026 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule154Enabled),
8588 /* 7029 */ // MIs[0] dst
8589 /* 7029 */ // No operand predicates
8590 /* 7029 */ // MIs[0] src
8591 /* 7029 */ // No operand predicates
8592 /* 7029 */ // Combiner Rule #154: trunc_shift
8593 /* 7029 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner60),
8594 /* 7032 */ // Label 335: @7032
8595 /* 7032 */ GIM_Try, /*On fail goto*//*Label 336*/ GIMT_Encode4(7043), // Rule ID 443 //
8596 /* 7037 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule311Enabled),
8597 /* 7040 */ // MIs[0] dst
8598 /* 7040 */ // No operand predicates
8599 /* 7040 */ // MIs[0] src
8600 /* 7040 */ // No operand predicates
8601 /* 7040 */ // Combiner Rule #311: trunc_ssats
8602 /* 7040 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
8603 /* 7043 */ // Label 336: @7043
8604 /* 7043 */ GIM_Try, /*On fail goto*//*Label 337*/ GIMT_Encode4(7054), // Rule ID 444 //
8605 /* 7048 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule312Enabled),
8606 /* 7051 */ // MIs[0] dst
8607 /* 7051 */ // No operand predicates
8608 /* 7051 */ // MIs[0] src
8609 /* 7051 */ // No operand predicates
8610 /* 7051 */ // Combiner Rule #312: trunc_ssatu
8611 /* 7051 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner124),
8612 /* 7054 */ // Label 337: @7054
8613 /* 7054 */ GIM_Reject,
8614 /* 7055 */ // Label 31: @7055
8615 /* 7055 */ GIM_Try, /*On fail goto*//*Label 338*/ GIMT_Encode4(7087), // Rule ID 446 //
8616 /* 7060 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule314Enabled),
8617 /* 7063 */ // MIs[0] dst
8618 /* 7063 */ // No operand predicates
8619 /* 7063 */ // MIs[0] src
8620 /* 7063 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8621 /* 7067 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPTOUI),
8622 /* 7071 */ // MIs[1] x
8623 /* 7071 */ // No operand predicates
8624 /* 7071 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner54),
8625 /* 7075 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8626 /* 7077 */ // Combiner Rule #314: truncusatu_to_fptouisat
8627 /* 7077 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FPTOUI_SAT),
8628 /* 7080 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8629 /* 7082 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
8630 /* 7086 */ GIR_EraseRootFromParent_Done,
8631 /* 7087 */ // Label 338: @7087
8632 /* 7087 */ GIM_Reject,
8633 /* 7088 */ // Label 32: @7088
8634 /* 7088 */ GIM_Try, /*On fail goto*//*Label 339*/ GIMT_Encode4(7109), // Rule ID 58 //
8635 /* 7093 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
8636 /* 7096 */ // MIs[0] root
8637 /* 7096 */ // No operand predicates
8638 /* 7096 */ // MIs[0] second
8639 /* 7096 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8640 /* 7100 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8641 /* 7104 */ // MIs[1] src
8642 /* 7104 */ // No operand predicates
8643 /* 7104 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8644 /* 7106 */ // Combiner Rule #54: sext_of_anyext
8645 /* 7106 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
8646 /* 7109 */ // Label 339: @7109
8647 /* 7109 */ GIM_Try, /*On fail goto*//*Label 340*/ GIMT_Encode4(7130), // Rule ID 57 //
8648 /* 7114 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
8649 /* 7117 */ // MIs[0] root
8650 /* 7117 */ // No operand predicates
8651 /* 7117 */ // MIs[0] second
8652 /* 7117 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8653 /* 7121 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
8654 /* 7125 */ // MIs[1] src
8655 /* 7125 */ // No operand predicates
8656 /* 7125 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8657 /* 7127 */ // Combiner Rule #53: sext_of_sext
8658 /* 7127 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
8659 /* 7130 */ // Label 340: @7130
8660 /* 7130 */ GIM_Try, /*On fail goto*//*Label 341*/ GIMT_Encode4(7151), // Rule ID 420 //
8661 /* 7135 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule288Enabled),
8662 /* 7138 */ // MIs[0] root
8663 /* 7138 */ // No operand predicates
8664 /* 7138 */ // MIs[0] src
8665 /* 7138 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8666 /* 7142 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
8667 /* 7146 */ // MIs[1] x
8668 /* 7146 */ // No operand predicates
8669 /* 7146 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8670 /* 7148 */ // Combiner Rule #288: sext_trunc
8671 /* 7148 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
8672 /* 7151 */ // Label 341: @7151
8673 /* 7151 */ GIM_Try, /*On fail goto*//*Label 342*/ GIMT_Encode4(7162), // Rule ID 313 //
8674 /* 7156 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
8675 /* 7159 */ // MIs[0] dst
8676 /* 7159 */ // No operand predicates
8677 /* 7159 */ // MIs[0] d.src
8678 /* 7159 */ // No operand predicates
8679 /* 7159 */ // Combiner Rule #213: constant_fold_cast_op @ [d[1]]
8680 /* 7159 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
8681 /* 7162 */ // Label 342: @7162
8682 /* 7162 */ GIM_Reject,
8683 /* 7163 */ // Label 33: @7163
8684 /* 7163 */ GIM_Try, /*On fail goto*//*Label 343*/ GIMT_Encode4(7184), // Rule ID 62 //
8685 /* 7168 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
8686 /* 7171 */ // MIs[0] dst
8687 /* 7171 */ // No operand predicates
8688 /* 7171 */ // MIs[0] x
8689 /* 7171 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8690 /* 7175 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
8691 /* 7179 */ // MIs[1] src
8692 /* 7179 */ // No operand predicates
8693 /* 7179 */ // MIs[1] a
8694 /* 7179 */ // No operand predicates
8695 /* 7179 */ // MIs[0] b
8696 /* 7179 */ // No operand predicates
8697 /* 7179 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8698 /* 7181 */ // Combiner Rule #58: sext_inreg_of_sext_inreg
8699 /* 7181 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
8700 /* 7184 */ // Label 343: @7184
8701 /* 7184 */ GIM_Try, /*On fail goto*//*Label 344*/ GIMT_Encode4(7224), // Rule ID 198 //
8702 /* 7189 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
8703 /* 7192 */ // MIs[0] dst
8704 /* 7192 */ // No operand predicates
8705 /* 7192 */ // MIs[0] tmp4
8706 /* 7192 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8707 /* 7196 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8708 /* 7200 */ // MIs[1] tmp2
8709 /* 7200 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8710 /* 7204 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
8711 /* 7208 */ GIM_CheckNumOperands, /*MI*/2, /*Expected*/3,
8712 /* 7211 */ // MIs[2] tmp3
8713 /* 7211 */ // No operand predicates
8714 /* 7211 */ // MIs[2] tmp1
8715 /* 7211 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
8716 /* 7215 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8717 /* 7219 */ // MIs[3] src
8718 /* 7219 */ // No operand predicates
8719 /* 7219 */ // MIs[0] amt
8720 /* 7219 */ // No operand predicates
8721 /* 7219 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
8722 /* 7221 */ // Combiner Rule #148: redundant_aext_unmerge_sext_inreg
8723 /* 7221 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
8724 /* 7224 */ // Label 344: @7224
8725 /* 7224 */ GIM_Try, /*On fail goto*//*Label 345*/ GIMT_Encode4(7256), // Rule ID 196 //
8726 /* 7229 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
8727 /* 7232 */ // MIs[0] dst
8728 /* 7232 */ // No operand predicates
8729 /* 7232 */ // MIs[0] tmp
8730 /* 7232 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8731 /* 7236 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8732 /* 7240 */ // MIs[1] src
8733 /* 7240 */ // No operand predicates
8734 /* 7240 */ // MIs[0] amt
8735 /* 7240 */ // No operand predicates
8736 /* 7240 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner29),
8737 /* 7244 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8738 /* 7246 */ // Combiner Rule #146: redundant_aext_sext_inreg
8739 /* 7246 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
8740 /* 7249 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8741 /* 7251 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
8742 /* 7255 */ GIR_EraseRootFromParent_Done,
8743 /* 7256 */ // Label 345: @7256
8744 /* 7256 */ GIM_Try, /*On fail goto*//*Label 346*/ GIMT_Encode4(7296), // Rule ID 197 //
8745 /* 7261 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
8746 /* 7264 */ // MIs[0] dst
8747 /* 7264 */ // No operand predicates
8748 /* 7264 */ // MIs[0] tmp4
8749 /* 7264 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8750 /* 7268 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
8751 /* 7272 */ // MIs[1] tmp2
8752 /* 7272 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8753 /* 7276 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
8754 /* 7280 */ GIM_CheckNumOperands, /*MI*/2, /*Expected*/3,
8755 /* 7283 */ // MIs[2] tmp3
8756 /* 7283 */ // No operand predicates
8757 /* 7283 */ // MIs[2] tmp1
8758 /* 7283 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
8759 /* 7287 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
8760 /* 7291 */ // MIs[3] src
8761 /* 7291 */ // No operand predicates
8762 /* 7291 */ // MIs[0] amt
8763 /* 7291 */ // No operand predicates
8764 /* 7291 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
8765 /* 7293 */ // Combiner Rule #147: redundant_zext_unmerge_sext_inreg
8766 /* 7293 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
8767 /* 7296 */ // Label 346: @7296
8768 /* 7296 */ GIM_Try, /*On fail goto*//*Label 347*/ GIMT_Encode4(7328), // Rule ID 195 //
8769 /* 7301 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
8770 /* 7304 */ // MIs[0] dst
8771 /* 7304 */ // No operand predicates
8772 /* 7304 */ // MIs[0] tmp
8773 /* 7304 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8774 /* 7308 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
8775 /* 7312 */ // MIs[1] src
8776 /* 7312 */ // No operand predicates
8777 /* 7312 */ // MIs[0] amt
8778 /* 7312 */ // No operand predicates
8779 /* 7312 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner29),
8780 /* 7316 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8781 /* 7318 */ // Combiner Rule #145: redundant_zext_sext_inreg
8782 /* 7318 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
8783 /* 7321 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8784 /* 7323 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
8785 /* 7327 */ GIR_EraseRootFromParent_Done,
8786 /* 7328 */ // Label 347: @7328
8787 /* 7328 */ GIM_Try, /*On fail goto*//*Label 348*/ GIMT_Encode4(7351), // Rule ID 194 //
8788 /* 7333 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule144Enabled),
8789 /* 7336 */ // MIs[0] dst
8790 /* 7336 */ // No operand predicates
8791 /* 7336 */ // MIs[0] src
8792 /* 7336 */ // No operand predicates
8793 /* 7336 */ // MIs[0] sz
8794 /* 7336 */ // No operand predicates
8795 /* 7336 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner28),
8796 /* 7340 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8797 /* 7345 */ // Combiner Rule #144: redundant_sext_inreg
8798 /* 7345 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8799 /* 7350 */ GIR_EraseRootFromParent_Done,
8800 /* 7351 */ // Label 348: @7351
8801 /* 7351 */ GIM_Try, /*On fail goto*//*Label 349*/ GIMT_Encode4(7362), // Rule ID 182 //
8802 /* 7356 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled),
8803 /* 7359 */ // MIs[0] dst
8804 /* 7359 */ // No operand predicates
8805 /* 7359 */ // MIs[0] src
8806 /* 7359 */ // No operand predicates
8807 /* 7359 */ // MIs[0] sz
8808 /* 7359 */ // No operand predicates
8809 /* 7359 */ // Combiner Rule #132: sext_inreg_of_load
8810 /* 7359 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
8811 /* 7362 */ // Label 349: @7362
8812 /* 7362 */ GIM_Try, /*On fail goto*//*Label 350*/ GIMT_Encode4(7373), // Rule ID 203 //
8813 /* 7367 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
8814 /* 7370 */ // MIs[0] dst
8815 /* 7370 */ // No operand predicates
8816 /* 7370 */ // MIs[0] src
8817 /* 7370 */ // No operand predicates
8818 /* 7370 */ // MIs[0] imm
8819 /* 7370 */ // No operand predicates
8820 /* 7370 */ // Combiner Rule #153: sext_inreg_to_zext_inreg
8821 /* 7370 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner59),
8822 /* 7373 */ // Label 350: @7373
8823 /* 7373 */ GIM_Try, /*On fail goto*//*Label 351*/ GIMT_Encode4(7384), // Rule ID 274 //
8824 /* 7378 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
8825 /* 7381 */ // MIs[0] dst
8826 /* 7381 */ // No operand predicates
8827 /* 7381 */ // MIs[0] src
8828 /* 7381 */ // No operand predicates
8829 /* 7381 */ // MIs[0] sz
8830 /* 7381 */ // No operand predicates
8831 /* 7381 */ // Combiner Rule #206: bitfield_extract_from_sext_inreg
8832 /* 7381 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner75),
8833 /* 7384 */ // Label 351: @7384
8834 /* 7384 */ GIM_Reject,
8835 /* 7385 */ // Label 34: @7385
8836 /* 7385 */ GIM_Try, /*On fail goto*//*Label 352*/ GIMT_Encode4(7406), // Rule ID 63 //
8837 /* 7390 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled),
8838 /* 7393 */ // MIs[0] root
8839 /* 7393 */ // No operand predicates
8840 /* 7393 */ // MIs[0] select
8841 /* 7393 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8842 /* 7397 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
8843 /* 7401 */ // MIs[1] cond
8844 /* 7401 */ // No operand predicates
8845 /* 7401 */ // MIs[1] true
8846 /* 7401 */ // No operand predicates
8847 /* 7401 */ // MIs[1] false
8848 /* 7401 */ // No operand predicates
8849 /* 7401 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8850 /* 7403 */ // Combiner Rule #59: select_of_zext
8851 /* 7403 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
8852 /* 7406 */ // Label 352: @7406
8853 /* 7406 */ GIM_Try, /*On fail goto*//*Label 353*/ GIMT_Encode4(7427), // Rule ID 56 //
8854 /* 7411 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
8855 /* 7414 */ // MIs[0] root
8856 /* 7414 */ // No operand predicates
8857 /* 7414 */ // MIs[0] second
8858 /* 7414 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8859 /* 7418 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8860 /* 7422 */ // MIs[1] src
8861 /* 7422 */ // No operand predicates
8862 /* 7422 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8863 /* 7424 */ // Combiner Rule #52: zext_of_anyext
8864 /* 7424 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
8865 /* 7427 */ // Label 353: @7427
8866 /* 7427 */ GIM_Try, /*On fail goto*//*Label 354*/ GIMT_Encode4(7454), // Rule ID 421 //
8867 /* 7432 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule289Enabled),
8868 /* 7435 */ // MIs[0] root
8869 /* 7435 */ // No operand predicates
8870 /* 7435 */ // MIs[0] src
8871 /* 7435 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8872 /* 7439 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
8873 /* 7443 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::NoUWrap),
8874 /* 7449 */ // MIs[1] x
8875 /* 7449 */ // No operand predicates
8876 /* 7449 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8877 /* 7451 */ // Combiner Rule #289: zext_trunc
8878 /* 7451 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
8879 /* 7454 */ // Label 354: @7454
8880 /* 7454 */ GIM_Try, /*On fail goto*//*Label 355*/ GIMT_Encode4(7475), // Rule ID 55 //
8881 /* 7459 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
8882 /* 7462 */ // MIs[0] root
8883 /* 7462 */ // No operand predicates
8884 /* 7462 */ // MIs[0] second
8885 /* 7462 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8886 /* 7466 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
8887 /* 7470 */ // MIs[1] src
8888 /* 7470 */ // No operand predicates
8889 /* 7470 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8890 /* 7472 */ // Combiner Rule #51: zext_of_zext
8891 /* 7472 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
8892 /* 7475 */ // Label 355: @7475
8893 /* 7475 */ GIM_Try, /*On fail goto*//*Label 356*/ GIMT_Encode4(7492), // Rule ID 422 //
8894 /* 7480 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule290Enabled),
8895 /* 7483 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NonNeg),
8896 /* 7489 */ // MIs[0] root
8897 /* 7489 */ // No operand predicates
8898 /* 7489 */ // MIs[0] x
8899 /* 7489 */ // No operand predicates
8900 /* 7489 */ // Combiner Rule #290: nneg_zext
8901 /* 7489 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
8902 /* 7492 */ // Label 356: @7492
8903 /* 7492 */ GIM_Try, /*On fail goto*//*Label 357*/ GIMT_Encode4(7503), // Rule ID 202 //
8904 /* 7497 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
8905 /* 7500 */ // MIs[0] dst
8906 /* 7500 */ // No operand predicates
8907 /* 7500 */ // MIs[0] src
8908 /* 7500 */ // No operand predicates
8909 /* 7500 */ // Combiner Rule #152: zext_trunc_fold
8910 /* 7500 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner58),
8911 /* 7503 */ // Label 357: @7503
8912 /* 7503 */ GIM_Try, /*On fail goto*//*Label 358*/ GIMT_Encode4(7514), // Rule ID 312 //
8913 /* 7508 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
8914 /* 7511 */ // MIs[0] dst
8915 /* 7511 */ // No operand predicates
8916 /* 7511 */ // MIs[0] d.src
8917 /* 7511 */ // No operand predicates
8918 /* 7511 */ // Combiner Rule #213: constant_fold_cast_op @ [d[0]]
8919 /* 7511 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
8920 /* 7514 */ // Label 358: @7514
8921 /* 7514 */ GIM_Reject,
8922 /* 7515 */ // Label 35: @7515
8923 /* 7515 */ GIM_Try, /*On fail goto*//*Label 359*/ GIMT_Encode4(7593), // Rule ID 272 //
8924 /* 7520 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
8925 /* 7523 */ // MIs[0] dst
8926 /* 7523 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
8927 /* 7527 */ // MIs[0] binop_dst
8928 /* 7527 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8929 /* 7531 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
8930 /* 7535 */ // MIs[1] x
8931 /* 7535 */ // No operand predicates
8932 /* 7535 */ // MIs[1] c1
8933 /* 7535 */ // No operand predicates
8934 /* 7535 */ // MIs[0] c2
8935 /* 7535 */ // No operand predicates
8936 /* 7535 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner40),
8937 /* 7539 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8938 /* 7541 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
8939 /* 7544 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8940 /* 7547 */ // Combiner Rule #204: commute_shift_add
8941 /* 7547 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
8942 /* 7550 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8943 /* 7555 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
8944 /* 7559 */ GIR_RootToRootCopy, /*OpIdx*/2, // c2
8945 /* 7561 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
8946 /* 7565 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8947 /* 7570 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/2, // c1
8948 /* 7574 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // c2
8949 /* 7578 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
8950 /* 7582 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
8951 /* 7586 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
8952 /* 7589 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
8953 /* 7592 */ GIR_EraseRootFromParent_Done,
8954 /* 7593 */ // Label 359: @7593
8955 /* 7593 */ GIM_Try, /*On fail goto*//*Label 360*/ GIMT_Encode4(7671), // Rule ID 273 //
8956 /* 7598 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule205Enabled),
8957 /* 7601 */ // MIs[0] dst
8958 /* 7601 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
8959 /* 7605 */ // MIs[0] binop_dst
8960 /* 7605 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8961 /* 7609 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
8962 /* 7613 */ // MIs[1] x
8963 /* 7613 */ // No operand predicates
8964 /* 7613 */ // MIs[1] c1
8965 /* 7613 */ // No operand predicates
8966 /* 7613 */ // MIs[0] c2
8967 /* 7613 */ // No operand predicates
8968 /* 7613 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner40),
8969 /* 7617 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8970 /* 7619 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
8971 /* 7622 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8972 /* 7625 */ // Combiner Rule #205: commute_shift_or
8973 /* 7625 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
8974 /* 7628 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8975 /* 7633 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
8976 /* 7637 */ GIR_RootToRootCopy, /*OpIdx*/2, // c2
8977 /* 7639 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
8978 /* 7643 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8979 /* 7648 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/2, // c1
8980 /* 7652 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // c2
8981 /* 7656 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
8982 /* 7660 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
8983 /* 7664 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
8984 /* 7667 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
8985 /* 7670 */ GIR_EraseRootFromParent_Done,
8986 /* 7671 */ // Label 360: @7671
8987 /* 7671 */ GIM_Try, /*On fail goto*//*Label 361*/ GIMT_Encode4(7706), // Rule ID 48 //
8988 /* 7676 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
8989 /* 7679 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
8990 /* 7685 */ // MIs[0] root
8991 /* 7685 */ // No operand predicates
8992 /* 7685 */ // MIs[0] left
8993 /* 7685 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8994 /* 7689 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
8995 /* 7693 */ // MIs[1] imm
8996 /* 7693 */ // No operand predicates
8997 /* 7693 */ // MIs[0] x
8998 /* 7693 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
8999 /* 7697 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
9000 /* 7701 */ // MIs[2] imm1
9001 /* 7701 */ // No operand predicates
9002 /* 7701 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9003 /* 7703 */ // Combiner Rule #44: shl_of_vscale
9004 /* 7703 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
9005 /* 7706 */ // Label 361: @7706
9006 /* 7706 */ GIM_Try, /*On fail goto*//*Label 362*/ GIMT_Encode4(7727), // Rule ID 90 //
9007 /* 7711 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
9008 /* 7714 */ // MIs[0] dst
9009 /* 7714 */ // No operand predicates
9010 /* 7714 */ // MIs[0] __binop_left_undef_to_zero_match_0.x
9011 /* 7714 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9012 /* 7718 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9013 /* 7722 */ // MIs[0] __binop_left_undef_to_zero_match_0.y
9014 /* 7722 */ // No operand predicates
9015 /* 7722 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9016 /* 7724 */ // Combiner Rule #79: binop_left_undef_to_zero @ [__binop_left_undef_to_zero_match_0[0]]
9017 /* 7724 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
9018 /* 7727 */ // Label 362: @7727
9019 /* 7727 */ GIM_Try, /*On fail goto*//*Label 363*/ GIMT_Encode4(7751), // Rule ID 93 //
9020 /* 7732 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
9021 /* 7735 */ // MIs[0] dst
9022 /* 7735 */ // No operand predicates
9023 /* 7735 */ // MIs[0] __binop_right_undef_to_undef_match_0.x
9024 /* 7735 */ // No operand predicates
9025 /* 7735 */ // MIs[0] __binop_right_undef_to_undef_match_0.y
9026 /* 7735 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9027 /* 7739 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9028 /* 7743 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9029 /* 7745 */ // Combiner Rule #80: binop_right_undef_to_undef @ [__binop_right_undef_to_undef_match_0[0]]
9030 /* 7745 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9031 /* 7748 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9032 /* 7750 */ GIR_EraseRootFromParent_Done,
9033 /* 7751 */ // Label 363: @7751
9034 /* 7751 */ GIM_Try, /*On fail goto*//*Label 364*/ GIMT_Encode4(7774), // Rule ID 122 //
9035 /* 7756 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
9036 /* 7759 */ // MIs[0] dst
9037 /* 7759 */ // No operand predicates
9038 /* 7759 */ // MIs[0] lhs
9039 /* 7759 */ // No operand predicates
9040 /* 7759 */ // MIs[0] Operand 2
9041 /* 7759 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
9042 /* 7763 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9043 /* 7768 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[4]]
9044 /* 7768 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9045 /* 7773 */ GIR_EraseRootFromParent_Done,
9046 /* 7774 */ // Label 364: @7774
9047 /* 7774 */ GIM_Try, /*On fail goto*//*Label 365*/ GIMT_Encode4(7797), // Rule ID 132 //
9048 /* 7779 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
9049 /* 7782 */ // MIs[0] dst
9050 /* 7782 */ // No operand predicates
9051 /* 7782 */ // MIs[0] zero
9052 /* 7782 */ // No operand predicates
9053 /* 7782 */ // MIs[0] rhs
9054 /* 7782 */ // No operand predicates
9055 /* 7782 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
9056 /* 7786 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9057 /* 7791 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[0]]
9058 /* 7791 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9059 /* 7796 */ GIR_EraseRootFromParent_Done,
9060 /* 7797 */ // Label 365: @7797
9061 /* 7797 */ GIM_Try, /*On fail goto*//*Label 366*/ GIMT_Encode4(7808), // Rule ID 167 //
9062 /* 7802 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
9063 /* 7805 */ // MIs[0] root
9064 /* 7805 */ // No operand predicates
9065 /* 7805 */ // MIs[0] mi.shifted
9066 /* 7805 */ // No operand predicates
9067 /* 7805 */ // MIs[0] mi.amt
9068 /* 7805 */ // No operand predicates
9069 /* 7805 */ // Combiner Rule #119: shifts_too_big @ [mi[0]]
9070 /* 7805 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
9071 /* 7808 */ // Label 366: @7808
9072 /* 7808 */ GIM_Try, /*On fail goto*//*Label 367*/ GIMT_Encode4(7819), // Rule ID 183 //
9073 /* 7813 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule133Enabled),
9074 /* 7816 */ // MIs[0] dst
9075 /* 7816 */ // No operand predicates
9076 /* 7816 */ // MIs[0] src0
9077 /* 7816 */ // No operand predicates
9078 /* 7816 */ // MIs[0] src1
9079 /* 7816 */ // No operand predicates
9080 /* 7816 */ // Combiner Rule #133: reduce_shl_of_extend
9081 /* 7816 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner50),
9082 /* 7819 */ // Label 367: @7819
9083 /* 7819 */ GIM_Try, /*On fail goto*//*Label 368*/ GIMT_Encode4(7830), // Rule ID 244 //
9084 /* 7824 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
9085 /* 7827 */ // MIs[0] d
9086 /* 7827 */ // No operand predicates
9087 /* 7827 */ // MIs[0] mi.base
9088 /* 7827 */ // No operand predicates
9089 /* 7827 */ // MIs[0] mi.amt
9090 /* 7827 */ // No operand predicates
9091 /* 7827 */ // Combiner Rule #190: shift_immed_chain @ [mi[0]]
9092 /* 7827 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
9093 /* 7830 */ // Label 368: @7830
9094 /* 7830 */ GIM_Try, /*On fail goto*//*Label 369*/ GIMT_Encode4(7841), // Rule ID 249 //
9095 /* 7835 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9096 /* 7838 */ // MIs[0] d
9097 /* 7838 */ // No operand predicates
9098 /* 7838 */ // MIs[0] mi.base
9099 /* 7838 */ // No operand predicates
9100 /* 7838 */ // MIs[0] mi.amt
9101 /* 7838 */ // No operand predicates
9102 /* 7838 */ // Combiner Rule #191: shift_of_shifted_logic_chain @ [mi[0]]
9103 /* 7838 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
9104 /* 7841 */ // Label 369: @7841
9105 /* 7841 */ GIM_Try, /*On fail goto*//*Label 370*/ GIMT_Encode4(7852), // Rule ID 287 //
9106 /* 7846 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
9107 /* 7849 */ // MIs[0] d
9108 /* 7849 */ // No operand predicates
9109 /* 7849 */ // MIs[0] mi.src0
9110 /* 7849 */ // No operand predicates
9111 /* 7849 */ // MIs[0] mi.src1
9112 /* 7849 */ // No operand predicates
9113 /* 7849 */ // Combiner Rule #210: constant_fold_binop @ [mi[7]]
9114 /* 7849 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
9115 /* 7852 */ // Label 370: @7852
9116 /* 7852 */ GIM_Try, /*On fail goto*//*Label 371*/ GIMT_Encode4(7863), // Rule ID 353 //
9117 /* 7857 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
9118 /* 7860 */ // MIs[0] root
9119 /* 7860 */ // No operand predicates
9120 /* 7860 */ // MIs[0] mi.x
9121 /* 7860 */ // No operand predicates
9122 /* 7860 */ // MIs[0] mi.y
9123 /* 7860 */ // No operand predicates
9124 /* 7860 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[12]]
9125 /* 7860 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
9126 /* 7863 */ // Label 371: @7863
9127 /* 7863 */ GIM_Reject,
9128 /* 7864 */ // Label 36: @7864
9129 /* 7864 */ GIM_Try, /*On fail goto*//*Label 372*/ GIMT_Encode4(7953), // Rule ID 464 //
9130 /* 7869 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule329Enabled),
9131 /* 7872 */ // MIs[0] dst
9132 /* 7872 */ // No operand predicates
9133 /* 7872 */ // MIs[0] sum
9134 /* 7872 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9135 /* 7876 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
9136 /* 7880 */ // MIs[1] inner
9137 /* 7880 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
9138 /* 7884 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
9139 /* 7888 */ // MIs[2] ext1
9140 /* 7888 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
9141 /* 7892 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
9142 /* 7896 */ // MIs[3] x
9143 /* 7896 */ GIM_RecordRegType, /*MI*/3, /*Op*/1, /*TempTypeIdx*/255,
9144 /* 7900 */ // MIs[2] ext2
9145 /* 7900 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/4, /*MI*/2, /*OpIdx*/2, // MIs[4]
9146 /* 7904 */ GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_ZEXT),
9147 /* 7908 */ // MIs[4] y
9148 /* 7908 */ // No operand predicates
9149 /* 7908 */ // MIs[1] Operand 2
9150 /* 7908 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
9151 /* 7912 */ // MIs[0] Operand 2
9152 /* 7912 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
9153 /* 7916 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner62),
9154 /* 7920 */ GIM_CheckIsSafeToFold, /*NumInsns*/4,
9155 /* 7922 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
9156 /* 7925 */ // Combiner Rule #329: avgceil_u_match
9157 /* 7925 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UAVGCEIL),
9158 /* 7928 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
9159 /* 7933 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // x
9160 /* 7937 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // y
9161 /* 7941 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
9162 /* 7945 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
9163 /* 7949 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9164 /* 7952 */ GIR_EraseRootFromParent_Done,
9165 /* 7953 */ // Label 372: @7953
9166 /* 7953 */ GIM_Try, /*On fail goto*//*Label 373*/ GIMT_Encode4(8030), // Rule ID 462 //
9167 /* 7958 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule327Enabled),
9168 /* 7961 */ // MIs[0] dst
9169 /* 7961 */ // No operand predicates
9170 /* 7961 */ // MIs[0] sum
9171 /* 7961 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9172 /* 7965 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
9173 /* 7969 */ // MIs[1] ext1
9174 /* 7969 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
9175 /* 7973 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
9176 /* 7977 */ // MIs[2] x
9177 /* 7977 */ GIM_RecordRegType, /*MI*/2, /*Op*/1, /*TempTypeIdx*/255,
9178 /* 7981 */ // MIs[1] ext2
9179 /* 7981 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
9180 /* 7985 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
9181 /* 7989 */ // MIs[3] y
9182 /* 7989 */ // No operand predicates
9183 /* 7989 */ // MIs[0] Operand 2
9184 /* 7989 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
9185 /* 7993 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner60),
9186 /* 7997 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
9187 /* 7999 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
9188 /* 8002 */ // Combiner Rule #327: avgfloor_u_match
9189 /* 8002 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UAVGFLOOR),
9190 /* 8005 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
9191 /* 8010 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // x
9192 /* 8014 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // y
9193 /* 8018 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
9194 /* 8022 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
9195 /* 8026 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9196 /* 8029 */ GIR_EraseRootFromParent_Done,
9197 /* 8030 */ // Label 373: @8030
9198 /* 8030 */ GIM_Try, /*On fail goto*//*Label 374*/ GIMT_Encode4(8059), // Rule ID 447 //
9199 /* 8035 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule315Enabled),
9200 /* 8038 */ // MIs[0] dst
9201 /* 8038 */ // No operand predicates
9202 /* 8038 */ // MIs[0] d2
9203 /* 8038 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9204 /* 8042 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
9205 /* 8046 */ // MIs[1] d1
9206 /* 8046 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
9207 /* 8050 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
9208 /* 8054 */ // MIs[2] x
9209 /* 8054 */ // No operand predicates
9210 /* 8054 */ // MIs[2] y
9211 /* 8054 */ // No operand predicates
9212 /* 8054 */ // MIs[0] z
9213 /* 8054 */ // No operand predicates
9214 /* 8054 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9215 /* 8056 */ // Combiner Rule #315: lshr_of_trunc_of_lshr
9216 /* 8056 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner125),
9217 /* 8059 */ // Label 374: @8059
9218 /* 8059 */ GIM_Try, /*On fail goto*//*Label 375*/ GIMT_Encode4(8083), // Rule ID 95 //
9219 /* 8064 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
9220 /* 8067 */ // MIs[0] dst
9221 /* 8067 */ // No operand predicates
9222 /* 8067 */ // MIs[0] __binop_right_undef_to_undef_match_0.x
9223 /* 8067 */ // No operand predicates
9224 /* 8067 */ // MIs[0] __binop_right_undef_to_undef_match_0.y
9225 /* 8067 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9226 /* 8071 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9227 /* 8075 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9228 /* 8077 */ // Combiner Rule #80: binop_right_undef_to_undef @ [__binop_right_undef_to_undef_match_0[2]]
9229 /* 8077 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9230 /* 8080 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9231 /* 8082 */ GIR_EraseRootFromParent_Done,
9232 /* 8083 */ // Label 375: @8083
9233 /* 8083 */ GIM_Try, /*On fail goto*//*Label 376*/ GIMT_Encode4(8106), // Rule ID 124 //
9234 /* 8088 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
9235 /* 8091 */ // MIs[0] dst
9236 /* 8091 */ // No operand predicates
9237 /* 8091 */ // MIs[0] lhs
9238 /* 8091 */ // No operand predicates
9239 /* 8091 */ // MIs[0] Operand 2
9240 /* 8091 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
9241 /* 8095 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9242 /* 8100 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[6]]
9243 /* 8100 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9244 /* 8105 */ GIR_EraseRootFromParent_Done,
9245 /* 8106 */ // Label 376: @8106
9246 /* 8106 */ GIM_Try, /*On fail goto*//*Label 377*/ GIMT_Encode4(8129), // Rule ID 133 //
9247 /* 8111 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
9248 /* 8114 */ // MIs[0] dst
9249 /* 8114 */ // No operand predicates
9250 /* 8114 */ // MIs[0] zero
9251 /* 8114 */ // No operand predicates
9252 /* 8114 */ // MIs[0] rhs
9253 /* 8114 */ // No operand predicates
9254 /* 8114 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
9255 /* 8118 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9256 /* 8123 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[1]]
9257 /* 8123 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9258 /* 8128 */ GIR_EraseRootFromParent_Done,
9259 /* 8129 */ // Label 377: @8129
9260 /* 8129 */ GIM_Try, /*On fail goto*//*Label 378*/ GIMT_Encode4(8140), // Rule ID 169 //
9261 /* 8134 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
9262 /* 8137 */ // MIs[0] root
9263 /* 8137 */ // No operand predicates
9264 /* 8137 */ // MIs[0] mi.shifted
9265 /* 8137 */ // No operand predicates
9266 /* 8137 */ // MIs[0] mi.amt
9267 /* 8137 */ // No operand predicates
9268 /* 8137 */ // Combiner Rule #119: shifts_too_big @ [mi[2]]
9269 /* 8137 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
9270 /* 8140 */ // Label 378: @8140
9271 /* 8140 */ GIM_Try, /*On fail goto*//*Label 379*/ GIMT_Encode4(8151), // Rule ID 246 //
9272 /* 8145 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
9273 /* 8148 */ // MIs[0] d
9274 /* 8148 */ // No operand predicates
9275 /* 8148 */ // MIs[0] mi.base
9276 /* 8148 */ // No operand predicates
9277 /* 8148 */ // MIs[0] mi.amt
9278 /* 8148 */ // No operand predicates
9279 /* 8148 */ // Combiner Rule #190: shift_immed_chain @ [mi[2]]
9280 /* 8148 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
9281 /* 8151 */ // Label 379: @8151
9282 /* 8151 */ GIM_Try, /*On fail goto*//*Label 380*/ GIMT_Encode4(8162), // Rule ID 251 //
9283 /* 8156 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9284 /* 8159 */ // MIs[0] d
9285 /* 8159 */ // No operand predicates
9286 /* 8159 */ // MIs[0] mi.base
9287 /* 8159 */ // No operand predicates
9288 /* 8159 */ // MIs[0] mi.amt
9289 /* 8159 */ // No operand predicates
9290 /* 8159 */ // Combiner Rule #191: shift_of_shifted_logic_chain @ [mi[2]]
9291 /* 8159 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
9292 /* 8162 */ // Label 380: @8162
9293 /* 8162 */ GIM_Try, /*On fail goto*//*Label 381*/ GIMT_Encode4(8173), // Rule ID 277 //
9294 /* 8167 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
9295 /* 8170 */ // MIs[0] dst
9296 /* 8170 */ // No operand predicates
9297 /* 8170 */ // MIs[0] root.src
9298 /* 8170 */ // No operand predicates
9299 /* 8170 */ // MIs[0] root.amt
9300 /* 8170 */ // No operand predicates
9301 /* 8170 */ // Combiner Rule #208: bitfield_extract_from_shr @ [root[1]]
9302 /* 8170 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
9303 /* 8173 */ // Label 381: @8173
9304 /* 8173 */ GIM_Try, /*On fail goto*//*Label 382*/ GIMT_Encode4(8184), // Rule ID 279 //
9305 /* 8178 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
9306 /* 8181 */ // MIs[0] dst
9307 /* 8181 */ // No operand predicates
9308 /* 8181 */ // MIs[0] root.src
9309 /* 8181 */ // No operand predicates
9310 /* 8181 */ // MIs[0] root.amt
9311 /* 8181 */ // No operand predicates
9312 /* 8181 */ // Combiner Rule #209: bitfield_extract_from_shr_and @ [root[1]]
9313 /* 8181 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
9314 /* 8184 */ // Label 382: @8184
9315 /* 8184 */ GIM_Try, /*On fail goto*//*Label 383*/ GIMT_Encode4(8195), // Rule ID 284 //
9316 /* 8189 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
9317 /* 8192 */ // MIs[0] d
9318 /* 8192 */ // No operand predicates
9319 /* 8192 */ // MIs[0] mi.src0
9320 /* 8192 */ // No operand predicates
9321 /* 8192 */ // MIs[0] mi.src1
9322 /* 8192 */ // No operand predicates
9323 /* 8192 */ // Combiner Rule #210: constant_fold_binop @ [mi[4]]
9324 /* 8192 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
9325 /* 8195 */ // Label 383: @8195
9326 /* 8195 */ GIM_Try, /*On fail goto*//*Label 384*/ GIMT_Encode4(8206), // Rule ID 351 //
9327 /* 8200 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
9328 /* 8203 */ // MIs[0] root
9329 /* 8203 */ // No operand predicates
9330 /* 8203 */ // MIs[0] mi.x
9331 /* 8203 */ // No operand predicates
9332 /* 8203 */ // MIs[0] mi.y
9333 /* 8203 */ // No operand predicates
9334 /* 8203 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[10]]
9335 /* 8203 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
9336 /* 8206 */ // Label 384: @8206
9337 /* 8206 */ GIM_Reject,
9338 /* 8207 */ // Label 37: @8207
9339 /* 8207 */ GIM_Try, /*On fail goto*//*Label 385*/ GIMT_Encode4(8296), // Rule ID 465 //
9340 /* 8212 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule330Enabled),
9341 /* 8215 */ // MIs[0] dst
9342 /* 8215 */ // No operand predicates
9343 /* 8215 */ // MIs[0] sum
9344 /* 8215 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9345 /* 8219 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
9346 /* 8223 */ // MIs[1] inner
9347 /* 8223 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
9348 /* 8227 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
9349 /* 8231 */ // MIs[2] ext1
9350 /* 8231 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
9351 /* 8235 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_SEXT),
9352 /* 8239 */ // MIs[3] x
9353 /* 8239 */ GIM_RecordRegType, /*MI*/3, /*Op*/1, /*TempTypeIdx*/255,
9354 /* 8243 */ // MIs[2] ext2
9355 /* 8243 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/4, /*MI*/2, /*OpIdx*/2, // MIs[4]
9356 /* 8247 */ GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_SEXT),
9357 /* 8251 */ // MIs[4] y
9358 /* 8251 */ // No operand predicates
9359 /* 8251 */ // MIs[1] Operand 2
9360 /* 8251 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
9361 /* 8255 */ // MIs[0] Operand 2
9362 /* 8255 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
9363 /* 8259 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner63),
9364 /* 8263 */ GIM_CheckIsSafeToFold, /*NumInsns*/4,
9365 /* 8265 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
9366 /* 8268 */ // Combiner Rule #330: avgceil_s_match
9367 /* 8268 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SAVGCEIL),
9368 /* 8271 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
9369 /* 8276 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // x
9370 /* 8280 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // y
9371 /* 8284 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
9372 /* 8288 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
9373 /* 8292 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9374 /* 8295 */ GIR_EraseRootFromParent_Done,
9375 /* 8296 */ // Label 385: @8296
9376 /* 8296 */ GIM_Try, /*On fail goto*//*Label 386*/ GIMT_Encode4(8373), // Rule ID 463 //
9377 /* 8301 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule328Enabled),
9378 /* 8304 */ // MIs[0] dst
9379 /* 8304 */ // No operand predicates
9380 /* 8304 */ // MIs[0] sum
9381 /* 8304 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9382 /* 8308 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
9383 /* 8312 */ // MIs[1] ext1
9384 /* 8312 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
9385 /* 8316 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
9386 /* 8320 */ // MIs[2] x
9387 /* 8320 */ GIM_RecordRegType, /*MI*/2, /*Op*/1, /*TempTypeIdx*/255,
9388 /* 8324 */ // MIs[1] ext2
9389 /* 8324 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
9390 /* 8328 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_SEXT),
9391 /* 8332 */ // MIs[3] y
9392 /* 8332 */ // No operand predicates
9393 /* 8332 */ // MIs[0] Operand 2
9394 /* 8332 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
9395 /* 8336 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner61),
9396 /* 8340 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
9397 /* 8342 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
9398 /* 8345 */ // Combiner Rule #328: avgfloor_s_match
9399 /* 8345 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SAVGFLOOR),
9400 /* 8348 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
9401 /* 8353 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // x
9402 /* 8357 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // y
9403 /* 8361 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
9404 /* 8365 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
9405 /* 8369 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9406 /* 8372 */ GIR_EraseRootFromParent_Done,
9407 /* 8373 */ // Label 386: @8373
9408 /* 8373 */ GIM_Try, /*On fail goto*//*Label 387*/ GIMT_Encode4(8397), // Rule ID 94 //
9409 /* 8378 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
9410 /* 8381 */ // MIs[0] dst
9411 /* 8381 */ // No operand predicates
9412 /* 8381 */ // MIs[0] __binop_right_undef_to_undef_match_0.x
9413 /* 8381 */ // No operand predicates
9414 /* 8381 */ // MIs[0] __binop_right_undef_to_undef_match_0.y
9415 /* 8381 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9416 /* 8385 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9417 /* 8389 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9418 /* 8391 */ // Combiner Rule #80: binop_right_undef_to_undef @ [__binop_right_undef_to_undef_match_0[1]]
9419 /* 8391 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9420 /* 8394 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9421 /* 8396 */ GIR_EraseRootFromParent_Done,
9422 /* 8397 */ // Label 387: @8397
9423 /* 8397 */ GIM_Try, /*On fail goto*//*Label 388*/ GIMT_Encode4(8420), // Rule ID 123 //
9424 /* 8402 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
9425 /* 8405 */ // MIs[0] dst
9426 /* 8405 */ // No operand predicates
9427 /* 8405 */ // MIs[0] lhs
9428 /* 8405 */ // No operand predicates
9429 /* 8405 */ // MIs[0] Operand 2
9430 /* 8405 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
9431 /* 8409 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9432 /* 8414 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[5]]
9433 /* 8414 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9434 /* 8419 */ GIR_EraseRootFromParent_Done,
9435 /* 8420 */ // Label 388: @8420
9436 /* 8420 */ GIM_Try, /*On fail goto*//*Label 389*/ GIMT_Encode4(8443), // Rule ID 134 //
9437 /* 8425 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
9438 /* 8428 */ // MIs[0] dst
9439 /* 8428 */ // No operand predicates
9440 /* 8428 */ // MIs[0] zero
9441 /* 8428 */ // No operand predicates
9442 /* 8428 */ // MIs[0] rhs
9443 /* 8428 */ // No operand predicates
9444 /* 8428 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
9445 /* 8432 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9446 /* 8437 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[2]]
9447 /* 8437 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9448 /* 8442 */ GIR_EraseRootFromParent_Done,
9449 /* 8443 */ // Label 389: @8443
9450 /* 8443 */ GIM_Try, /*On fail goto*//*Label 390*/ GIMT_Encode4(8454), // Rule ID 168 //
9451 /* 8448 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
9452 /* 8451 */ // MIs[0] root
9453 /* 8451 */ // No operand predicates
9454 /* 8451 */ // MIs[0] mi.shifted
9455 /* 8451 */ // No operand predicates
9456 /* 8451 */ // MIs[0] mi.amt
9457 /* 8451 */ // No operand predicates
9458 /* 8451 */ // Combiner Rule #119: shifts_too_big @ [mi[1]]
9459 /* 8451 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
9460 /* 8454 */ // Label 390: @8454
9461 /* 8454 */ GIM_Try, /*On fail goto*//*Label 391*/ GIMT_Encode4(8465), // Rule ID 180 //
9462 /* 8459 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule130Enabled),
9463 /* 8462 */ // MIs[0] dst
9464 /* 8462 */ // No operand predicates
9465 /* 8462 */ // MIs[0] src1
9466 /* 8462 */ // No operand predicates
9467 /* 8462 */ // MIs[0] src2
9468 /* 8462 */ // No operand predicates
9469 /* 8462 */ // Combiner Rule #130: shl_ashr_to_sext_inreg
9470 /* 8462 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
9471 /* 8465 */ // Label 391: @8465
9472 /* 8465 */ GIM_Try, /*On fail goto*//*Label 392*/ GIMT_Encode4(8476), // Rule ID 245 //
9473 /* 8470 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
9474 /* 8473 */ // MIs[0] d
9475 /* 8473 */ // No operand predicates
9476 /* 8473 */ // MIs[0] mi.base
9477 /* 8473 */ // No operand predicates
9478 /* 8473 */ // MIs[0] mi.amt
9479 /* 8473 */ // No operand predicates
9480 /* 8473 */ // Combiner Rule #190: shift_immed_chain @ [mi[1]]
9481 /* 8473 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
9482 /* 8476 */ // Label 392: @8476
9483 /* 8476 */ GIM_Try, /*On fail goto*//*Label 393*/ GIMT_Encode4(8487), // Rule ID 250 //
9484 /* 8481 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9485 /* 8484 */ // MIs[0] d
9486 /* 8484 */ // No operand predicates
9487 /* 8484 */ // MIs[0] mi.base
9488 /* 8484 */ // No operand predicates
9489 /* 8484 */ // MIs[0] mi.amt
9490 /* 8484 */ // No operand predicates
9491 /* 8484 */ // Combiner Rule #191: shift_of_shifted_logic_chain @ [mi[1]]
9492 /* 8484 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
9493 /* 8487 */ // Label 393: @8487
9494 /* 8487 */ GIM_Try, /*On fail goto*//*Label 394*/ GIMT_Encode4(8498), // Rule ID 276 //
9495 /* 8492 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
9496 /* 8495 */ // MIs[0] dst
9497 /* 8495 */ // No operand predicates
9498 /* 8495 */ // MIs[0] root.src
9499 /* 8495 */ // No operand predicates
9500 /* 8495 */ // MIs[0] root.amt
9501 /* 8495 */ // No operand predicates
9502 /* 8495 */ // Combiner Rule #208: bitfield_extract_from_shr @ [root[0]]
9503 /* 8495 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
9504 /* 8498 */ // Label 394: @8498
9505 /* 8498 */ GIM_Try, /*On fail goto*//*Label 395*/ GIMT_Encode4(8509), // Rule ID 278 //
9506 /* 8503 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
9507 /* 8506 */ // MIs[0] dst
9508 /* 8506 */ // No operand predicates
9509 /* 8506 */ // MIs[0] root.src
9510 /* 8506 */ // No operand predicates
9511 /* 8506 */ // MIs[0] root.amt
9512 /* 8506 */ // No operand predicates
9513 /* 8506 */ // Combiner Rule #209: bitfield_extract_from_shr_and @ [root[0]]
9514 /* 8506 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
9515 /* 8509 */ // Label 395: @8509
9516 /* 8509 */ GIM_Try, /*On fail goto*//*Label 396*/ GIMT_Encode4(8520), // Rule ID 283 //
9517 /* 8514 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
9518 /* 8517 */ // MIs[0] d
9519 /* 8517 */ // No operand predicates
9520 /* 8517 */ // MIs[0] mi.src0
9521 /* 8517 */ // No operand predicates
9522 /* 8517 */ // MIs[0] mi.src1
9523 /* 8517 */ // No operand predicates
9524 /* 8517 */ // Combiner Rule #210: constant_fold_binop @ [mi[3]]
9525 /* 8517 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
9526 /* 8520 */ // Label 396: @8520
9527 /* 8520 */ GIM_Try, /*On fail goto*//*Label 397*/ GIMT_Encode4(8531), // Rule ID 352 //
9528 /* 8525 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
9529 /* 8528 */ // MIs[0] root
9530 /* 8528 */ // No operand predicates
9531 /* 8528 */ // MIs[0] mi.x
9532 /* 8528 */ // No operand predicates
9533 /* 8528 */ // MIs[0] mi.y
9534 /* 8528 */ // No operand predicates
9535 /* 8528 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[11]]
9536 /* 8528 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
9537 /* 8531 */ // Label 397: @8531
9538 /* 8531 */ GIM_Reject,
9539 /* 8532 */ // Label 38: @8532
9540 /* 8532 */ GIM_Try, /*On fail goto*//*Label 398*/ GIMT_Encode4(8559), // Rule ID 260 //
9541 /* 8537 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9542 /* 8540 */ // MIs[0] dst
9543 /* 8540 */ // No operand predicates
9544 /* 8540 */ // MIs[0] x
9545 /* 8540 */ // No operand predicates
9546 /* 8540 */ // MIs[0] x
9547 /* 8540 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
9548 /* 8545 */ // MIs[0] amt
9549 /* 8545 */ // No operand predicates
9550 /* 8545 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner36),
9551 /* 8549 */ // Combiner Rule #195: funnel_shift_to_rotate_left
9552 /* 8549 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ROTL),
9553 /* 8552 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9554 /* 8554 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
9555 /* 8556 */ GIR_RootToRootCopy, /*OpIdx*/3, // amt
9556 /* 8558 */ GIR_EraseRootFromParent_Done,
9557 /* 8559 */ // Label 398: @8559
9558 /* 8559 */ GIM_Try, /*On fail goto*//*Label 399*/ GIMT_Encode4(8579), // Rule ID 263 //
9559 /* 8564 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
9560 /* 8567 */ // MIs[0] x
9561 /* 8567 */ // No operand predicates
9562 /* 8567 */ // MIs[0] y
9563 /* 8567 */ // No operand predicates
9564 /* 8567 */ // MIs[0] z
9565 /* 8567 */ // No operand predicates
9566 /* 8567 */ // MIs[0] Operand 3
9567 /* 8567 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
9568 /* 8571 */ // Combiner Rule #198: funnel_shift_left_zero
9569 /* 8571 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9570 /* 8574 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
9571 /* 8576 */ GIR_RootToRootCopy, /*OpIdx*/1, // y
9572 /* 8578 */ GIR_EraseRootFromParent_Done,
9573 /* 8579 */ // Label 399: @8579
9574 /* 8579 */ GIM_Try, /*On fail goto*//*Label 400*/ GIMT_Encode4(8590), // Rule ID 264 //
9575 /* 8584 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule199Enabled),
9576 /* 8587 */ // MIs[0] dst
9577 /* 8587 */ // No operand predicates
9578 /* 8587 */ // MIs[0] root.x
9579 /* 8587 */ // No operand predicates
9580 /* 8587 */ // MIs[0] root.y
9581 /* 8587 */ // No operand predicates
9582 /* 8587 */ // MIs[0] root.amt
9583 /* 8587 */ // No operand predicates
9584 /* 8587 */ // Combiner Rule #199: funnel_shift_overshift @ [root[0]]
9585 /* 8587 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner74),
9586 /* 8590 */ // Label 400: @8590
9587 /* 8590 */ GIM_Reject,
9588 /* 8591 */ // Label 39: @8591
9589 /* 8591 */ GIM_Try, /*On fail goto*//*Label 401*/ GIMT_Encode4(8618), // Rule ID 261 //
9590 /* 8596 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule196Enabled),
9591 /* 8599 */ // MIs[0] dst
9592 /* 8599 */ // No operand predicates
9593 /* 8599 */ // MIs[0] x
9594 /* 8599 */ // No operand predicates
9595 /* 8599 */ // MIs[0] x
9596 /* 8599 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
9597 /* 8604 */ // MIs[0] amt
9598 /* 8604 */ // No operand predicates
9599 /* 8604 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner37),
9600 /* 8608 */ // Combiner Rule #196: funnel_shift_to_rotate_right
9601 /* 8608 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ROTR),
9602 /* 8611 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9603 /* 8613 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
9604 /* 8615 */ GIR_RootToRootCopy, /*OpIdx*/3, // amt
9605 /* 8617 */ GIR_EraseRootFromParent_Done,
9606 /* 8618 */ // Label 401: @8618
9607 /* 8618 */ GIM_Try, /*On fail goto*//*Label 402*/ GIMT_Encode4(8638), // Rule ID 262 //
9608 /* 8623 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
9609 /* 8626 */ // MIs[0] x
9610 /* 8626 */ // No operand predicates
9611 /* 8626 */ // MIs[0] y
9612 /* 8626 */ // No operand predicates
9613 /* 8626 */ // MIs[0] z
9614 /* 8626 */ // No operand predicates
9615 /* 8626 */ // MIs[0] Operand 3
9616 /* 8626 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
9617 /* 8630 */ // Combiner Rule #197: funnel_shift_right_zero
9618 /* 8630 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9619 /* 8633 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
9620 /* 8635 */ GIR_RootToRootCopy, /*OpIdx*/2, // z
9621 /* 8637 */ GIR_EraseRootFromParent_Done,
9622 /* 8638 */ // Label 402: @8638
9623 /* 8638 */ GIM_Try, /*On fail goto*//*Label 403*/ GIMT_Encode4(8649), // Rule ID 265 //
9624 /* 8643 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule199Enabled),
9625 /* 8646 */ // MIs[0] dst
9626 /* 8646 */ // No operand predicates
9627 /* 8646 */ // MIs[0] root.x
9628 /* 8646 */ // No operand predicates
9629 /* 8646 */ // MIs[0] root.y
9630 /* 8646 */ // No operand predicates
9631 /* 8646 */ // MIs[0] root.amt
9632 /* 8646 */ // No operand predicates
9633 /* 8646 */ // Combiner Rule #199: funnel_shift_overshift @ [root[1]]
9634 /* 8646 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner74),
9635 /* 8649 */ // Label 403: @8649
9636 /* 8649 */ GIM_Reject,
9637 /* 8650 */ // Label 40: @8650
9638 /* 8650 */ GIM_Try, /*On fail goto*//*Label 404*/ GIMT_Encode4(8673), // Rule ID 127 //
9639 /* 8655 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
9640 /* 8658 */ // MIs[0] dst
9641 /* 8658 */ // No operand predicates
9642 /* 8658 */ // MIs[0] lhs
9643 /* 8658 */ // No operand predicates
9644 /* 8658 */ // MIs[0] Operand 2
9645 /* 8658 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
9646 /* 8662 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9647 /* 8667 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[9]]
9648 /* 8667 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9649 /* 8672 */ GIR_EraseRootFromParent_Done,
9650 /* 8673 */ // Label 404: @8673
9651 /* 8673 */ GIM_Reject,
9652 /* 8674 */ // Label 41: @8674
9653 /* 8674 */ GIM_Try, /*On fail goto*//*Label 405*/ GIMT_Encode4(8697), // Rule ID 126 //
9654 /* 8679 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
9655 /* 8682 */ // MIs[0] dst
9656 /* 8682 */ // No operand predicates
9657 /* 8682 */ // MIs[0] lhs
9658 /* 8682 */ // No operand predicates
9659 /* 8682 */ // MIs[0] Operand 2
9660 /* 8682 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
9661 /* 8686 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9662 /* 8691 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[8]]
9663 /* 8691 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9664 /* 8696 */ GIR_EraseRootFromParent_Done,
9665 /* 8697 */ // Label 405: @8697
9666 /* 8697 */ GIM_Reject,
9667 /* 8698 */ // Label 42: @8698
9668 /* 8698 */ GIM_Try, /*On fail goto*//*Label 406*/ GIMT_Encode4(8709), // Rule ID 173 //
9669 /* 8703 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule123Enabled),
9670 /* 8706 */ // MIs[0] root
9671 /* 8706 */ // No operand predicates
9672 /* 8706 */ // MIs[0] pred
9673 /* 8706 */ // No operand predicates
9674 /* 8706 */ // MIs[0] lhs
9675 /* 8706 */ // No operand predicates
9676 /* 8706 */ // MIs[0] rhs
9677 /* 8706 */ // No operand predicates
9678 /* 8706 */ // Combiner Rule #123: canonicalize_icmp
9679 /* 8706 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
9680 /* 8709 */ // Label 406: @8709
9681 /* 8709 */ GIM_Try, /*On fail goto*//*Label 407*/ GIMT_Encode4(8720), // Rule ID 175 //
9682 /* 8714 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule125Enabled),
9683 /* 8717 */ // MIs[0] dst
9684 /* 8717 */ // No operand predicates
9685 /* 8717 */ // MIs[0] pred
9686 /* 8717 */ // No operand predicates
9687 /* 8717 */ // MIs[0] src1
9688 /* 8717 */ // No operand predicates
9689 /* 8717 */ // MIs[0] src2
9690 /* 8717 */ // No operand predicates
9691 /* 8717 */ // Combiner Rule #125: icmp_to_true_false_known_bits
9692 /* 8717 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
9693 /* 8720 */ // Label 407: @8720
9694 /* 8720 */ GIM_Try, /*On fail goto*//*Label 408*/ GIMT_Encode4(8731), // Rule ID 176 //
9695 /* 8725 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
9696 /* 8728 */ // MIs[0] dst
9697 /* 8728 */ // No operand predicates
9698 /* 8728 */ // MIs[0] pred
9699 /* 8728 */ // No operand predicates
9700 /* 8728 */ // MIs[0] src1
9701 /* 8728 */ // No operand predicates
9702 /* 8728 */ // MIs[0] src2
9703 /* 8728 */ // No operand predicates
9704 /* 8728 */ // Combiner Rule #126: icmp_to_lhs_known_bits
9705 /* 8728 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
9706 /* 8731 */ // Label 408: @8731
9707 /* 8731 */ GIM_Try, /*On fail goto*//*Label 409*/ GIMT_Encode4(8742), // Rule ID 179 //
9708 /* 8736 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule129Enabled),
9709 /* 8739 */ // MIs[0] dst
9710 /* 8739 */ // No operand predicates
9711 /* 8739 */ // MIs[0] pred
9712 /* 8739 */ // No operand predicates
9713 /* 8739 */ // MIs[0] src1
9714 /* 8739 */ // No operand predicates
9715 /* 8739 */ // MIs[0] src2
9716 /* 8739 */ // No operand predicates
9717 /* 8739 */ // Combiner Rule #129: redundant_binop_in_equality
9718 /* 8739 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
9719 /* 8742 */ // Label 409: @8742
9720 /* 8742 */ GIM_Try, /*On fail goto*//*Label 410*/ GIMT_Encode4(8753), // Rule ID 472 //
9721 /* 8747 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule334Enabled),
9722 /* 8750 */ // MIs[0] dst
9723 /* 8750 */ // No operand predicates
9724 /* 8750 */ // MIs[0] tst
9725 /* 8750 */ // No operand predicates
9726 /* 8750 */ // MIs[0] src1
9727 /* 8750 */ // No operand predicates
9728 /* 8750 */ // MIs[0] src2
9729 /* 8750 */ // No operand predicates
9730 /* 8750 */ // Combiner Rule #334: icmp_redundant_trunc
9731 /* 8750 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
9732 /* 8753 */ // Label 410: @8753
9733 /* 8753 */ GIM_Reject,
9734 /* 8754 */ // Label 43: @8754
9735 /* 8754 */ GIM_Try, /*On fail goto*//*Label 411*/ GIMT_Encode4(8765), // Rule ID 174 //
9736 /* 8759 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule124Enabled),
9737 /* 8762 */ // MIs[0] root
9738 /* 8762 */ // No operand predicates
9739 /* 8762 */ // MIs[0] pred
9740 /* 8762 */ // No operand predicates
9741 /* 8762 */ // MIs[0] lhs
9742 /* 8762 */ // No operand predicates
9743 /* 8762 */ // MIs[0] rhs
9744 /* 8762 */ // No operand predicates
9745 /* 8762 */ // Combiner Rule #124: canonicalize_fcmp
9746 /* 8762 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner44),
9747 /* 8765 */ // Label 411: @8765
9748 /* 8765 */ GIM_Reject,
9749 /* 8766 */ // Label 44: @8766
9750 /* 8766 */ GIM_Try, /*On fail goto*//*Label 412*/ GIMT_Encode4(8846), // Rule ID 470 //
9751 /* 8771 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule332Enabled),
9752 /* 8774 */ // MIs[0] dst
9753 /* 8774 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
9754 /* 8778 */ // MIs[0] c
9755 /* 8778 */ // No operand predicates
9756 /* 8778 */ // MIs[0] Operand 2
9757 /* 8778 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
9758 /* 8782 */ // MIs[0] x
9759 /* 8782 */ // No operand predicates
9760 /* 8782 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner27),
9761 /* 8786 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
9762 /* 8789 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
9763 /* 8792 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
9764 /* 8802 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
9765 /* 8805 */ // Combiner Rule #332: select_zero_true
9766 /* 8805 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
9767 /* 8808 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
9768 /* 8813 */ GIR_RootToRootCopy, /*OpIdx*/1, // c
9769 /* 8815 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
9770 /* 8818 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FREEZE),
9771 /* 8822 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
9772 /* 8827 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // x
9773 /* 8831 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
9774 /* 8835 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
9775 /* 8839 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
9776 /* 8842 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
9777 /* 8845 */ GIR_EraseRootFromParent_Done,
9778 /* 8846 */ // Label 412: @8846
9779 /* 8846 */ GIM_Try, /*On fail goto*//*Label 413*/ GIMT_Encode4(8895), // Rule ID 192 //
9780 /* 8851 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule142Enabled),
9781 /* 8854 */ // MIs[0] dst
9782 /* 8854 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
9783 /* 8858 */ // MIs[0] c
9784 /* 8858 */ // No operand predicates
9785 /* 8858 */ // MIs[0] x
9786 /* 8858 */ // No operand predicates
9787 /* 8858 */ // MIs[0] Operand 3
9788 /* 8858 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
9789 /* 8862 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner27),
9790 /* 8866 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
9791 /* 8869 */ // Combiner Rule #142: select_zero_false
9792 /* 8869 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FREEZE),
9793 /* 8872 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
9794 /* 8877 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
9795 /* 8879 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
9796 /* 8883 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
9797 /* 8887 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // c
9798 /* 8891 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9799 /* 8894 */ GIR_EraseRootFromParent_Done,
9800 /* 8895 */ // Label 413: @8895
9801 /* 8895 */ GIM_Try, /*On fail goto*//*Label 414*/ GIMT_Encode4(8916), // Rule ID 190 //
9802 /* 8900 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule140Enabled),
9803 /* 8903 */ // MIs[0] root
9804 /* 8903 */ // No operand predicates
9805 /* 8903 */ // MIs[0] tst
9806 /* 8903 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9807 /* 8907 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
9808 /* 8911 */ // MIs[1] tst1
9809 /* 8911 */ // No operand predicates
9810 /* 8911 */ // MIs[1] a
9811 /* 8911 */ // No operand predicates
9812 /* 8911 */ // MIs[1] b
9813 /* 8911 */ // No operand predicates
9814 /* 8911 */ // MIs[0] x
9815 /* 8911 */ // No operand predicates
9816 /* 8911 */ // MIs[0] y
9817 /* 8911 */ // No operand predicates
9818 /* 8911 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9819 /* 8913 */ // Combiner Rule #140: select_to_iminmax
9820 /* 8913 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
9821 /* 8916 */ // Label 414: @8916
9822 /* 8916 */ GIM_Try, /*On fail goto*//*Label 415*/ GIMT_Encode4(8952), // Rule ID 193 //
9823 /* 8921 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule143Enabled),
9824 /* 8924 */ // MIs[0] dst
9825 /* 8924 */ // No operand predicates
9826 /* 8924 */ // MIs[0] c
9827 /* 8924 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9828 /* 8928 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
9829 /* 8932 */ // MIs[1] src
9830 /* 8932 */ // No operand predicates
9831 /* 8932 */ // MIs[1] Operand 2
9832 /* 8932 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 255,
9833 /* 8936 */ // MIs[0] x
9834 /* 8936 */ // No operand predicates
9835 /* 8936 */ // MIs[0] y
9836 /* 8936 */ // No operand predicates
9837 /* 8936 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9838 /* 8938 */ // Combiner Rule #143: select_not
9839 /* 8938 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SELECT),
9840 /* 8941 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9841 /* 8943 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
9842 /* 8947 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
9843 /* 8949 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
9844 /* 8951 */ GIR_EraseRootFromParent_Done,
9845 /* 8952 */ // Label 415: @8952
9846 /* 8952 */ GIM_Try, /*On fail goto*//*Label 416*/ GIMT_Encode4(8981), // Rule ID 185 //
9847 /* 8957 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule135Enabled),
9848 /* 8960 */ // MIs[0] dst
9849 /* 8960 */ // No operand predicates
9850 /* 8960 */ // MIs[0] undef
9851 /* 8960 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9852 /* 8964 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9853 /* 8968 */ // MIs[0] x
9854 /* 8968 */ // No operand predicates
9855 /* 8968 */ // MIs[0] y
9856 /* 8968 */ // No operand predicates
9857 /* 8968 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
9858 /* 8973 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9859 /* 8975 */ // Combiner Rule #135: select_undef_cmp
9860 /* 8975 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
9861 /* 8980 */ GIR_EraseRootFromParent_Done,
9862 /* 8981 */ // Label 416: @8981
9863 /* 8981 */ GIM_Try, /*On fail goto*//*Label 417*/ GIMT_Encode4(9021), // Rule ID 186 //
9864 /* 8986 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled),
9865 /* 8989 */ // MIs[0] dst
9866 /* 8989 */ // No operand predicates
9867 /* 8989 */ // MIs[0] cond
9868 /* 8989 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9869 /* 8993 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
9870 /* 8997 */ // MIs[1] Operand 1
9871 /* 8997 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
9872 /* 9008 */ // MIs[0] tval
9873 /* 9008 */ // No operand predicates
9874 /* 9008 */ // MIs[0] fval
9875 /* 9008 */ // No operand predicates
9876 /* 9008 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
9877 /* 9013 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9878 /* 9015 */ // Combiner Rule #136: select_constant_cmp_false
9879 /* 9015 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
9880 /* 9020 */ GIR_EraseRootFromParent_Done,
9881 /* 9021 */ // Label 417: @9021
9882 /* 9021 */ GIM_Try, /*On fail goto*//*Label 418*/ GIMT_Encode4(9061), // Rule ID 187 //
9883 /* 9026 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled),
9884 /* 9029 */ // MIs[0] dst
9885 /* 9029 */ // No operand predicates
9886 /* 9029 */ // MIs[0] cond
9887 /* 9029 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9888 /* 9033 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
9889 /* 9037 */ // MIs[1] Operand 1
9890 /* 9037 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(1),
9891 /* 9048 */ // MIs[0] tval
9892 /* 9048 */ // No operand predicates
9893 /* 9048 */ // MIs[0] fval
9894 /* 9048 */ // No operand predicates
9895 /* 9048 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9896 /* 9053 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9897 /* 9055 */ // Combiner Rule #137: select_constant_cmp_true
9898 /* 9055 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9899 /* 9060 */ GIR_EraseRootFromParent_Done,
9900 /* 9061 */ // Label 418: @9061
9901 /* 9061 */ GIM_Try, /*On fail goto*//*Label 419*/ GIMT_Encode4(9085), // Rule ID 116 //
9902 /* 9066 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
9903 /* 9069 */ // MIs[0] dst
9904 /* 9069 */ // No operand predicates
9905 /* 9069 */ // MIs[0] cond
9906 /* 9069 */ // No operand predicates
9907 /* 9069 */ // MIs[0] x
9908 /* 9069 */ // No operand predicates
9909 /* 9069 */ // MIs[0] x
9910 /* 9069 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/0, /*OtherOpIdx*/2,
9911 /* 9074 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9912 /* 9079 */ // Combiner Rule #90: select_same_val_trivial
9913 /* 9079 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9914 /* 9084 */ GIR_EraseRootFromParent_Done,
9915 /* 9085 */ // Label 419: @9085
9916 /* 9085 */ GIM_Try, /*On fail goto*//*Label 420*/ GIMT_Encode4(9108), // Rule ID 117 //
9917 /* 9090 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
9918 /* 9093 */ // MIs[0] dst
9919 /* 9093 */ // No operand predicates
9920 /* 9093 */ // MIs[0] cond
9921 /* 9093 */ // No operand predicates
9922 /* 9093 */ // MIs[0] tval
9923 /* 9093 */ // No operand predicates
9924 /* 9093 */ // MIs[0] fval
9925 /* 9093 */ // No operand predicates
9926 /* 9093 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner11),
9927 /* 9097 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9928 /* 9102 */ // Combiner Rule #91: select_same_val_equiv
9929 /* 9102 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9930 /* 9107 */ GIR_EraseRootFromParent_Done,
9931 /* 9108 */ // Label 420: @9108
9932 /* 9108 */ GIM_Try, /*On fail goto*//*Label 421*/ GIMT_Encode4(9131), // Rule ID 188 //
9933 /* 9113 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule138Enabled),
9934 /* 9116 */ // MIs[0] dst
9935 /* 9116 */ // No operand predicates
9936 /* 9116 */ // MIs[0] cond
9937 /* 9116 */ // No operand predicates
9938 /* 9116 */ // MIs[0] tval
9939 /* 9116 */ // No operand predicates
9940 /* 9116 */ // MIs[0] fval
9941 /* 9116 */ // No operand predicates
9942 /* 9116 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner25),
9943 /* 9120 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
9944 /* 9125 */ // Combiner Rule #138: select_constant_cmp_general_false
9945 /* 9125 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
9946 /* 9130 */ GIR_EraseRootFromParent_Done,
9947 /* 9131 */ // Label 421: @9131
9948 /* 9131 */ GIM_Try, /*On fail goto*//*Label 422*/ GIMT_Encode4(9154), // Rule ID 189 //
9949 /* 9136 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule139Enabled),
9950 /* 9139 */ // MIs[0] dst
9951 /* 9139 */ // No operand predicates
9952 /* 9139 */ // MIs[0] cond
9953 /* 9139 */ // No operand predicates
9954 /* 9139 */ // MIs[0] tval
9955 /* 9139 */ // No operand predicates
9956 /* 9139 */ // MIs[0] fval
9957 /* 9139 */ // No operand predicates
9958 /* 9139 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner26),
9959 /* 9143 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9960 /* 9148 */ // Combiner Rule #139: select_constant_cmp_general_true
9961 /* 9148 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9962 /* 9153 */ GIR_EraseRootFromParent_Done,
9963 /* 9154 */ // Label 422: @9154
9964 /* 9154 */ GIM_Try, /*On fail goto*//*Label 423*/ GIMT_Encode4(9165), // Rule ID 191 //
9965 /* 9159 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule141Enabled),
9966 /* 9162 */ // MIs[0] dst
9967 /* 9162 */ // No operand predicates
9968 /* 9162 */ // MIs[0] cond
9969 /* 9162 */ // No operand predicates
9970 /* 9162 */ // MIs[0] tval
9971 /* 9162 */ // No operand predicates
9972 /* 9162 */ // MIs[0] fval
9973 /* 9162 */ // No operand predicates
9974 /* 9162 */ // Combiner Rule #141: match_selects
9975 /* 9162 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner53),
9976 /* 9165 */ // Label 423: @9165
9977 /* 9165 */ GIM_Try, /*On fail goto*//*Label 424*/ GIMT_Encode4(9176), // Rule ID 379 //
9978 /* 9170 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule247Enabled),
9979 /* 9173 */ // MIs[0] dst
9980 /* 9173 */ // No operand predicates
9981 /* 9173 */ // MIs[0] cond
9982 /* 9173 */ // No operand predicates
9983 /* 9173 */ // MIs[0] tval
9984 /* 9173 */ // No operand predicates
9985 /* 9173 */ // MIs[0] fval
9986 /* 9173 */ // No operand predicates
9987 /* 9173 */ // Combiner Rule #247: select_to_minmax
9988 /* 9173 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
9989 /* 9176 */ // Label 424: @9176
9990 /* 9176 */ GIM_Reject,
9991 /* 9177 */ // Label 45: @9177
9992 /* 9177 */ GIM_Try, /*On fail goto*//*Label 425*/ GIMT_Encode4(9204), // Rule ID 398 //
9993 /* 9182 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule266Enabled),
9994 /* 9185 */ // MIs[0] dst
9995 /* 9185 */ // No operand predicates
9996 /* 9185 */ // MIs[0] carry
9997 /* 9185 */ // No operand predicates
9998 /* 9185 */ // MIs[0] lhs
9999 /* 9185 */ // No operand predicates
10000 /* 9185 */ // MIs[0] rhs
10001 /* 9185 */ // No operand predicates
10002 /* 9185 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10003 /* 9189 */ // Combiner Rule #266: G_UADDO_commute_constant_to_rhs
10004 /* 9189 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UADDO),
10005 /* 9192 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10006 /* 9194 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry
10007 /* 9196 */ GIR_RootToRootCopy, /*OpIdx*/3, // rhs
10008 /* 9198 */ GIR_RootToRootCopy, /*OpIdx*/2, // lhs
10009 /* 9200 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10010 /* 9203 */ GIR_EraseRootFromParent_Done,
10011 /* 9204 */ // Label 425: @9204
10012 /* 9204 */ GIM_Try, /*On fail goto*//*Label 426*/ GIMT_Encode4(9234), // Rule ID 438 //
10013 /* 9209 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule306Enabled),
10014 /* 9212 */ // MIs[0] dst
10015 /* 9212 */ // No operand predicates
10016 /* 9212 */ // MIs[0] carry
10017 /* 9212 */ // No operand predicates
10018 /* 9212 */ // MIs[0] x
10019 /* 9212 */ // No operand predicates
10020 /* 9212 */ // MIs[0] y
10021 /* 9212 */ // No operand predicates
10022 /* 9212 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner52),
10023 /* 9216 */ // Combiner Rule #306: match_addos_uaddo_dead_carry
10024 /* 9216 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
10025 /* 9219 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10026 /* 9221 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10027 /* 9223 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
10028 /* 9225 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10029 /* 9229 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // carry
10030 /* 9233 */ GIR_EraseRootFromParent_Done,
10031 /* 9234 */ // Label 426: @9234
10032 /* 9234 */ GIM_Try, /*On fail goto*//*Label 427*/ GIMT_Encode4(9245), // Rule ID 440 //
10033 /* 9239 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule308Enabled),
10034 /* 9242 */ // MIs[0] dst
10035 /* 9242 */ // No operand predicates
10036 /* 9242 */ // MIs[0] carry
10037 /* 9242 */ // No operand predicates
10038 /* 9242 */ // MIs[0] x
10039 /* 9242 */ // No operand predicates
10040 /* 9242 */ // MIs[0] y
10041 /* 9242 */ // No operand predicates
10042 /* 9242 */ // Combiner Rule #308: match_addos_uaddo
10043 /* 9242 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
10044 /* 9245 */ // Label 427: @9245
10045 /* 9245 */ GIM_Try, /*On fail goto*//*Label 428*/ GIMT_Encode4(9256), // Rule ID 482 //
10046 /* 9250 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule344Enabled),
10047 /* 9253 */ // MIs[0] dst
10048 /* 9253 */ // No operand predicates
10049 /* 9253 */ // MIs[0] carry_out
10050 /* 9253 */ // No operand predicates
10051 /* 9253 */ // MIs[0] src1
10052 /* 9253 */ // No operand predicates
10053 /* 9253 */ // MIs[0] src2
10054 /* 9253 */ // No operand predicates
10055 /* 9253 */ // Combiner Rule #344: simplify_uaddo
10056 /* 9253 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner134),
10057 /* 9256 */ // Label 428: @9256
10058 /* 9256 */ GIM_Reject,
10059 /* 9257 */ // Label 46: @9257
10060 /* 9257 */ GIM_Try, /*On fail goto*//*Label 429*/ GIMT_Encode4(9284), // Rule ID 228 //
10061 /* 9262 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
10062 /* 9265 */ // MIs[0] dst
10063 /* 9265 */ // No operand predicates
10064 /* 9265 */ // MIs[0] carry_out
10065 /* 9265 */ // No operand predicates
10066 /* 9265 */ // MIs[0] x
10067 /* 9265 */ // No operand predicates
10068 /* 9265 */ // MIs[0] y
10069 /* 9265 */ // No operand predicates
10070 /* 9265 */ // MIs[0] carry_in
10071 /* 9265 */ // No operand predicates
10072 /* 9265 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner31),
10073 /* 9269 */ // Combiner Rule #178: adde_to_addo_uadde
10074 /* 9269 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UADDO),
10075 /* 9272 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10076 /* 9274 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry_out
10077 /* 9276 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10078 /* 9278 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
10079 /* 9280 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10080 /* 9283 */ GIR_EraseRootFromParent_Done,
10081 /* 9284 */ // Label 429: @9284
10082 /* 9284 */ GIM_Reject,
10083 /* 9285 */ // Label 47: @9285
10084 /* 9285 */ GIM_Try, /*On fail goto*//*Label 430*/ GIMT_Encode4(9296), // Rule ID 442 //
10085 /* 9290 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule310Enabled),
10086 /* 9293 */ // MIs[0] dst
10087 /* 9293 */ // No operand predicates
10088 /* 9293 */ // MIs[0] carry
10089 /* 9293 */ // No operand predicates
10090 /* 9293 */ // MIs[0] x
10091 /* 9293 */ // No operand predicates
10092 /* 9293 */ // MIs[0] y
10093 /* 9293 */ // No operand predicates
10094 /* 9293 */ // Combiner Rule #310: match_subo_no_overflow_usubo
10095 /* 9293 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
10096 /* 9296 */ // Label 430: @9296
10097 /* 9296 */ GIM_Reject,
10098 /* 9297 */ // Label 48: @9297
10099 /* 9297 */ GIM_Try, /*On fail goto*//*Label 431*/ GIMT_Encode4(9324), // Rule ID 230 //
10100 /* 9302 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
10101 /* 9305 */ // MIs[0] dst
10102 /* 9305 */ // No operand predicates
10103 /* 9305 */ // MIs[0] carry_out
10104 /* 9305 */ // No operand predicates
10105 /* 9305 */ // MIs[0] x
10106 /* 9305 */ // No operand predicates
10107 /* 9305 */ // MIs[0] y
10108 /* 9305 */ // No operand predicates
10109 /* 9305 */ // MIs[0] carry_in
10110 /* 9305 */ // No operand predicates
10111 /* 9305 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner31),
10112 /* 9309 */ // Combiner Rule #180: adde_to_addo_usube
10113 /* 9309 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_USUBO),
10114 /* 9312 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10115 /* 9314 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry_out
10116 /* 9316 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10117 /* 9318 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
10118 /* 9320 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10119 /* 9323 */ GIR_EraseRootFromParent_Done,
10120 /* 9324 */ // Label 431: @9324
10121 /* 9324 */ GIM_Reject,
10122 /* 9325 */ // Label 49: @9325
10123 /* 9325 */ GIM_Try, /*On fail goto*//*Label 432*/ GIMT_Encode4(9352), // Rule ID 399 //
10124 /* 9330 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule267Enabled),
10125 /* 9333 */ // MIs[0] dst
10126 /* 9333 */ // No operand predicates
10127 /* 9333 */ // MIs[0] carry
10128 /* 9333 */ // No operand predicates
10129 /* 9333 */ // MIs[0] lhs
10130 /* 9333 */ // No operand predicates
10131 /* 9333 */ // MIs[0] rhs
10132 /* 9333 */ // No operand predicates
10133 /* 9333 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10134 /* 9337 */ // Combiner Rule #267: G_SADDO_commute_constant_to_rhs
10135 /* 9337 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SADDO),
10136 /* 9340 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10137 /* 9342 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry
10138 /* 9344 */ GIR_RootToRootCopy, /*OpIdx*/3, // rhs
10139 /* 9346 */ GIR_RootToRootCopy, /*OpIdx*/2, // lhs
10140 /* 9348 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10141 /* 9351 */ GIR_EraseRootFromParent_Done,
10142 /* 9352 */ // Label 432: @9352
10143 /* 9352 */ GIM_Try, /*On fail goto*//*Label 433*/ GIMT_Encode4(9382), // Rule ID 437 //
10144 /* 9357 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule305Enabled),
10145 /* 9360 */ // MIs[0] dst
10146 /* 9360 */ // No operand predicates
10147 /* 9360 */ // MIs[0] carry
10148 /* 9360 */ // No operand predicates
10149 /* 9360 */ // MIs[0] x
10150 /* 9360 */ // No operand predicates
10151 /* 9360 */ // MIs[0] y
10152 /* 9360 */ // No operand predicates
10153 /* 9360 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner52),
10154 /* 9364 */ // Combiner Rule #305: match_addos_saddo_dead_carry
10155 /* 9364 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
10156 /* 9367 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10157 /* 9369 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10158 /* 9371 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
10159 /* 9373 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10160 /* 9377 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // carry
10161 /* 9381 */ GIR_EraseRootFromParent_Done,
10162 /* 9382 */ // Label 433: @9382
10163 /* 9382 */ GIM_Try, /*On fail goto*//*Label 434*/ GIMT_Encode4(9393), // Rule ID 439 //
10164 /* 9387 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule307Enabled),
10165 /* 9390 */ // MIs[0] dst
10166 /* 9390 */ // No operand predicates
10167 /* 9390 */ // MIs[0] carry
10168 /* 9390 */ // No operand predicates
10169 /* 9390 */ // MIs[0] x
10170 /* 9390 */ // No operand predicates
10171 /* 9390 */ // MIs[0] y
10172 /* 9390 */ // No operand predicates
10173 /* 9390 */ // Combiner Rule #307: match_addos_saddo
10174 /* 9390 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
10175 /* 9393 */ // Label 434: @9393
10176 /* 9393 */ GIM_Reject,
10177 /* 9394 */ // Label 50: @9394
10178 /* 9394 */ GIM_Try, /*On fail goto*//*Label 435*/ GIMT_Encode4(9421), // Rule ID 229 //
10179 /* 9399 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
10180 /* 9402 */ // MIs[0] dst
10181 /* 9402 */ // No operand predicates
10182 /* 9402 */ // MIs[0] carry_out
10183 /* 9402 */ // No operand predicates
10184 /* 9402 */ // MIs[0] x
10185 /* 9402 */ // No operand predicates
10186 /* 9402 */ // MIs[0] y
10187 /* 9402 */ // No operand predicates
10188 /* 9402 */ // MIs[0] carry_in
10189 /* 9402 */ // No operand predicates
10190 /* 9402 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner31),
10191 /* 9406 */ // Combiner Rule #179: adde_to_addo_sadde
10192 /* 9406 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SADDO),
10193 /* 9409 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10194 /* 9411 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry_out
10195 /* 9413 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10196 /* 9415 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
10197 /* 9417 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10198 /* 9420 */ GIR_EraseRootFromParent_Done,
10199 /* 9421 */ // Label 435: @9421
10200 /* 9421 */ GIM_Reject,
10201 /* 9422 */ // Label 51: @9422
10202 /* 9422 */ GIM_Try, /*On fail goto*//*Label 436*/ GIMT_Encode4(9433), // Rule ID 441 //
10203 /* 9427 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule309Enabled),
10204 /* 9430 */ // MIs[0] dst
10205 /* 9430 */ // No operand predicates
10206 /* 9430 */ // MIs[0] carry
10207 /* 9430 */ // No operand predicates
10208 /* 9430 */ // MIs[0] x
10209 /* 9430 */ // No operand predicates
10210 /* 9430 */ // MIs[0] y
10211 /* 9430 */ // No operand predicates
10212 /* 9430 */ // Combiner Rule #309: match_subo_no_overflow_ssubo
10213 /* 9430 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
10214 /* 9433 */ // Label 436: @9433
10215 /* 9433 */ GIM_Reject,
10216 /* 9434 */ // Label 52: @9434
10217 /* 9434 */ GIM_Try, /*On fail goto*//*Label 437*/ GIMT_Encode4(9461), // Rule ID 231 //
10218 /* 9439 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
10219 /* 9442 */ // MIs[0] dst
10220 /* 9442 */ // No operand predicates
10221 /* 9442 */ // MIs[0] carry_out
10222 /* 9442 */ // No operand predicates
10223 /* 9442 */ // MIs[0] x
10224 /* 9442 */ // No operand predicates
10225 /* 9442 */ // MIs[0] y
10226 /* 9442 */ // No operand predicates
10227 /* 9442 */ // MIs[0] carry_in
10228 /* 9442 */ // No operand predicates
10229 /* 9442 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner31),
10230 /* 9446 */ // Combiner Rule #181: adde_to_addo_ssube
10231 /* 9446 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SSUBO),
10232 /* 9449 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10233 /* 9451 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry_out
10234 /* 9453 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10235 /* 9455 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
10236 /* 9457 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10237 /* 9460 */ GIR_EraseRootFromParent_Done,
10238 /* 9461 */ // Label 437: @9461
10239 /* 9461 */ GIM_Reject,
10240 /* 9462 */ // Label 53: @9462
10241 /* 9462 */ GIM_Try, /*On fail goto*//*Label 438*/ GIMT_Encode4(9489), // Rule ID 224 //
10242 /* 9467 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
10243 /* 9470 */ // MIs[0] dst
10244 /* 9470 */ // No operand predicates
10245 /* 9470 */ // MIs[0] carry
10246 /* 9470 */ // No operand predicates
10247 /* 9470 */ // MIs[0] x
10248 /* 9470 */ // No operand predicates
10249 /* 9470 */ // MIs[0] rhs
10250 /* 9470 */ // No operand predicates
10251 /* 9470 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner30),
10252 /* 9474 */ // Combiner Rule #174: mulo_by_2_umulo
10253 /* 9474 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UADDO),
10254 /* 9477 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10255 /* 9479 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry
10256 /* 9481 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10257 /* 9483 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10258 /* 9485 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10259 /* 9488 */ GIR_EraseRootFromParent_Done,
10260 /* 9489 */ // Label 438: @9489
10261 /* 9489 */ GIM_Try, /*On fail goto*//*Label 439*/ GIMT_Encode4(9516), // Rule ID 400 //
10262 /* 9494 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule268Enabled),
10263 /* 9497 */ // MIs[0] dst
10264 /* 9497 */ // No operand predicates
10265 /* 9497 */ // MIs[0] carry
10266 /* 9497 */ // No operand predicates
10267 /* 9497 */ // MIs[0] lhs
10268 /* 9497 */ // No operand predicates
10269 /* 9497 */ // MIs[0] rhs
10270 /* 9497 */ // No operand predicates
10271 /* 9497 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10272 /* 9501 */ // Combiner Rule #268: G_UMULO_commute_constant_to_rhs
10273 /* 9501 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMULO),
10274 /* 9504 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10275 /* 9506 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry
10276 /* 9508 */ GIR_RootToRootCopy, /*OpIdx*/3, // rhs
10277 /* 9510 */ GIR_RootToRootCopy, /*OpIdx*/2, // lhs
10278 /* 9512 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10279 /* 9515 */ GIR_EraseRootFromParent_Done,
10280 /* 9516 */ // Label 439: @9516
10281 /* 9516 */ GIM_Try, /*On fail goto*//*Label 440*/ GIMT_Encode4(9527), // Rule ID 226 //
10282 /* 9521 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
10283 /* 9524 */ // MIs[0] dst
10284 /* 9524 */ // No operand predicates
10285 /* 9524 */ // MIs[0] carry
10286 /* 9524 */ // No operand predicates
10287 /* 9524 */ // MIs[0] x
10288 /* 9524 */ // No operand predicates
10289 /* 9524 */ // MIs[0] y
10290 /* 9524 */ // No operand predicates
10291 /* 9524 */ // Combiner Rule #176: mulo_by_0_umulo
10292 /* 9524 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner66),
10293 /* 9527 */ // Label 440: @9527
10294 /* 9527 */ GIM_Reject,
10295 /* 9528 */ // Label 54: @9528
10296 /* 9528 */ GIM_Try, /*On fail goto*//*Label 441*/ GIMT_Encode4(9555), // Rule ID 225 //
10297 /* 9533 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
10298 /* 9536 */ // MIs[0] dst
10299 /* 9536 */ // No operand predicates
10300 /* 9536 */ // MIs[0] carry
10301 /* 9536 */ // No operand predicates
10302 /* 9536 */ // MIs[0] x
10303 /* 9536 */ // No operand predicates
10304 /* 9536 */ // MIs[0] rhs
10305 /* 9536 */ // No operand predicates
10306 /* 9536 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner30),
10307 /* 9540 */ // Combiner Rule #175: mulo_by_2_smulo
10308 /* 9540 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SADDO),
10309 /* 9543 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10310 /* 9545 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry
10311 /* 9547 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10312 /* 9549 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10313 /* 9551 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10314 /* 9554 */ GIR_EraseRootFromParent_Done,
10315 /* 9555 */ // Label 441: @9555
10316 /* 9555 */ GIM_Try, /*On fail goto*//*Label 442*/ GIMT_Encode4(9582), // Rule ID 401 //
10317 /* 9560 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule269Enabled),
10318 /* 9563 */ // MIs[0] dst
10319 /* 9563 */ // No operand predicates
10320 /* 9563 */ // MIs[0] carry
10321 /* 9563 */ // No operand predicates
10322 /* 9563 */ // MIs[0] lhs
10323 /* 9563 */ // No operand predicates
10324 /* 9563 */ // MIs[0] rhs
10325 /* 9563 */ // No operand predicates
10326 /* 9563 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10327 /* 9567 */ // Combiner Rule #269: G_SMULO_commute_constant_to_rhs
10328 /* 9567 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMULO),
10329 /* 9570 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10330 /* 9572 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry
10331 /* 9574 */ GIR_RootToRootCopy, /*OpIdx*/3, // rhs
10332 /* 9576 */ GIR_RootToRootCopy, /*OpIdx*/2, // lhs
10333 /* 9578 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10334 /* 9581 */ GIR_EraseRootFromParent_Done,
10335 /* 9582 */ // Label 442: @9582
10336 /* 9582 */ GIM_Try, /*On fail goto*//*Label 443*/ GIMT_Encode4(9593), // Rule ID 227 //
10337 /* 9587 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled),
10338 /* 9590 */ // MIs[0] dst
10339 /* 9590 */ // No operand predicates
10340 /* 9590 */ // MIs[0] carry
10341 /* 9590 */ // No operand predicates
10342 /* 9590 */ // MIs[0] x
10343 /* 9590 */ // No operand predicates
10344 /* 9590 */ // MIs[0] y
10345 /* 9590 */ // No operand predicates
10346 /* 9590 */ // Combiner Rule #177: mulo_by_0_smulo
10347 /* 9590 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner66),
10348 /* 9593 */ // Label 443: @9593
10349 /* 9593 */ GIM_Reject,
10350 /* 9594 */ // Label 55: @9594
10351 /* 9594 */ GIM_Try, /*On fail goto*//*Label 444*/ GIMT_Encode4(9619), // Rule ID 390 //
10352 /* 9599 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule258Enabled),
10353 /* 9602 */ // MIs[0] dst
10354 /* 9602 */ // No operand predicates
10355 /* 9602 */ // MIs[0] lhs
10356 /* 9602 */ // No operand predicates
10357 /* 9602 */ // MIs[0] rhs
10358 /* 9602 */ // No operand predicates
10359 /* 9602 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10360 /* 9606 */ // Combiner Rule #258: G_UMULH_commute_constant_to_rhs
10361 /* 9606 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMULH),
10362 /* 9609 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10363 /* 9611 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10364 /* 9613 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10365 /* 9615 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10366 /* 9618 */ GIR_EraseRootFromParent_Done,
10367 /* 9619 */ // Label 444: @9619
10368 /* 9619 */ GIM_Try, /*On fail goto*//*Label 445*/ GIMT_Encode4(9630), // Rule ID 324 //
10369 /* 9624 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
10370 /* 9627 */ // MIs[0] dst
10371 /* 9627 */ // No operand predicates
10372 /* 9627 */ // MIs[0] src1
10373 /* 9627 */ // No operand predicates
10374 /* 9627 */ // MIs[0] src2
10375 /* 9627 */ // No operand predicates
10376 /* 9627 */ // Combiner Rule #216: mulh_to_lshr
10377 /* 9627 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
10378 /* 9630 */ // Label 445: @9630
10379 /* 9630 */ GIM_Reject,
10380 /* 9631 */ // Label 56: @9631
10381 /* 9631 */ GIM_Try, /*On fail goto*//*Label 446*/ GIMT_Encode4(9656), // Rule ID 391 //
10382 /* 9636 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule259Enabled),
10383 /* 9639 */ // MIs[0] dst
10384 /* 9639 */ // No operand predicates
10385 /* 9639 */ // MIs[0] lhs
10386 /* 9639 */ // No operand predicates
10387 /* 9639 */ // MIs[0] rhs
10388 /* 9639 */ // No operand predicates
10389 /* 9639 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10390 /* 9643 */ // Combiner Rule #259: G_SMULH_commute_constant_to_rhs
10391 /* 9643 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMULH),
10392 /* 9646 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10393 /* 9648 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10394 /* 9650 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10395 /* 9652 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10396 /* 9655 */ GIR_EraseRootFromParent_Done,
10397 /* 9656 */ // Label 446: @9656
10398 /* 9656 */ GIM_Reject,
10399 /* 9657 */ // Label 57: @9657
10400 /* 9657 */ GIM_Try, /*On fail goto*//*Label 447*/ GIMT_Encode4(9682), // Rule ID 392 //
10401 /* 9662 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule260Enabled),
10402 /* 9665 */ // MIs[0] dst
10403 /* 9665 */ // No operand predicates
10404 /* 9665 */ // MIs[0] lhs
10405 /* 9665 */ // No operand predicates
10406 /* 9665 */ // MIs[0] rhs
10407 /* 9665 */ // No operand predicates
10408 /* 9665 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10409 /* 9669 */ // Combiner Rule #260: G_UADDSAT_commute_constant_to_rhs
10410 /* 9669 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UADDSAT),
10411 /* 9672 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10412 /* 9674 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10413 /* 9676 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10414 /* 9678 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10415 /* 9681 */ GIR_EraseRootFromParent_Done,
10416 /* 9682 */ // Label 447: @9682
10417 /* 9682 */ GIM_Reject,
10418 /* 9683 */ // Label 58: @9683
10419 /* 9683 */ GIM_Try, /*On fail goto*//*Label 448*/ GIMT_Encode4(9708), // Rule ID 393 //
10420 /* 9688 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule261Enabled),
10421 /* 9691 */ // MIs[0] dst
10422 /* 9691 */ // No operand predicates
10423 /* 9691 */ // MIs[0] lhs
10424 /* 9691 */ // No operand predicates
10425 /* 9691 */ // MIs[0] rhs
10426 /* 9691 */ // No operand predicates
10427 /* 9691 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10428 /* 9695 */ // Combiner Rule #261: G_SADDSAT_commute_constant_to_rhs
10429 /* 9695 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SADDSAT),
10430 /* 9698 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10431 /* 9700 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10432 /* 9702 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10433 /* 9704 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10434 /* 9707 */ GIR_EraseRootFromParent_Done,
10435 /* 9708 */ // Label 448: @9708
10436 /* 9708 */ GIM_Reject,
10437 /* 9709 */ // Label 59: @9709
10438 /* 9709 */ GIM_Try, /*On fail goto*//*Label 449*/ GIMT_Encode4(9720), // Rule ID 248 //
10439 /* 9714 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
10440 /* 9717 */ // MIs[0] d
10441 /* 9717 */ // No operand predicates
10442 /* 9717 */ // MIs[0] mi.base
10443 /* 9717 */ // No operand predicates
10444 /* 9717 */ // MIs[0] mi.amt
10445 /* 9717 */ // No operand predicates
10446 /* 9717 */ // Combiner Rule #190: shift_immed_chain @ [mi[4]]
10447 /* 9717 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
10448 /* 9720 */ // Label 449: @9720
10449 /* 9720 */ GIM_Try, /*On fail goto*//*Label 450*/ GIMT_Encode4(9731), // Rule ID 253 //
10450 /* 9725 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
10451 /* 9728 */ // MIs[0] d
10452 /* 9728 */ // No operand predicates
10453 /* 9728 */ // MIs[0] mi.base
10454 /* 9728 */ // No operand predicates
10455 /* 9728 */ // MIs[0] mi.amt
10456 /* 9728 */ // No operand predicates
10457 /* 9728 */ // Combiner Rule #191: shift_of_shifted_logic_chain @ [mi[4]]
10458 /* 9728 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
10459 /* 9731 */ // Label 450: @9731
10460 /* 9731 */ GIM_Reject,
10461 /* 9732 */ // Label 60: @9732
10462 /* 9732 */ GIM_Try, /*On fail goto*//*Label 451*/ GIMT_Encode4(9743), // Rule ID 247 //
10463 /* 9737 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
10464 /* 9740 */ // MIs[0] d
10465 /* 9740 */ // No operand predicates
10466 /* 9740 */ // MIs[0] mi.base
10467 /* 9740 */ // No operand predicates
10468 /* 9740 */ // MIs[0] mi.amt
10469 /* 9740 */ // No operand predicates
10470 /* 9740 */ // Combiner Rule #190: shift_immed_chain @ [mi[3]]
10471 /* 9740 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
10472 /* 9743 */ // Label 451: @9743
10473 /* 9743 */ GIM_Try, /*On fail goto*//*Label 452*/ GIMT_Encode4(9754), // Rule ID 252 //
10474 /* 9748 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
10475 /* 9751 */ // MIs[0] d
10476 /* 9751 */ // No operand predicates
10477 /* 9751 */ // MIs[0] mi.base
10478 /* 9751 */ // No operand predicates
10479 /* 9751 */ // MIs[0] mi.amt
10480 /* 9751 */ // No operand predicates
10481 /* 9751 */ // Combiner Rule #191: shift_of_shifted_logic_chain @ [mi[3]]
10482 /* 9751 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
10483 /* 9754 */ // Label 452: @9754
10484 /* 9754 */ GIM_Reject,
10485 /* 9755 */ // Label 61: @9755
10486 /* 9755 */ GIM_Try, /*On fail goto*//*Label 453*/ GIMT_Encode4(9782), // Rule ID 394 //
10487 /* 9760 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule262Enabled),
10488 /* 9763 */ // MIs[0] dst
10489 /* 9763 */ // No operand predicates
10490 /* 9763 */ // MIs[0] lhs
10491 /* 9763 */ // No operand predicates
10492 /* 9763 */ // MIs[0] rhs
10493 /* 9763 */ // No operand predicates
10494 /* 9763 */ // MIs[0] scale
10495 /* 9763 */ // No operand predicates
10496 /* 9763 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10497 /* 9767 */ // Combiner Rule #262: G_SMULFIX_commute_constant_to_rhs
10498 /* 9767 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMULFIX),
10499 /* 9770 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10500 /* 9772 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10501 /* 9774 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10502 /* 9776 */ GIR_RootToRootCopy, /*OpIdx*/3, // scale
10503 /* 9778 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10504 /* 9781 */ GIR_EraseRootFromParent_Done,
10505 /* 9782 */ // Label 453: @9782
10506 /* 9782 */ GIM_Reject,
10507 /* 9783 */ // Label 62: @9783
10508 /* 9783 */ GIM_Try, /*On fail goto*//*Label 454*/ GIMT_Encode4(9810), // Rule ID 395 //
10509 /* 9788 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule263Enabled),
10510 /* 9791 */ // MIs[0] dst
10511 /* 9791 */ // No operand predicates
10512 /* 9791 */ // MIs[0] lhs
10513 /* 9791 */ // No operand predicates
10514 /* 9791 */ // MIs[0] rhs
10515 /* 9791 */ // No operand predicates
10516 /* 9791 */ // MIs[0] scale
10517 /* 9791 */ // No operand predicates
10518 /* 9791 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10519 /* 9795 */ // Combiner Rule #263: G_UMULFIX_commute_constant_to_rhs
10520 /* 9795 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMULFIX),
10521 /* 9798 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10522 /* 9800 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10523 /* 9802 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10524 /* 9804 */ GIR_RootToRootCopy, /*OpIdx*/3, // scale
10525 /* 9806 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10526 /* 9809 */ GIR_EraseRootFromParent_Done,
10527 /* 9810 */ // Label 454: @9810
10528 /* 9810 */ GIM_Reject,
10529 /* 9811 */ // Label 63: @9811
10530 /* 9811 */ GIM_Try, /*On fail goto*//*Label 455*/ GIMT_Encode4(9838), // Rule ID 396 //
10531 /* 9816 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule264Enabled),
10532 /* 9819 */ // MIs[0] dst
10533 /* 9819 */ // No operand predicates
10534 /* 9819 */ // MIs[0] lhs
10535 /* 9819 */ // No operand predicates
10536 /* 9819 */ // MIs[0] rhs
10537 /* 9819 */ // No operand predicates
10538 /* 9819 */ // MIs[0] scale
10539 /* 9819 */ // No operand predicates
10540 /* 9819 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10541 /* 9823 */ // Combiner Rule #264: G_SMULFIXSAT_commute_constant_to_rhs
10542 /* 9823 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMULFIXSAT),
10543 /* 9826 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10544 /* 9828 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10545 /* 9830 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10546 /* 9832 */ GIR_RootToRootCopy, /*OpIdx*/3, // scale
10547 /* 9834 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10548 /* 9837 */ GIR_EraseRootFromParent_Done,
10549 /* 9838 */ // Label 455: @9838
10550 /* 9838 */ GIM_Reject,
10551 /* 9839 */ // Label 64: @9839
10552 /* 9839 */ GIM_Try, /*On fail goto*//*Label 456*/ GIMT_Encode4(9866), // Rule ID 397 //
10553 /* 9844 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule265Enabled),
10554 /* 9847 */ // MIs[0] dst
10555 /* 9847 */ // No operand predicates
10556 /* 9847 */ // MIs[0] lhs
10557 /* 9847 */ // No operand predicates
10558 /* 9847 */ // MIs[0] rhs
10559 /* 9847 */ // No operand predicates
10560 /* 9847 */ // MIs[0] scale
10561 /* 9847 */ // No operand predicates
10562 /* 9847 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10563 /* 9851 */ // Combiner Rule #265: G_UMULFIXSAT_commute_constant_to_rhs
10564 /* 9851 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMULFIXSAT),
10565 /* 9854 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10566 /* 9856 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10567 /* 9858 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10568 /* 9860 */ GIR_RootToRootCopy, /*OpIdx*/3, // scale
10569 /* 9862 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10570 /* 9865 */ GIR_EraseRootFromParent_Done,
10571 /* 9866 */ // Label 456: @9866
10572 /* 9866 */ GIM_Reject,
10573 /* 9867 */ // Label 65: @9867
10574 /* 9867 */ GIM_Try, /*On fail goto*//*Label 457*/ GIMT_Encode4(9904), // Rule ID 326 //
10575 /* 9872 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule218Enabled),
10576 /* 9875 */ // MIs[0] dst
10577 /* 9875 */ // No operand predicates
10578 /* 9875 */ // MIs[0] negy
10579 /* 9875 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10580 /* 9879 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
10581 /* 9883 */ // MIs[1] y
10582 /* 9883 */ // No operand predicates
10583 /* 9883 */ // MIs[0] x
10584 /* 9883 */ // No operand predicates
10585 /* 9883 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner41),
10586 /* 9887 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10587 /* 9889 */ // Combiner Rule #218: redundant_neg_operands_fadd_lhs
10588 /* 9889 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FSUB),
10589 /* 9892 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10590 /* 9894 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10591 /* 9896 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // y
10592 /* 9900 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10593 /* 9903 */ GIR_EraseRootFromParent_Done,
10594 /* 9904 */ // Label 457: @9904
10595 /* 9904 */ GIM_Try, /*On fail goto*//*Label 458*/ GIMT_Encode4(9941), // Rule ID 325 //
10596 /* 9909 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
10597 /* 9912 */ // MIs[0] dst
10598 /* 9912 */ // No operand predicates
10599 /* 9912 */ // MIs[0] x
10600 /* 9912 */ // No operand predicates
10601 /* 9912 */ // MIs[0] negy
10602 /* 9912 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
10603 /* 9916 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
10604 /* 9920 */ // MIs[1] y
10605 /* 9920 */ // No operand predicates
10606 /* 9920 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner41),
10607 /* 9924 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10608 /* 9926 */ // Combiner Rule #217: redundant_neg_operands_fadd_rhs
10609 /* 9926 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FSUB),
10610 /* 9929 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10611 /* 9931 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
10612 /* 9933 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // y
10613 /* 9937 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10614 /* 9940 */ GIR_EraseRootFromParent_Done,
10615 /* 9941 */ // Label 458: @9941
10616 /* 9941 */ GIM_Try, /*On fail goto*//*Label 459*/ GIMT_Encode4(9964), // Rule ID 158 //
10617 /* 9946 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
10618 /* 9949 */ // MIs[0] dst
10619 /* 9949 */ // No operand predicates
10620 /* 9949 */ // MIs[0] x
10621 /* 9949 */ // No operand predicates
10622 /* 9949 */ // MIs[0] y
10623 /* 9949 */ // No operand predicates
10624 /* 9949 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner19),
10625 /* 9953 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10626 /* 9958 */ // Combiner Rule #113: right_identity_neg_zero_fp
10627 /* 9958 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10628 /* 9963 */ GIR_EraseRootFromParent_Done,
10629 /* 9964 */ // Label 459: @9964
10630 /* 9964 */ GIM_Try, /*On fail goto*//*Label 460*/ GIMT_Encode4(9989), // Rule ID 402 //
10631 /* 9969 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule270Enabled),
10632 /* 9972 */ // MIs[0] dst
10633 /* 9972 */ // No operand predicates
10634 /* 9972 */ // MIs[0] lhs
10635 /* 9972 */ // No operand predicates
10636 /* 9972 */ // MIs[0] rhs
10637 /* 9972 */ // No operand predicates
10638 /* 9972 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
10639 /* 9976 */ // Combiner Rule #270: G_FADD_commute_fp_constant_to_rhs
10640 /* 9976 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FADD),
10641 /* 9979 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10642 /* 9981 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10643 /* 9983 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10644 /* 9985 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10645 /* 9988 */ GIR_EraseRootFromParent_Done,
10646 /* 9989 */ // Label 460: @9989
10647 /* 9989 */ GIM_Try, /*On fail goto*//*Label 461*/ GIMT_Encode4(10018), // Rule ID 159 //
10648 /* 9994 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
10649 /* 9997 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmNsz),
10650 /* 10003 */ // MIs[0] dst
10651 /* 10003 */ // No operand predicates
10652 /* 10003 */ // MIs[0] x
10653 /* 10003 */ // No operand predicates
10654 /* 10003 */ // MIs[0] y
10655 /* 10003 */ // No operand predicates
10656 /* 10003 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner20),
10657 /* 10007 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10658 /* 10012 */ // Combiner Rule #114: right_identity_neg_zero_fp_nsz
10659 /* 10012 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10660 /* 10017 */ GIR_EraseRootFromParent_Done,
10661 /* 10018 */ // Label 461: @10018
10662 /* 10018 */ GIM_Try, /*On fail goto*//*Label 462*/ GIMT_Encode4(10029), // Rule ID 298 //
10663 /* 10023 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
10664 /* 10026 */ // MIs[0] d
10665 /* 10026 */ // No operand predicates
10666 /* 10026 */ // MIs[0] mi.src0
10667 /* 10026 */ // No operand predicates
10668 /* 10026 */ // MIs[0] mi.src1
10669 /* 10026 */ // No operand predicates
10670 /* 10026 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[0]]
10671 /* 10026 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
10672 /* 10029 */ // Label 462: @10029
10673 /* 10029 */ GIM_Try, /*On fail goto*//*Label 463*/ GIMT_Encode4(10040), // Rule ID 333 //
10674 /* 10034 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule225Enabled),
10675 /* 10037 */ // MIs[0] dst
10676 /* 10037 */ // No operand predicates
10677 /* 10037 */ // MIs[0] src1
10678 /* 10037 */ // No operand predicates
10679 /* 10037 */ // MIs[0] src2
10680 /* 10037 */ // No operand predicates
10681 /* 10037 */ // Combiner Rule #225: combine_fadd_fmul_to_fmad_or_fma
10682 /* 10037 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
10683 /* 10040 */ // Label 463: @10040
10684 /* 10040 */ GIM_Try, /*On fail goto*//*Label 464*/ GIMT_Encode4(10051), // Rule ID 334 //
10685 /* 10045 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule226Enabled),
10686 /* 10048 */ // MIs[0] dst
10687 /* 10048 */ // No operand predicates
10688 /* 10048 */ // MIs[0] src1
10689 /* 10048 */ // No operand predicates
10690 /* 10048 */ // MIs[0] src2
10691 /* 10048 */ // No operand predicates
10692 /* 10048 */ // Combiner Rule #226: combine_fadd_fpext_fmul_to_fmad_or_fma
10693 /* 10048 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
10694 /* 10051 */ // Label 464: @10051
10695 /* 10051 */ GIM_Try, /*On fail goto*//*Label 465*/ GIMT_Encode4(10062), // Rule ID 335 //
10696 /* 10056 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
10697 /* 10059 */ // MIs[0] dst
10698 /* 10059 */ // No operand predicates
10699 /* 10059 */ // MIs[0] src1
10700 /* 10059 */ // No operand predicates
10701 /* 10059 */ // MIs[0] src2
10702 /* 10059 */ // No operand predicates
10703 /* 10059 */ // Combiner Rule #227: combine_fadd_fma_fmul_to_fmad_or_fma
10704 /* 10059 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
10705 /* 10062 */ // Label 465: @10062
10706 /* 10062 */ GIM_Try, /*On fail goto*//*Label 466*/ GIMT_Encode4(10073), // Rule ID 336 //
10707 /* 10067 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
10708 /* 10070 */ // MIs[0] dst
10709 /* 10070 */ // No operand predicates
10710 /* 10070 */ // MIs[0] src1
10711 /* 10070 */ // No operand predicates
10712 /* 10070 */ // MIs[0] src2
10713 /* 10070 */ // No operand predicates
10714 /* 10070 */ // Combiner Rule #228: combine_fadd_fpext_fma_fmul_to_fmad_or_fma
10715 /* 10070 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner89),
10716 /* 10073 */ // Label 466: @10073
10717 /* 10073 */ GIM_Try, /*On fail goto*//*Label 467*/ GIMT_Encode4(10084), // Rule ID 359 //
10718 /* 10078 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
10719 /* 10081 */ // MIs[0] root
10720 /* 10081 */ // No operand predicates
10721 /* 10081 */ // MIs[0] mi.x
10722 /* 10081 */ // No operand predicates
10723 /* 10081 */ // MIs[0] mi.y
10724 /* 10081 */ // No operand predicates
10725 /* 10081 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[5]]
10726 /* 10081 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
10727 /* 10084 */ // Label 467: @10084
10728 /* 10084 */ GIM_Reject,
10729 /* 10085 */ // Label 66: @10085
10730 /* 10085 */ GIM_Try, /*On fail goto*//*Label 468*/ GIMT_Encode4(10126), // Rule ID 380 //
10731 /* 10090 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule248Enabled),
10732 /* 10093 */ // MIs[0] dst
10733 /* 10093 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
10734 /* 10097 */ // MIs[0] lhs
10735 /* 10097 */ // No operand predicates
10736 /* 10097 */ // MIs[0] rhs
10737 /* 10097 */ // No operand predicates
10738 /* 10097 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner47),
10739 /* 10101 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
10740 /* 10104 */ // Combiner Rule #248: fsub_to_fneg
10741 /* 10104 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FCANONICALIZE),
10742 /* 10107 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
10743 /* 10112 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10744 /* 10114 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
10745 /* 10118 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
10746 /* 10122 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
10747 /* 10125 */ GIR_EraseRootFromParent_Done,
10748 /* 10126 */ // Label 468: @10126
10749 /* 10126 */ GIM_Try, /*On fail goto*//*Label 469*/ GIMT_Encode4(10163), // Rule ID 327 //
10750 /* 10131 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule219Enabled),
10751 /* 10134 */ // MIs[0] dst
10752 /* 10134 */ // No operand predicates
10753 /* 10134 */ // MIs[0] x
10754 /* 10134 */ // No operand predicates
10755 /* 10134 */ // MIs[0] negy
10756 /* 10134 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
10757 /* 10138 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
10758 /* 10142 */ // MIs[1] y
10759 /* 10142 */ // No operand predicates
10760 /* 10142 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner42),
10761 /* 10146 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10762 /* 10148 */ // Combiner Rule #219: redundant_neg_operands_fsub
10763 /* 10148 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FADD),
10764 /* 10151 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10765 /* 10153 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
10766 /* 10155 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // y
10767 /* 10159 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10768 /* 10162 */ GIR_EraseRootFromParent_Done,
10769 /* 10163 */ // Label 469: @10163
10770 /* 10163 */ GIM_Try, /*On fail goto*//*Label 470*/ GIMT_Encode4(10174), // Rule ID 299 //
10771 /* 10168 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
10772 /* 10171 */ // MIs[0] d
10773 /* 10171 */ // No operand predicates
10774 /* 10171 */ // MIs[0] mi.src0
10775 /* 10171 */ // No operand predicates
10776 /* 10171 */ // MIs[0] mi.src1
10777 /* 10171 */ // No operand predicates
10778 /* 10171 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[1]]
10779 /* 10171 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
10780 /* 10174 */ // Label 470: @10174
10781 /* 10174 */ GIM_Try, /*On fail goto*//*Label 471*/ GIMT_Encode4(10185), // Rule ID 337 //
10782 /* 10179 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule229Enabled),
10783 /* 10182 */ // MIs[0] dst
10784 /* 10182 */ // No operand predicates
10785 /* 10182 */ // MIs[0] src1
10786 /* 10182 */ // No operand predicates
10787 /* 10182 */ // MIs[0] src2
10788 /* 10182 */ // No operand predicates
10789 /* 10182 */ // Combiner Rule #229: combine_fsub_fmul_to_fmad_or_fma
10790 /* 10182 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner90),
10791 /* 10185 */ // Label 471: @10185
10792 /* 10185 */ GIM_Try, /*On fail goto*//*Label 472*/ GIMT_Encode4(10196), // Rule ID 338 //
10793 /* 10190 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule230Enabled),
10794 /* 10193 */ // MIs[0] dst
10795 /* 10193 */ // No operand predicates
10796 /* 10193 */ // MIs[0] src1
10797 /* 10193 */ // No operand predicates
10798 /* 10193 */ // MIs[0] src2
10799 /* 10193 */ // No operand predicates
10800 /* 10193 */ // Combiner Rule #230: combine_fsub_fneg_fmul_to_fmad_or_fma
10801 /* 10193 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
10802 /* 10196 */ // Label 472: @10196
10803 /* 10196 */ GIM_Try, /*On fail goto*//*Label 473*/ GIMT_Encode4(10207), // Rule ID 339 //
10804 /* 10201 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule231Enabled),
10805 /* 10204 */ // MIs[0] dst
10806 /* 10204 */ // No operand predicates
10807 /* 10204 */ // MIs[0] src1
10808 /* 10204 */ // No operand predicates
10809 /* 10204 */ // MIs[0] src2
10810 /* 10204 */ // No operand predicates
10811 /* 10204 */ // Combiner Rule #231: combine_fsub_fpext_fmul_to_fmad_or_fma
10812 /* 10204 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
10813 /* 10207 */ // Label 473: @10207
10814 /* 10207 */ GIM_Try, /*On fail goto*//*Label 474*/ GIMT_Encode4(10218), // Rule ID 340 //
10815 /* 10212 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule232Enabled),
10816 /* 10215 */ // MIs[0] dst
10817 /* 10215 */ // No operand predicates
10818 /* 10215 */ // MIs[0] src1
10819 /* 10215 */ // No operand predicates
10820 /* 10215 */ // MIs[0] src2
10821 /* 10215 */ // No operand predicates
10822 /* 10215 */ // Combiner Rule #232: combine_fsub_fpext_fneg_fmul_to_fmad_or_fma
10823 /* 10215 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
10824 /* 10218 */ // Label 474: @10218
10825 /* 10218 */ GIM_Try, /*On fail goto*//*Label 475*/ GIMT_Encode4(10229), // Rule ID 360 //
10826 /* 10223 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
10827 /* 10226 */ // MIs[0] root
10828 /* 10226 */ // No operand predicates
10829 /* 10226 */ // MIs[0] mi.x
10830 /* 10226 */ // No operand predicates
10831 /* 10226 */ // MIs[0] mi.y
10832 /* 10226 */ // No operand predicates
10833 /* 10226 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[6]]
10834 /* 10226 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
10835 /* 10229 */ // Label 475: @10229
10836 /* 10229 */ GIM_Reject,
10837 /* 10230 */ // Label 67: @10230
10838 /* 10230 */ GIM_Try, /*On fail goto*//*Label 476*/ GIMT_Encode4(10273), // Rule ID 328 //
10839 /* 10235 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
10840 /* 10238 */ // MIs[0] dst
10841 /* 10238 */ // No operand predicates
10842 /* 10238 */ // MIs[0] nx
10843 /* 10238 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10844 /* 10242 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
10845 /* 10246 */ // MIs[1] x
10846 /* 10246 */ // No operand predicates
10847 /* 10246 */ // MIs[0] ny
10848 /* 10246 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
10849 /* 10250 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
10850 /* 10254 */ // MIs[2] y
10851 /* 10254 */ // No operand predicates
10852 /* 10254 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
10853 /* 10256 */ // Combiner Rule #220: G_FMUL_fneg_fneg
10854 /* 10256 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMUL),
10855 /* 10259 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10856 /* 10261 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
10857 /* 10265 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
10858 /* 10269 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10859 /* 10272 */ GIR_EraseRootFromParent_Done,
10860 /* 10273 */ // Label 476: @10273
10861 /* 10273 */ GIM_Try, /*On fail goto*//*Label 477*/ GIMT_Encode4(10296), // Rule ID 148 //
10862 /* 10278 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
10863 /* 10281 */ // MIs[0] dst
10864 /* 10281 */ // No operand predicates
10865 /* 10281 */ // MIs[0] x
10866 /* 10281 */ // No operand predicates
10867 /* 10281 */ // MIs[0] y
10868 /* 10281 */ // No operand predicates
10869 /* 10281 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner17),
10870 /* 10285 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10871 /* 10290 */ // Combiner Rule #104: right_identity_one_fp
10872 /* 10290 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10873 /* 10295 */ GIR_EraseRootFromParent_Done,
10874 /* 10296 */ // Label 477: @10296
10875 /* 10296 */ GIM_Try, /*On fail goto*//*Label 478*/ GIMT_Encode4(10316), // Rule ID 160 //
10876 /* 10301 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule115Enabled),
10877 /* 10304 */ // MIs[0] dst
10878 /* 10304 */ // No operand predicates
10879 /* 10304 */ // MIs[0] x
10880 /* 10304 */ // No operand predicates
10881 /* 10304 */ // MIs[0] y
10882 /* 10304 */ // No operand predicates
10883 /* 10304 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner21),
10884 /* 10308 */ // Combiner Rule #115: right_identity_neg_one_fp
10885 /* 10308 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
10886 /* 10311 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10887 /* 10313 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
10888 /* 10315 */ GIR_EraseRootFromParent_Done,
10889 /* 10316 */ // Label 478: @10316
10890 /* 10316 */ GIM_Try, /*On fail goto*//*Label 479*/ GIMT_Encode4(10341), // Rule ID 403 //
10891 /* 10321 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule271Enabled),
10892 /* 10324 */ // MIs[0] dst
10893 /* 10324 */ // No operand predicates
10894 /* 10324 */ // MIs[0] lhs
10895 /* 10324 */ // No operand predicates
10896 /* 10324 */ // MIs[0] rhs
10897 /* 10324 */ // No operand predicates
10898 /* 10324 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
10899 /* 10328 */ // Combiner Rule #271: G_FMUL_commute_fp_constant_to_rhs
10900 /* 10328 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMUL),
10901 /* 10331 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10902 /* 10333 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10903 /* 10335 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10904 /* 10337 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10905 /* 10340 */ GIR_EraseRootFromParent_Done,
10906 /* 10341 */ // Label 479: @10341
10907 /* 10341 */ GIM_Try, /*On fail goto*//*Label 480*/ GIMT_Encode4(10352), // Rule ID 300 //
10908 /* 10346 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
10909 /* 10349 */ // MIs[0] d
10910 /* 10349 */ // No operand predicates
10911 /* 10349 */ // MIs[0] mi.src0
10912 /* 10349 */ // No operand predicates
10913 /* 10349 */ // MIs[0] mi.src1
10914 /* 10349 */ // No operand predicates
10915 /* 10349 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[2]]
10916 /* 10349 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
10917 /* 10352 */ // Label 480: @10352
10918 /* 10352 */ GIM_Try, /*On fail goto*//*Label 481*/ GIMT_Encode4(10363), // Rule ID 358 //
10919 /* 10357 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
10920 /* 10360 */ // MIs[0] root
10921 /* 10360 */ // No operand predicates
10922 /* 10360 */ // MIs[0] mi.x
10923 /* 10360 */ // No operand predicates
10924 /* 10360 */ // MIs[0] mi.y
10925 /* 10360 */ // No operand predicates
10926 /* 10360 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[4]]
10927 /* 10360 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
10928 /* 10363 */ // Label 481: @10363
10929 /* 10363 */ GIM_Reject,
10930 /* 10364 */ // Label 68: @10364
10931 /* 10364 */ GIM_Try, /*On fail goto*//*Label 482*/ GIMT_Encode4(10409), // Rule ID 331 //
10932 /* 10369 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule223Enabled),
10933 /* 10372 */ // MIs[0] dst
10934 /* 10372 */ // No operand predicates
10935 /* 10372 */ // MIs[0] nx
10936 /* 10372 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10937 /* 10376 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
10938 /* 10380 */ // MIs[1] x
10939 /* 10380 */ // No operand predicates
10940 /* 10380 */ // MIs[0] ny
10941 /* 10380 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
10942 /* 10384 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
10943 /* 10388 */ // MIs[2] y
10944 /* 10388 */ // No operand predicates
10945 /* 10388 */ // MIs[0] z
10946 /* 10388 */ // No operand predicates
10947 /* 10388 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
10948 /* 10390 */ // Combiner Rule #223: G_FMA_fneg_fneg
10949 /* 10390 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMA),
10950 /* 10393 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10951 /* 10395 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
10952 /* 10399 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
10953 /* 10403 */ GIR_RootToRootCopy, /*OpIdx*/3, // z
10954 /* 10405 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10955 /* 10408 */ GIR_EraseRootFromParent_Done,
10956 /* 10409 */ // Label 482: @10409
10957 /* 10409 */ GIM_Try, /*On fail goto*//*Label 483*/ GIMT_Encode4(10420), // Rule ID 311 //
10958 /* 10414 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
10959 /* 10417 */ // MIs[0] dst
10960 /* 10417 */ // No operand predicates
10961 /* 10417 */ // MIs[0] d.src0
10962 /* 10417 */ // No operand predicates
10963 /* 10417 */ // MIs[0] d.src1
10964 /* 10417 */ // No operand predicates
10965 /* 10417 */ // MIs[0] d.src2
10966 /* 10417 */ // No operand predicates
10967 /* 10417 */ // Combiner Rule #212: constant_fold_fma @ [d[1]]
10968 /* 10417 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
10969 /* 10420 */ // Label 483: @10420
10970 /* 10420 */ GIM_Reject,
10971 /* 10421 */ // Label 69: @10421
10972 /* 10421 */ GIM_Try, /*On fail goto*//*Label 484*/ GIMT_Encode4(10466), // Rule ID 330 //
10973 /* 10426 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule222Enabled),
10974 /* 10429 */ // MIs[0] dst
10975 /* 10429 */ // No operand predicates
10976 /* 10429 */ // MIs[0] nx
10977 /* 10429 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10978 /* 10433 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
10979 /* 10437 */ // MIs[1] x
10980 /* 10437 */ // No operand predicates
10981 /* 10437 */ // MIs[0] ny
10982 /* 10437 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
10983 /* 10441 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
10984 /* 10445 */ // MIs[2] y
10985 /* 10445 */ // No operand predicates
10986 /* 10445 */ // MIs[0] z
10987 /* 10445 */ // No operand predicates
10988 /* 10445 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
10989 /* 10447 */ // Combiner Rule #222: G_FMAD_fneg_fneg
10990 /* 10447 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMAD),
10991 /* 10450 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10992 /* 10452 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
10993 /* 10456 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
10994 /* 10460 */ GIR_RootToRootCopy, /*OpIdx*/3, // z
10995 /* 10462 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10996 /* 10465 */ GIR_EraseRootFromParent_Done,
10997 /* 10466 */ // Label 484: @10466
10998 /* 10466 */ GIM_Try, /*On fail goto*//*Label 485*/ GIMT_Encode4(10477), // Rule ID 310 //
10999 /* 10471 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
11000 /* 10474 */ // MIs[0] dst
11001 /* 10474 */ // No operand predicates
11002 /* 10474 */ // MIs[0] d.src0
11003 /* 10474 */ // No operand predicates
11004 /* 10474 */ // MIs[0] d.src1
11005 /* 10474 */ // No operand predicates
11006 /* 10474 */ // MIs[0] d.src2
11007 /* 10474 */ // No operand predicates
11008 /* 10474 */ // Combiner Rule #212: constant_fold_fma @ [d[0]]
11009 /* 10474 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
11010 /* 10477 */ // Label 485: @10477
11011 /* 10477 */ GIM_Reject,
11012 /* 10478 */ // Label 70: @10478
11013 /* 10478 */ GIM_Try, /*On fail goto*//*Label 486*/ GIMT_Encode4(10521), // Rule ID 329 //
11014 /* 10483 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
11015 /* 10486 */ // MIs[0] dst
11016 /* 10486 */ // No operand predicates
11017 /* 10486 */ // MIs[0] nx
11018 /* 10486 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11019 /* 10490 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
11020 /* 10494 */ // MIs[1] x
11021 /* 10494 */ // No operand predicates
11022 /* 10494 */ // MIs[0] ny
11023 /* 10494 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
11024 /* 10498 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
11025 /* 10502 */ // MIs[2] y
11026 /* 10502 */ // No operand predicates
11027 /* 10502 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
11028 /* 10504 */ // Combiner Rule #221: G_FDIV_fneg_fneg
11029 /* 10504 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FDIV),
11030 /* 10507 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11031 /* 10509 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
11032 /* 10513 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
11033 /* 10517 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11034 /* 10520 */ GIR_EraseRootFromParent_Done,
11035 /* 10521 */ // Label 486: @10521
11036 /* 10521 */ GIM_Try, /*On fail goto*//*Label 487*/ GIMT_Encode4(10532), // Rule ID 301 //
11037 /* 10526 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11038 /* 10529 */ // MIs[0] d
11039 /* 10529 */ // No operand predicates
11040 /* 10529 */ // MIs[0] mi.src0
11041 /* 10529 */ // No operand predicates
11042 /* 10529 */ // MIs[0] mi.src1
11043 /* 10529 */ // No operand predicates
11044 /* 10529 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[3]]
11045 /* 10529 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11046 /* 10532 */ // Label 487: @10532
11047 /* 10532 */ GIM_Try, /*On fail goto*//*Label 488*/ GIMT_Encode4(10543), // Rule ID 361 //
11048 /* 10537 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11049 /* 10540 */ // MIs[0] root
11050 /* 10540 */ // No operand predicates
11051 /* 10540 */ // MIs[0] mi.x
11052 /* 10540 */ // No operand predicates
11053 /* 10540 */ // MIs[0] mi.y
11054 /* 10540 */ // No operand predicates
11055 /* 10540 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[7]]
11056 /* 10540 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11057 /* 10543 */ // Label 488: @10543
11058 /* 10543 */ GIM_Try, /*On fail goto*//*Label 489*/ GIMT_Encode4(10554), // Rule ID 374 //
11059 /* 10548 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule242Enabled),
11060 /* 10551 */ // MIs[0] dst
11061 /* 10551 */ // No operand predicates
11062 /* 10551 */ // MIs[0] src1
11063 /* 10551 */ // No operand predicates
11064 /* 10551 */ // MIs[0] src2
11065 /* 10551 */ // No operand predicates
11066 /* 10551 */ // Combiner Rule #242: fdiv_repeated_divison
11067 /* 10551 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner100),
11068 /* 10554 */ // Label 489: @10554
11069 /* 10554 */ GIM_Reject,
11070 /* 10555 */ // Label 71: @10555
11071 /* 10555 */ GIM_Try, /*On fail goto*//*Label 490*/ GIMT_Encode4(10566), // Rule ID 302 //
11072 /* 10560 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11073 /* 10563 */ // MIs[0] d
11074 /* 10563 */ // No operand predicates
11075 /* 10563 */ // MIs[0] mi.src0
11076 /* 10563 */ // No operand predicates
11077 /* 10563 */ // MIs[0] mi.src1
11078 /* 10563 */ // No operand predicates
11079 /* 10563 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[4]]
11080 /* 10563 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11081 /* 10566 */ // Label 490: @10566
11082 /* 10566 */ GIM_Try, /*On fail goto*//*Label 491*/ GIMT_Encode4(10577), // Rule ID 362 //
11083 /* 10571 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11084 /* 10574 */ // MIs[0] root
11085 /* 10574 */ // No operand predicates
11086 /* 10574 */ // MIs[0] mi.x
11087 /* 10574 */ // No operand predicates
11088 /* 10574 */ // MIs[0] mi.y
11089 /* 10574 */ // No operand predicates
11090 /* 10574 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[8]]
11091 /* 10574 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11092 /* 10577 */ // Label 491: @10577
11093 /* 10577 */ GIM_Reject,
11094 /* 10578 */ // Label 72: @10578
11095 /* 10578 */ GIM_Try, /*On fail goto*//*Label 492*/ GIMT_Encode4(10599), // Rule ID 240 //
11096 /* 10583 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
11097 /* 10586 */ // MIs[0] dst
11098 /* 10586 */ // No operand predicates
11099 /* 10586 */ // MIs[0] float
11100 /* 10586 */ // No operand predicates
11101 /* 10586 */ // MIs[0] int
11102 /* 10586 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
11103 /* 10590 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
11104 /* 10594 */ // MIs[1] imm
11105 /* 10594 */ // No operand predicates
11106 /* 10594 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11107 /* 10596 */ // Combiner Rule #186: expand_const_fpowi
11108 /* 10596 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner67),
11109 /* 10599 */ // Label 492: @10599
11110 /* 10599 */ GIM_Reject,
11111 /* 10600 */ // Label 73: @10600
11112 /* 10600 */ GIM_Try, /*On fail goto*//*Label 493*/ GIMT_Encode4(10621), // Rule ID 210 //
11113 /* 10605 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
11114 /* 10608 */ // MIs[0] dst
11115 /* 10608 */ // No operand predicates
11116 /* 10608 */ // MIs[0] src0
11117 /* 10608 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11118 /* 10612 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11119 /* 10616 */ // MIs[1] cst
11120 /* 10616 */ // No operand predicates
11121 /* 10616 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11122 /* 10618 */ // Combiner Rule #160: constant_fold_flog2
11123 /* 10618 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
11124 /* 10621 */ // Label 493: @10621
11125 /* 10621 */ GIM_Reject,
11126 /* 10622 */ // Label 74: @10622
11127 /* 10622 */ GIM_Try, /*On fail goto*//*Label 494*/ GIMT_Encode4(10643), // Rule ID 207 //
11128 /* 10627 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
11129 /* 10630 */ // MIs[0] dst
11130 /* 10630 */ // No operand predicates
11131 /* 10630 */ // MIs[0] src0
11132 /* 10630 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11133 /* 10634 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11134 /* 10638 */ // MIs[1] cst
11135 /* 10638 */ // No operand predicates
11136 /* 10638 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11137 /* 10640 */ // Combiner Rule #157: constant_fold_fneg
11138 /* 10640 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
11139 /* 10643 */ // Label 494: @10643
11140 /* 10643 */ GIM_Try, /*On fail goto*//*Label 495*/ GIMT_Encode4(10672), // Rule ID 146 //
11141 /* 10648 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
11142 /* 10651 */ // MIs[0] dst
11143 /* 10651 */ // No operand predicates
11144 /* 10651 */ // MIs[0] t
11145 /* 10651 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11146 /* 10655 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
11147 /* 10659 */ // MIs[1] src
11148 /* 10659 */ // No operand predicates
11149 /* 10659 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
11150 /* 10664 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11151 /* 10666 */ // Combiner Rule #102: fneg_fneg_fold
11152 /* 10666 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
11153 /* 10671 */ GIR_EraseRootFromParent_Done,
11154 /* 10672 */ // Label 495: @10672
11155 /* 10672 */ GIM_Reject,
11156 /* 10673 */ // Label 75: @10673
11157 /* 10673 */ GIM_Try, /*On fail goto*//*Label 496*/ GIMT_Encode4(10694), // Rule ID 212 //
11158 /* 10678 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
11159 /* 10681 */ // MIs[0] dst
11160 /* 10681 */ // No operand predicates
11161 /* 10681 */ // MIs[0] src0
11162 /* 10681 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11163 /* 10685 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11164 /* 10689 */ // MIs[1] cst
11165 /* 10689 */ // No operand predicates
11166 /* 10689 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11167 /* 10691 */ // Combiner Rule #162: constant_fold_fpext
11168 /* 10691 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
11169 /* 10694 */ // Label 496: @10694
11170 /* 10694 */ GIM_Reject,
11171 /* 10695 */ // Label 76: @10695
11172 /* 10695 */ GIM_Try, /*On fail goto*//*Label 497*/ GIMT_Encode4(10716), // Rule ID 211 //
11173 /* 10700 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
11174 /* 10703 */ // MIs[0] dst
11175 /* 10703 */ // No operand predicates
11176 /* 10703 */ // MIs[0] src0
11177 /* 10703 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11178 /* 10707 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11179 /* 10711 */ // MIs[1] cst
11180 /* 10711 */ // No operand predicates
11181 /* 10711 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11182 /* 10713 */ // Combiner Rule #161: constant_fold_fptrunc
11183 /* 10713 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
11184 /* 10716 */ // Label 497: @10716
11185 /* 10716 */ GIM_Try, /*On fail goto*//*Label 498*/ GIMT_Encode4(10749), // Rule ID 157 //
11186 /* 10721 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
11187 /* 10724 */ // MIs[0] dst
11188 /* 10724 */ // No operand predicates
11189 /* 10724 */ // MIs[0] src1
11190 /* 10724 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11191 /* 10728 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
11192 /* 10732 */ // MIs[1] src0
11193 /* 10732 */ // No operand predicates
11194 /* 10732 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
11195 /* 10736 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
11196 /* 10741 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11197 /* 10743 */ // Combiner Rule #112: fptrunc_fpext_fold
11198 /* 10743 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
11199 /* 10748 */ GIR_EraseRootFromParent_Done,
11200 /* 10749 */ // Label 498: @10749
11201 /* 10749 */ GIM_Reject,
11202 /* 10750 */ // Label 77: @10750
11203 /* 10750 */ GIM_Try, /*On fail goto*//*Label 499*/ GIMT_Encode4(10774), // Rule ID 102 //
11204 /* 10755 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
11205 /* 10758 */ // MIs[0] dst
11206 /* 10758 */ // No operand predicates
11207 /* 10758 */ // MIs[0] __unary_undef_to_undef_match_0.x
11208 /* 10758 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11209 /* 10762 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11210 /* 10766 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11211 /* 10768 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[5]]
11212 /* 10768 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11213 /* 10771 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11214 /* 10773 */ GIR_EraseRootFromParent_Done,
11215 /* 10774 */ // Label 499: @10774
11216 /* 10774 */ GIM_Reject,
11217 /* 10775 */ // Label 78: @10775
11218 /* 10775 */ GIM_Try, /*On fail goto*//*Label 500*/ GIMT_Encode4(10799), // Rule ID 103 //
11219 /* 10780 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
11220 /* 10783 */ // MIs[0] dst
11221 /* 10783 */ // No operand predicates
11222 /* 10783 */ // MIs[0] __unary_undef_to_undef_match_0.x
11223 /* 10783 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11224 /* 10787 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11225 /* 10791 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11226 /* 10793 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[6]]
11227 /* 10793 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11228 /* 10796 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11229 /* 10798 */ GIR_EraseRootFromParent_Done,
11230 /* 10799 */ // Label 500: @10799
11231 /* 10799 */ GIM_Reject,
11232 /* 10800 */ // Label 79: @10800
11233 /* 10800 */ GIM_Try, /*On fail goto*//*Label 501*/ GIMT_Encode4(10821), // Rule ID 83 //
11234 /* 10805 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
11235 /* 10808 */ // MIs[0] dst
11236 /* 10808 */ // No operand predicates
11237 /* 10808 */ // MIs[0] __undef_to_fp_zero_match_0.x
11238 /* 10808 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11239 /* 10812 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11240 /* 10816 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11241 /* 10818 */ // Combiner Rule #76: undef_to_fp_zero @ [__undef_to_fp_zero_match_0[1]]
11242 /* 10818 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
11243 /* 10821 */ // Label 501: @10821
11244 /* 10821 */ GIM_Try, /*On fail goto*//*Label 502*/ GIMT_Encode4(10836), // Rule ID 220 //
11245 /* 10826 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
11246 /* 10829 */ // MIs[0] dst
11247 /* 10829 */ // No operand predicates
11248 /* 10829 */ // MIs[0] Operand 1
11249 /* 10829 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
11250 /* 10833 */ // Combiner Rule #170: itof_const_zero_fold_si
11251 /* 10833 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
11252 /* 10836 */ // Label 502: @10836
11253 /* 10836 */ GIM_Reject,
11254 /* 10837 */ // Label 80: @10837
11255 /* 10837 */ GIM_Try, /*On fail goto*//*Label 503*/ GIMT_Encode4(10858), // Rule ID 82 //
11256 /* 10842 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
11257 /* 10845 */ // MIs[0] dst
11258 /* 10845 */ // No operand predicates
11259 /* 10845 */ // MIs[0] __undef_to_fp_zero_match_0.x
11260 /* 10845 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11261 /* 10849 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11262 /* 10853 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11263 /* 10855 */ // Combiner Rule #76: undef_to_fp_zero @ [__undef_to_fp_zero_match_0[0]]
11264 /* 10855 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
11265 /* 10858 */ // Label 503: @10858
11266 /* 10858 */ GIM_Try, /*On fail goto*//*Label 504*/ GIMT_Encode4(10873), // Rule ID 221 //
11267 /* 10863 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
11268 /* 10866 */ // MIs[0] dst
11269 /* 10866 */ // No operand predicates
11270 /* 10866 */ // MIs[0] Operand 1
11271 /* 10866 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
11272 /* 10870 */ // Combiner Rule #171: itof_const_zero_fold_ui
11273 /* 10870 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
11274 /* 10873 */ // Label 504: @10873
11275 /* 10873 */ GIM_Reject,
11276 /* 10874 */ // Label 81: @10874
11277 /* 10874 */ GIM_Try, /*On fail goto*//*Label 505*/ GIMT_Encode4(10903), // Rule ID 26 //
11278 /* 10879 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
11279 /* 10882 */ // MIs[0] dst
11280 /* 10882 */ // No operand predicates
11281 /* 10882 */ // MIs[0] src
11282 /* 10882 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11283 /* 10886 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
11284 /* 10890 */ // MIs[1] __idempotent_prop_match_0.x
11285 /* 10890 */ // No operand predicates
11286 /* 10890 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11287 /* 10895 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11288 /* 10897 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[1]]
11289 /* 10897 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11290 /* 10902 */ GIR_EraseRootFromParent_Done,
11291 /* 10903 */ // Label 505: @10903
11292 /* 10903 */ GIM_Try, /*On fail goto*//*Label 506*/ GIMT_Encode4(10924), // Rule ID 208 //
11293 /* 10908 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
11294 /* 10911 */ // MIs[0] dst
11295 /* 10911 */ // No operand predicates
11296 /* 10911 */ // MIs[0] src0
11297 /* 10911 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11298 /* 10915 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11299 /* 10919 */ // MIs[1] cst
11300 /* 10919 */ // No operand predicates
11301 /* 10919 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11302 /* 10921 */ // Combiner Rule #158: constant_fold_fabs
11303 /* 10921 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
11304 /* 10924 */ // Label 506: @10924
11305 /* 10924 */ GIM_Try, /*On fail goto*//*Label 507*/ GIMT_Encode4(10952), // Rule ID 323 //
11306 /* 10929 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
11307 /* 10932 */ // MIs[0] dst
11308 /* 10932 */ // No operand predicates
11309 /* 10932 */ // MIs[0] tmp
11310 /* 10932 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11311 /* 10936 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
11312 /* 10940 */ // MIs[1] x
11313 /* 10940 */ // No operand predicates
11314 /* 10940 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11315 /* 10942 */ // Combiner Rule #215: fabs_fneg_fold
11316 /* 10942 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FABS),
11317 /* 10945 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11318 /* 10947 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
11319 /* 10951 */ GIR_EraseRootFromParent_Done,
11320 /* 10952 */ // Label 507: @10952
11321 /* 10952 */ GIM_Reject,
11322 /* 10953 */ // Label 82: @10953
11323 /* 10953 */ GIM_Try, /*On fail goto*//*Label 508*/ GIMT_Encode4(10964), // Rule ID 303 //
11324 /* 10958 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11325 /* 10961 */ // MIs[0] d
11326 /* 10961 */ // No operand predicates
11327 /* 10961 */ // MIs[0] mi.src0
11328 /* 10961 */ // No operand predicates
11329 /* 10961 */ // MIs[0] mi.src1
11330 /* 10961 */ // No operand predicates
11331 /* 10961 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[5]]
11332 /* 10961 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11333 /* 10964 */ // Label 508: @10964
11334 /* 10964 */ GIM_Reject,
11335 /* 10965 */ // Label 83: @10965
11336 /* 10965 */ GIM_Try, /*On fail goto*//*Label 509*/ GIMT_Encode4(10994), // Rule ID 27 //
11337 /* 10970 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
11338 /* 10973 */ // MIs[0] dst
11339 /* 10973 */ // No operand predicates
11340 /* 10973 */ // MIs[0] src
11341 /* 10973 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11342 /* 10977 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCANONICALIZE),
11343 /* 10981 */ // MIs[1] __idempotent_prop_match_0.x
11344 /* 10981 */ // No operand predicates
11345 /* 10981 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11346 /* 10986 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11347 /* 10988 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[2]]
11348 /* 10988 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11349 /* 10993 */ GIR_EraseRootFromParent_Done,
11350 /* 10994 */ // Label 509: @10994
11351 /* 10994 */ GIM_Reject,
11352 /* 10995 */ // Label 84: @10995
11353 /* 10995 */ GIM_Try, /*On fail goto*//*Label 510*/ GIMT_Encode4(11018), // Rule ID 232 //
11354 /* 11000 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
11355 /* 11003 */ // MIs[0] dst
11356 /* 11003 */ // No operand predicates
11357 /* 11003 */ // MIs[0] lhs
11358 /* 11003 */ // No operand predicates
11359 /* 11003 */ // MIs[0] rhs
11360 /* 11003 */ // No operand predicates
11361 /* 11003 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner32),
11362 /* 11007 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11363 /* 11012 */ // Combiner Rule #182: minmax_nan_num_lhs @ [__minmax_nan_num_lhs_match_0[0]]
11364 /* 11012 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11365 /* 11017 */ GIR_EraseRootFromParent_Done,
11366 /* 11018 */ // Label 510: @11018
11367 /* 11018 */ GIM_Try, /*On fail goto*//*Label 511*/ GIMT_Encode4(11041), // Rule ID 234 //
11368 /* 11023 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
11369 /* 11026 */ // MIs[0] dst
11370 /* 11026 */ // No operand predicates
11371 /* 11026 */ // MIs[0] lhs
11372 /* 11026 */ // No operand predicates
11373 /* 11026 */ // MIs[0] rhs
11374 /* 11026 */ // No operand predicates
11375 /* 11026 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner33),
11376 /* 11030 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11377 /* 11035 */ // Combiner Rule #183: minmax_nan_num_rhs @ [__minmax_nan_num_rhs_match_0[0]]
11378 /* 11035 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11379 /* 11040 */ GIR_EraseRootFromParent_Done,
11380 /* 11041 */ // Label 511: @11041
11381 /* 11041 */ GIM_Try, /*On fail goto*//*Label 512*/ GIMT_Encode4(11066), // Rule ID 404 //
11382 /* 11046 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule272Enabled),
11383 /* 11049 */ // MIs[0] dst
11384 /* 11049 */ // No operand predicates
11385 /* 11049 */ // MIs[0] lhs
11386 /* 11049 */ // No operand predicates
11387 /* 11049 */ // MIs[0] rhs
11388 /* 11049 */ // No operand predicates
11389 /* 11049 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
11390 /* 11053 */ // Combiner Rule #272: G_FMINNUM_commute_fp_constant_to_rhs
11391 /* 11053 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMINNUM),
11392 /* 11056 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11393 /* 11058 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11394 /* 11060 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11395 /* 11062 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11396 /* 11065 */ GIR_EraseRootFromParent_Done,
11397 /* 11066 */ // Label 512: @11066
11398 /* 11066 */ GIM_Try, /*On fail goto*//*Label 513*/ GIMT_Encode4(11077), // Rule ID 304 //
11399 /* 11071 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11400 /* 11074 */ // MIs[0] d
11401 /* 11074 */ // No operand predicates
11402 /* 11074 */ // MIs[0] mi.src0
11403 /* 11074 */ // No operand predicates
11404 /* 11074 */ // MIs[0] mi.src1
11405 /* 11074 */ // No operand predicates
11406 /* 11074 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[6]]
11407 /* 11074 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11408 /* 11077 */ // Label 513: @11077
11409 /* 11077 */ GIM_Try, /*On fail goto*//*Label 514*/ GIMT_Encode4(11088), // Rule ID 363 //
11410 /* 11082 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11411 /* 11085 */ // MIs[0] root
11412 /* 11085 */ // No operand predicates
11413 /* 11085 */ // MIs[0] mi.x
11414 /* 11085 */ // No operand predicates
11415 /* 11085 */ // MIs[0] mi.y
11416 /* 11085 */ // No operand predicates
11417 /* 11085 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[9]]
11418 /* 11085 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11419 /* 11088 */ // Label 514: @11088
11420 /* 11088 */ GIM_Reject,
11421 /* 11089 */ // Label 85: @11089
11422 /* 11089 */ GIM_Try, /*On fail goto*//*Label 515*/ GIMT_Encode4(11112), // Rule ID 233 //
11423 /* 11094 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
11424 /* 11097 */ // MIs[0] dst
11425 /* 11097 */ // No operand predicates
11426 /* 11097 */ // MIs[0] lhs
11427 /* 11097 */ // No operand predicates
11428 /* 11097 */ // MIs[0] rhs
11429 /* 11097 */ // No operand predicates
11430 /* 11097 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner32),
11431 /* 11101 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11432 /* 11106 */ // Combiner Rule #182: minmax_nan_num_lhs @ [__minmax_nan_num_lhs_match_0[1]]
11433 /* 11106 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11434 /* 11111 */ GIR_EraseRootFromParent_Done,
11435 /* 11112 */ // Label 515: @11112
11436 /* 11112 */ GIM_Try, /*On fail goto*//*Label 516*/ GIMT_Encode4(11135), // Rule ID 235 //
11437 /* 11117 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
11438 /* 11120 */ // MIs[0] dst
11439 /* 11120 */ // No operand predicates
11440 /* 11120 */ // MIs[0] lhs
11441 /* 11120 */ // No operand predicates
11442 /* 11120 */ // MIs[0] rhs
11443 /* 11120 */ // No operand predicates
11444 /* 11120 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner33),
11445 /* 11124 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11446 /* 11129 */ // Combiner Rule #183: minmax_nan_num_rhs @ [__minmax_nan_num_rhs_match_0[1]]
11447 /* 11129 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11448 /* 11134 */ GIR_EraseRootFromParent_Done,
11449 /* 11135 */ // Label 516: @11135
11450 /* 11135 */ GIM_Try, /*On fail goto*//*Label 517*/ GIMT_Encode4(11160), // Rule ID 405 //
11451 /* 11140 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule273Enabled),
11452 /* 11143 */ // MIs[0] dst
11453 /* 11143 */ // No operand predicates
11454 /* 11143 */ // MIs[0] lhs
11455 /* 11143 */ // No operand predicates
11456 /* 11143 */ // MIs[0] rhs
11457 /* 11143 */ // No operand predicates
11458 /* 11143 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
11459 /* 11147 */ // Combiner Rule #273: G_FMAXNUM_commute_fp_constant_to_rhs
11460 /* 11147 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMAXNUM),
11461 /* 11150 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11462 /* 11152 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11463 /* 11154 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11464 /* 11156 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11465 /* 11159 */ GIR_EraseRootFromParent_Done,
11466 /* 11160 */ // Label 517: @11160
11467 /* 11160 */ GIM_Try, /*On fail goto*//*Label 518*/ GIMT_Encode4(11171), // Rule ID 305 //
11468 /* 11165 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11469 /* 11168 */ // MIs[0] d
11470 /* 11168 */ // No operand predicates
11471 /* 11168 */ // MIs[0] mi.src0
11472 /* 11168 */ // No operand predicates
11473 /* 11168 */ // MIs[0] mi.src1
11474 /* 11168 */ // No operand predicates
11475 /* 11168 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[7]]
11476 /* 11168 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11477 /* 11171 */ // Label 518: @11171
11478 /* 11171 */ GIM_Try, /*On fail goto*//*Label 519*/ GIMT_Encode4(11182), // Rule ID 364 //
11479 /* 11176 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11480 /* 11179 */ // MIs[0] root
11481 /* 11179 */ // No operand predicates
11482 /* 11179 */ // MIs[0] mi.x
11483 /* 11179 */ // No operand predicates
11484 /* 11179 */ // MIs[0] mi.y
11485 /* 11179 */ // No operand predicates
11486 /* 11179 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[10]]
11487 /* 11179 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11488 /* 11182 */ // Label 519: @11182
11489 /* 11182 */ GIM_Reject,
11490 /* 11183 */ // Label 86: @11183
11491 /* 11183 */ GIM_Try, /*On fail goto*//*Label 520*/ GIMT_Encode4(11208), // Rule ID 406 //
11492 /* 11188 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule274Enabled),
11493 /* 11191 */ // MIs[0] dst
11494 /* 11191 */ // No operand predicates
11495 /* 11191 */ // MIs[0] lhs
11496 /* 11191 */ // No operand predicates
11497 /* 11191 */ // MIs[0] rhs
11498 /* 11191 */ // No operand predicates
11499 /* 11191 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
11500 /* 11195 */ // Combiner Rule #274: G_FMINNUM_IEEE_commute_fp_constant_to_rhs
11501 /* 11195 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMINNUM_IEEE),
11502 /* 11198 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11503 /* 11200 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11504 /* 11202 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11505 /* 11204 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11506 /* 11207 */ GIR_EraseRootFromParent_Done,
11507 /* 11208 */ // Label 520: @11208
11508 /* 11208 */ GIM_Reject,
11509 /* 11209 */ // Label 87: @11209
11510 /* 11209 */ GIM_Try, /*On fail goto*//*Label 521*/ GIMT_Encode4(11234), // Rule ID 407 //
11511 /* 11214 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule275Enabled),
11512 /* 11217 */ // MIs[0] dst
11513 /* 11217 */ // No operand predicates
11514 /* 11217 */ // MIs[0] lhs
11515 /* 11217 */ // No operand predicates
11516 /* 11217 */ // MIs[0] rhs
11517 /* 11217 */ // No operand predicates
11518 /* 11217 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
11519 /* 11221 */ // Combiner Rule #275: G_FMAXNUM_IEEE_commute_fp_constant_to_rhs
11520 /* 11221 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMAXNUM_IEEE),
11521 /* 11224 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11522 /* 11226 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11523 /* 11228 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11524 /* 11230 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11525 /* 11233 */ GIR_EraseRootFromParent_Done,
11526 /* 11234 */ // Label 521: @11234
11527 /* 11234 */ GIM_Reject,
11528 /* 11235 */ // Label 88: @11235
11529 /* 11235 */ GIM_Try, /*On fail goto*//*Label 522*/ GIMT_Encode4(11258), // Rule ID 236 //
11530 /* 11240 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
11531 /* 11243 */ // MIs[0] dst
11532 /* 11243 */ // No operand predicates
11533 /* 11243 */ // MIs[0] lhs
11534 /* 11243 */ // No operand predicates
11535 /* 11243 */ // MIs[0] rhs
11536 /* 11243 */ // No operand predicates
11537 /* 11243 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner32),
11538 /* 11247 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11539 /* 11252 */ // Combiner Rule #184: minmax_nan_ieee_lhs @ [__minmax_nan_ieee_lhs_match_0[0]]
11540 /* 11252 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11541 /* 11257 */ GIR_EraseRootFromParent_Done,
11542 /* 11258 */ // Label 522: @11258
11543 /* 11258 */ GIM_Try, /*On fail goto*//*Label 523*/ GIMT_Encode4(11281), // Rule ID 238 //
11544 /* 11263 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
11545 /* 11266 */ // MIs[0] dst
11546 /* 11266 */ // No operand predicates
11547 /* 11266 */ // MIs[0] lhs
11548 /* 11266 */ // No operand predicates
11549 /* 11266 */ // MIs[0] rhs
11550 /* 11266 */ // No operand predicates
11551 /* 11266 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner33),
11552 /* 11270 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11553 /* 11275 */ // Combiner Rule #185: minmax_nan_ieee_rhs @ [__minmax_nan_ieee_rhs_match_0[0]]
11554 /* 11275 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11555 /* 11280 */ GIR_EraseRootFromParent_Done,
11556 /* 11281 */ // Label 523: @11281
11557 /* 11281 */ GIM_Try, /*On fail goto*//*Label 524*/ GIMT_Encode4(11306), // Rule ID 408 //
11558 /* 11286 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule276Enabled),
11559 /* 11289 */ // MIs[0] dst
11560 /* 11289 */ // No operand predicates
11561 /* 11289 */ // MIs[0] lhs
11562 /* 11289 */ // No operand predicates
11563 /* 11289 */ // MIs[0] rhs
11564 /* 11289 */ // No operand predicates
11565 /* 11289 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
11566 /* 11293 */ // Combiner Rule #276: G_FMINIMUM_commute_fp_constant_to_rhs
11567 /* 11293 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMINIMUM),
11568 /* 11296 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11569 /* 11298 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11570 /* 11300 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11571 /* 11302 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11572 /* 11305 */ GIR_EraseRootFromParent_Done,
11573 /* 11306 */ // Label 524: @11306
11574 /* 11306 */ GIM_Try, /*On fail goto*//*Label 525*/ GIMT_Encode4(11317), // Rule ID 306 //
11575 /* 11311 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11576 /* 11314 */ // MIs[0] d
11577 /* 11314 */ // No operand predicates
11578 /* 11314 */ // MIs[0] mi.src0
11579 /* 11314 */ // No operand predicates
11580 /* 11314 */ // MIs[0] mi.src1
11581 /* 11314 */ // No operand predicates
11582 /* 11314 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[8]]
11583 /* 11314 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11584 /* 11317 */ // Label 525: @11317
11585 /* 11317 */ GIM_Try, /*On fail goto*//*Label 526*/ GIMT_Encode4(11328), // Rule ID 365 //
11586 /* 11322 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11587 /* 11325 */ // MIs[0] root
11588 /* 11325 */ // No operand predicates
11589 /* 11325 */ // MIs[0] mi.x
11590 /* 11325 */ // No operand predicates
11591 /* 11325 */ // MIs[0] mi.y
11592 /* 11325 */ // No operand predicates
11593 /* 11325 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[11]]
11594 /* 11325 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11595 /* 11328 */ // Label 526: @11328
11596 /* 11328 */ GIM_Reject,
11597 /* 11329 */ // Label 89: @11329
11598 /* 11329 */ GIM_Try, /*On fail goto*//*Label 527*/ GIMT_Encode4(11352), // Rule ID 237 //
11599 /* 11334 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
11600 /* 11337 */ // MIs[0] dst
11601 /* 11337 */ // No operand predicates
11602 /* 11337 */ // MIs[0] lhs
11603 /* 11337 */ // No operand predicates
11604 /* 11337 */ // MIs[0] rhs
11605 /* 11337 */ // No operand predicates
11606 /* 11337 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner32),
11607 /* 11341 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11608 /* 11346 */ // Combiner Rule #184: minmax_nan_ieee_lhs @ [__minmax_nan_ieee_lhs_match_0[1]]
11609 /* 11346 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11610 /* 11351 */ GIR_EraseRootFromParent_Done,
11611 /* 11352 */ // Label 527: @11352
11612 /* 11352 */ GIM_Try, /*On fail goto*//*Label 528*/ GIMT_Encode4(11375), // Rule ID 239 //
11613 /* 11357 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
11614 /* 11360 */ // MIs[0] dst
11615 /* 11360 */ // No operand predicates
11616 /* 11360 */ // MIs[0] lhs
11617 /* 11360 */ // No operand predicates
11618 /* 11360 */ // MIs[0] rhs
11619 /* 11360 */ // No operand predicates
11620 /* 11360 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner33),
11621 /* 11364 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11622 /* 11369 */ // Combiner Rule #185: minmax_nan_ieee_rhs @ [__minmax_nan_ieee_rhs_match_0[1]]
11623 /* 11369 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11624 /* 11374 */ GIR_EraseRootFromParent_Done,
11625 /* 11375 */ // Label 528: @11375
11626 /* 11375 */ GIM_Try, /*On fail goto*//*Label 529*/ GIMT_Encode4(11400), // Rule ID 409 //
11627 /* 11380 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule277Enabled),
11628 /* 11383 */ // MIs[0] dst
11629 /* 11383 */ // No operand predicates
11630 /* 11383 */ // MIs[0] lhs
11631 /* 11383 */ // No operand predicates
11632 /* 11383 */ // MIs[0] rhs
11633 /* 11383 */ // No operand predicates
11634 /* 11383 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
11635 /* 11387 */ // Combiner Rule #277: G_FMAXIMUM_commute_fp_constant_to_rhs
11636 /* 11387 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMAXIMUM),
11637 /* 11390 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11638 /* 11392 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11639 /* 11394 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11640 /* 11396 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11641 /* 11399 */ GIR_EraseRootFromParent_Done,
11642 /* 11400 */ // Label 529: @11400
11643 /* 11400 */ GIM_Try, /*On fail goto*//*Label 530*/ GIMT_Encode4(11411), // Rule ID 307 //
11644 /* 11405 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11645 /* 11408 */ // MIs[0] d
11646 /* 11408 */ // No operand predicates
11647 /* 11408 */ // MIs[0] mi.src0
11648 /* 11408 */ // No operand predicates
11649 /* 11408 */ // MIs[0] mi.src1
11650 /* 11408 */ // No operand predicates
11651 /* 11408 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[9]]
11652 /* 11408 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11653 /* 11411 */ // Label 530: @11411
11654 /* 11411 */ GIM_Try, /*On fail goto*//*Label 531*/ GIMT_Encode4(11422), // Rule ID 366 //
11655 /* 11416 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11656 /* 11419 */ // MIs[0] root
11657 /* 11419 */ // No operand predicates
11658 /* 11419 */ // MIs[0] mi.x
11659 /* 11419 */ // No operand predicates
11660 /* 11419 */ // MIs[0] mi.y
11661 /* 11419 */ // No operand predicates
11662 /* 11419 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[12]]
11663 /* 11419 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11664 /* 11422 */ // Label 531: @11422
11665 /* 11422 */ GIM_Reject,
11666 /* 11423 */ // Label 90: @11423
11667 /* 11423 */ GIM_Try, /*On fail goto*//*Label 532*/ GIMT_Encode4(11434), // Rule ID 308 //
11668 /* 11428 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11669 /* 11431 */ // MIs[0] d
11670 /* 11431 */ // No operand predicates
11671 /* 11431 */ // MIs[0] mi.src0
11672 /* 11431 */ // No operand predicates
11673 /* 11431 */ // MIs[0] mi.src1
11674 /* 11431 */ // No operand predicates
11675 /* 11431 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[10]]
11676 /* 11431 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11677 /* 11434 */ // Label 532: @11434
11678 /* 11434 */ GIM_Reject,
11679 /* 11435 */ // Label 91: @11435
11680 /* 11435 */ GIM_Try, /*On fail goto*//*Label 533*/ GIMT_Encode4(11446), // Rule ID 309 //
11681 /* 11440 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11682 /* 11443 */ // MIs[0] d
11683 /* 11443 */ // No operand predicates
11684 /* 11443 */ // MIs[0] mi.src0
11685 /* 11443 */ // No operand predicates
11686 /* 11443 */ // MIs[0] mi.src1
11687 /* 11443 */ // No operand predicates
11688 /* 11443 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[11]]
11689 /* 11443 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11690 /* 11446 */ // Label 533: @11446
11691 /* 11446 */ GIM_Reject,
11692 /* 11447 */ // Label 92: @11447
11693 /* 11447 */ GIM_Try, /*On fail goto*//*Label 534*/ GIMT_Encode4(11484), // Rule ID 222 //
11694 /* 11452 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
11695 /* 11455 */ // MIs[0] dst
11696 /* 11455 */ // No operand predicates
11697 /* 11455 */ // MIs[0] base
11698 /* 11455 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11699 /* 11459 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
11700 /* 11463 */ // MIs[1] c1reg
11701 /* 11463 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
11702 /* 11467 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
11703 /* 11471 */ // MIs[2] c1imm
11704 /* 11471 */ // No operand predicates
11705 /* 11471 */ // MIs[0] c2reg
11706 /* 11471 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
11707 /* 11475 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
11708 /* 11479 */ // MIs[3] c2imm
11709 /* 11479 */ // No operand predicates
11710 /* 11479 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
11711 /* 11481 */ // Combiner Rule #172: const_ptradd_to_i2p
11712 /* 11481 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner64),
11713 /* 11484 */ // Label 534: @11484
11714 /* 11484 */ GIM_Try, /*On fail goto*//*Label 535*/ GIMT_Encode4(11525), // Rule ID 242 //
11715 /* 11489 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
11716 /* 11492 */ // MIs[0] dst
11717 /* 11492 */ // No operand predicates
11718 /* 11492 */ // MIs[0] base
11719 /* 11492 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11720 /* 11496 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
11721 /* 11500 */ // MIs[1] Operand 1
11722 /* 11500 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
11723 /* 11511 */ // MIs[0] offset
11724 /* 11511 */ // No operand predicates
11725 /* 11511 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner34),
11726 /* 11515 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11727 /* 11517 */ // Combiner Rule #188: ptr_add_with_zero_scalar
11728 /* 11517 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_INTTOPTR),
11729 /* 11520 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11730 /* 11522 */ GIR_RootToRootCopy, /*OpIdx*/2, // offset
11731 /* 11524 */ GIR_EraseRootFromParent_Done,
11732 /* 11525 */ // Label 535: @11525
11733 /* 11525 */ GIM_Try, /*On fail goto*//*Label 536*/ GIMT_Encode4(11548), // Rule ID 125 //
11734 /* 11530 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
11735 /* 11533 */ // MIs[0] dst
11736 /* 11533 */ // No operand predicates
11737 /* 11533 */ // MIs[0] lhs
11738 /* 11533 */ // No operand predicates
11739 /* 11533 */ // MIs[0] Operand 2
11740 /* 11533 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
11741 /* 11537 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11742 /* 11542 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[7]]
11743 /* 11542 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11744 /* 11547 */ GIR_EraseRootFromParent_Done,
11745 /* 11548 */ // Label 536: @11548
11746 /* 11548 */ GIM_Try, /*On fail goto*//*Label 537*/ GIMT_Encode4(11568), // Rule ID 243 //
11747 /* 11553 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule189Enabled),
11748 /* 11556 */ // MIs[0] dst
11749 /* 11556 */ // No operand predicates
11750 /* 11556 */ // MIs[0] base
11751 /* 11556 */ // No operand predicates
11752 /* 11556 */ // MIs[0] offset
11753 /* 11556 */ // No operand predicates
11754 /* 11556 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner35),
11755 /* 11560 */ // Combiner Rule #189: ptr_add_with_zero_vector
11756 /* 11560 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_INTTOPTR),
11757 /* 11563 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11758 /* 11565 */ GIR_RootToRootCopy, /*OpIdx*/2, // offset
11759 /* 11567 */ GIR_EraseRootFromParent_Done,
11760 /* 11568 */ // Label 537: @11568
11761 /* 11568 */ GIM_Try, /*On fail goto*//*Label 538*/ GIMT_Encode4(11579), // Rule ID 170 //
11762 /* 11573 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule120Enabled),
11763 /* 11576 */ // MIs[0] dst
11764 /* 11576 */ // No operand predicates
11765 /* 11576 */ // MIs[0] base
11766 /* 11576 */ // No operand predicates
11767 /* 11576 */ // MIs[0] offset
11768 /* 11576 */ // No operand predicates
11769 /* 11576 */ // Combiner Rule #120: reassoc_ptradd
11770 /* 11576 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
11771 /* 11579 */ // Label 538: @11579
11772 /* 11579 */ GIM_Try, /*On fail goto*//*Label 539*/ GIMT_Encode4(11590), // Rule ID 172 //
11773 /* 11584 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule122Enabled),
11774 /* 11587 */ // MIs[0] dst
11775 /* 11587 */ // No operand predicates
11776 /* 11587 */ // MIs[0] base
11777 /* 11587 */ // No operand predicates
11778 /* 11587 */ // MIs[0] offset
11779 /* 11587 */ // No operand predicates
11780 /* 11587 */ // Combiner Rule #122: ptr_add_immed_chain
11781 /* 11587 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner42),
11782 /* 11590 */ // Label 539: @11590
11783 /* 11590 */ GIM_Try, /*On fail goto*//*Label 540*/ GIMT_Encode4(11601), // Rule ID 281 //
11784 /* 11595 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
11785 /* 11598 */ // MIs[0] d
11786 /* 11598 */ // No operand predicates
11787 /* 11598 */ // MIs[0] mi.src0
11788 /* 11598 */ // No operand predicates
11789 /* 11598 */ // MIs[0] mi.src1
11790 /* 11598 */ // No operand predicates
11791 /* 11598 */ // Combiner Rule #210: constant_fold_binop @ [mi[1]]
11792 /* 11598 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
11793 /* 11601 */ // Label 540: @11601
11794 /* 11601 */ GIM_Try, /*On fail goto*//*Label 541*/ GIMT_Encode4(11612), // Rule ID 343 //
11795 /* 11606 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
11796 /* 11609 */ // MIs[0] root
11797 /* 11609 */ // No operand predicates
11798 /* 11609 */ // MIs[0] mi.x
11799 /* 11609 */ // No operand predicates
11800 /* 11609 */ // MIs[0] mi.y
11801 /* 11609 */ // No operand predicates
11802 /* 11609 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[2]]
11803 /* 11609 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11804 /* 11612 */ // Label 541: @11612
11805 /* 11612 */ GIM_Reject,
11806 /* 11613 */ // Label 93: @11613
11807 /* 11613 */ GIM_Try, /*On fail goto*//*Label 542*/ GIMT_Encode4(11638), // Rule ID 386 //
11808 /* 11618 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule254Enabled),
11809 /* 11621 */ // MIs[0] dst
11810 /* 11621 */ // No operand predicates
11811 /* 11621 */ // MIs[0] lhs
11812 /* 11621 */ // No operand predicates
11813 /* 11621 */ // MIs[0] rhs
11814 /* 11621 */ // No operand predicates
11815 /* 11621 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
11816 /* 11625 */ // Combiner Rule #254: G_SMIN_commute_constant_to_rhs
11817 /* 11625 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMIN),
11818 /* 11628 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11819 /* 11630 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11820 /* 11632 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11821 /* 11634 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11822 /* 11637 */ GIR_EraseRootFromParent_Done,
11823 /* 11638 */ // Label 542: @11638
11824 /* 11638 */ GIM_Try, /*On fail goto*//*Label 543*/ GIMT_Encode4(11649), // Rule ID 294 //
11825 /* 11643 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
11826 /* 11646 */ // MIs[0] d
11827 /* 11646 */ // No operand predicates
11828 /* 11646 */ // MIs[0] mi.src0
11829 /* 11646 */ // No operand predicates
11830 /* 11646 */ // MIs[0] mi.src1
11831 /* 11646 */ // No operand predicates
11832 /* 11646 */ // Combiner Rule #210: constant_fold_binop @ [mi[14]]
11833 /* 11646 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
11834 /* 11649 */ // Label 543: @11649
11835 /* 11649 */ GIM_Try, /*On fail goto*//*Label 544*/ GIMT_Encode4(11660), // Rule ID 354 //
11836 /* 11654 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11837 /* 11657 */ // MIs[0] root
11838 /* 11657 */ // No operand predicates
11839 /* 11657 */ // MIs[0] mi.x
11840 /* 11657 */ // No operand predicates
11841 /* 11657 */ // MIs[0] mi.y
11842 /* 11657 */ // No operand predicates
11843 /* 11657 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[0]]
11844 /* 11657 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11845 /* 11660 */ // Label 544: @11660
11846 /* 11660 */ GIM_Reject,
11847 /* 11661 */ // Label 94: @11661
11848 /* 11661 */ GIM_Try, /*On fail goto*//*Label 545*/ GIMT_Encode4(11686), // Rule ID 387 //
11849 /* 11666 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule255Enabled),
11850 /* 11669 */ // MIs[0] dst
11851 /* 11669 */ // No operand predicates
11852 /* 11669 */ // MIs[0] lhs
11853 /* 11669 */ // No operand predicates
11854 /* 11669 */ // MIs[0] rhs
11855 /* 11669 */ // No operand predicates
11856 /* 11669 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
11857 /* 11673 */ // Combiner Rule #255: G_SMAX_commute_constant_to_rhs
11858 /* 11673 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMAX),
11859 /* 11676 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11860 /* 11678 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11861 /* 11680 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11862 /* 11682 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11863 /* 11685 */ GIR_EraseRootFromParent_Done,
11864 /* 11686 */ // Label 545: @11686
11865 /* 11686 */ GIM_Try, /*On fail goto*//*Label 546*/ GIMT_Encode4(11697), // Rule ID 295 //
11866 /* 11691 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
11867 /* 11694 */ // MIs[0] d
11868 /* 11694 */ // No operand predicates
11869 /* 11694 */ // MIs[0] mi.src0
11870 /* 11694 */ // No operand predicates
11871 /* 11694 */ // MIs[0] mi.src1
11872 /* 11694 */ // No operand predicates
11873 /* 11694 */ // Combiner Rule #210: constant_fold_binop @ [mi[15]]
11874 /* 11694 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
11875 /* 11697 */ // Label 546: @11697
11876 /* 11697 */ GIM_Try, /*On fail goto*//*Label 547*/ GIMT_Encode4(11708), // Rule ID 355 //
11877 /* 11702 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11878 /* 11705 */ // MIs[0] root
11879 /* 11705 */ // No operand predicates
11880 /* 11705 */ // MIs[0] mi.x
11881 /* 11705 */ // No operand predicates
11882 /* 11705 */ // MIs[0] mi.y
11883 /* 11705 */ // No operand predicates
11884 /* 11705 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[1]]
11885 /* 11705 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11886 /* 11708 */ // Label 547: @11708
11887 /* 11708 */ GIM_Reject,
11888 /* 11709 */ // Label 95: @11709
11889 /* 11709 */ GIM_Try, /*On fail goto*//*Label 548*/ GIMT_Encode4(11734), // Rule ID 388 //
11890 /* 11714 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule256Enabled),
11891 /* 11717 */ // MIs[0] dst
11892 /* 11717 */ // No operand predicates
11893 /* 11717 */ // MIs[0] lhs
11894 /* 11717 */ // No operand predicates
11895 /* 11717 */ // MIs[0] rhs
11896 /* 11717 */ // No operand predicates
11897 /* 11717 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
11898 /* 11721 */ // Combiner Rule #256: G_UMIN_commute_constant_to_rhs
11899 /* 11721 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMIN),
11900 /* 11724 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11901 /* 11726 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11902 /* 11728 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11903 /* 11730 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11904 /* 11733 */ GIR_EraseRootFromParent_Done,
11905 /* 11734 */ // Label 548: @11734
11906 /* 11734 */ GIM_Try, /*On fail goto*//*Label 549*/ GIMT_Encode4(11745), // Rule ID 296 //
11907 /* 11739 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
11908 /* 11742 */ // MIs[0] d
11909 /* 11742 */ // No operand predicates
11910 /* 11742 */ // MIs[0] mi.src0
11911 /* 11742 */ // No operand predicates
11912 /* 11742 */ // MIs[0] mi.src1
11913 /* 11742 */ // No operand predicates
11914 /* 11742 */ // Combiner Rule #210: constant_fold_binop @ [mi[16]]
11915 /* 11742 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
11916 /* 11745 */ // Label 549: @11745
11917 /* 11745 */ GIM_Try, /*On fail goto*//*Label 550*/ GIMT_Encode4(11756), // Rule ID 356 //
11918 /* 11750 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11919 /* 11753 */ // MIs[0] root
11920 /* 11753 */ // No operand predicates
11921 /* 11753 */ // MIs[0] mi.x
11922 /* 11753 */ // No operand predicates
11923 /* 11753 */ // MIs[0] mi.y
11924 /* 11753 */ // No operand predicates
11925 /* 11753 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[2]]
11926 /* 11753 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11927 /* 11756 */ // Label 550: @11756
11928 /* 11756 */ GIM_Reject,
11929 /* 11757 */ // Label 96: @11757
11930 /* 11757 */ GIM_Try, /*On fail goto*//*Label 551*/ GIMT_Encode4(11782), // Rule ID 389 //
11931 /* 11762 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule257Enabled),
11932 /* 11765 */ // MIs[0] dst
11933 /* 11765 */ // No operand predicates
11934 /* 11765 */ // MIs[0] lhs
11935 /* 11765 */ // No operand predicates
11936 /* 11765 */ // MIs[0] rhs
11937 /* 11765 */ // No operand predicates
11938 /* 11765 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
11939 /* 11769 */ // Combiner Rule #257: G_UMAX_commute_constant_to_rhs
11940 /* 11769 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMAX),
11941 /* 11772 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11942 /* 11774 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11943 /* 11776 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11944 /* 11778 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11945 /* 11781 */ GIR_EraseRootFromParent_Done,
11946 /* 11782 */ // Label 551: @11782
11947 /* 11782 */ GIM_Try, /*On fail goto*//*Label 552*/ GIMT_Encode4(11793), // Rule ID 297 //
11948 /* 11787 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
11949 /* 11790 */ // MIs[0] d
11950 /* 11790 */ // No operand predicates
11951 /* 11790 */ // MIs[0] mi.src0
11952 /* 11790 */ // No operand predicates
11953 /* 11790 */ // MIs[0] mi.src1
11954 /* 11790 */ // No operand predicates
11955 /* 11790 */ // Combiner Rule #210: constant_fold_binop @ [mi[17]]
11956 /* 11790 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
11957 /* 11793 */ // Label 552: @11793
11958 /* 11793 */ GIM_Try, /*On fail goto*//*Label 553*/ GIMT_Encode4(11804), // Rule ID 357 //
11959 /* 11798 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11960 /* 11801 */ // MIs[0] root
11961 /* 11801 */ // No operand predicates
11962 /* 11801 */ // MIs[0] mi.x
11963 /* 11801 */ // No operand predicates
11964 /* 11801 */ // MIs[0] mi.y
11965 /* 11801 */ // No operand predicates
11966 /* 11801 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[3]]
11967 /* 11801 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11968 /* 11804 */ // Label 553: @11804
11969 /* 11804 */ GIM_Reject,
11970 /* 11805 */ // Label 97: @11805
11971 /* 11805 */ GIM_Try, /*On fail goto*//*Label 554*/ GIMT_Encode4(11826), // Rule ID 96 //
11972 /* 11810 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
11973 /* 11813 */ // MIs[0] dst
11974 /* 11813 */ // No operand predicates
11975 /* 11813 */ // MIs[0] __unary_undef_to_zero_match_0.x
11976 /* 11813 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11977 /* 11817 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11978 /* 11821 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11979 /* 11823 */ // Combiner Rule #81: unary_undef_to_zero @ [__unary_undef_to_zero_match_0[0]]
11980 /* 11823 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
11981 /* 11826 */ // Label 554: @11826
11982 /* 11826 */ GIM_Try, /*On fail goto*//*Label 555*/ GIMT_Encode4(11837), // Rule ID 320 //
11983 /* 11831 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
11984 /* 11834 */ // MIs[0] dst
11985 /* 11834 */ // No operand predicates
11986 /* 11834 */ // MIs[0] mi.src
11987 /* 11834 */ // No operand predicates
11988 /* 11834 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[5]]
11989 /* 11834 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
11990 /* 11837 */ // Label 555: @11837
11991 /* 11837 */ GIM_Reject,
11992 /* 11838 */ // Label 98: @11838
11993 /* 11838 */ GIM_Try, /*On fail goto*//*Label 556*/ GIMT_Encode4(11849), // Rule ID 206 //
11994 /* 11843 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
11995 /* 11846 */ // MIs[0] tgt
11996 /* 11846 */ // No operand predicates
11997 /* 11846 */ // Combiner Rule #156: opt_brcond_by_inverting_cond
11998 /* 11846 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner62),
11999 /* 11849 */ // Label 556: @11849
12000 /* 11849 */ GIM_Reject,
12001 /* 11850 */ // Label 99: @11850
12002 /* 11850 */ GIM_Try, /*On fail goto*//*Label 557*/ GIMT_Encode4(11889), // Rule ID 45 //
12003 /* 11855 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
12004 /* 11858 */ // MIs[0] root
12005 /* 11858 */ // No operand predicates
12006 /* 11858 */ // MIs[0] src
12007 /* 11858 */ // No operand predicates
12008 /* 11858 */ // MIs[0] elt
12009 /* 11858 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
12010 /* 11862 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_EXTRACT_VECTOR_ELT),
12011 /* 11866 */ // MIs[1] src
12012 /* 11866 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
12013 /* 11871 */ // MIs[1] idx
12014 /* 11871 */ // No operand predicates
12015 /* 11871 */ // MIs[0] idx
12016 /* 11871 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
12017 /* 11876 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
12018 /* 11881 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12019 /* 11883 */ // Combiner Rule #41: insert_vector_element_extract_vector_element
12020 /* 11883 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
12021 /* 11888 */ GIR_EraseRootFromParent_Done,
12022 /* 11889 */ // Label 557: @11889
12023 /* 11889 */ GIM_Try, /*On fail goto*//*Label 558*/ GIMT_Encode4(11922), // Rule ID 31 //
12024 /* 11894 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
12025 /* 11897 */ // MIs[0] root
12026 /* 11897 */ // No operand predicates
12027 /* 11897 */ // MIs[0] src
12028 /* 11897 */ // No operand predicates
12029 /* 11897 */ // MIs[0] elt
12030 /* 11897 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
12031 /* 11901 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12032 /* 11905 */ // MIs[0] idx
12033 /* 11905 */ // No operand predicates
12034 /* 11905 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
12035 /* 11909 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
12036 /* 11914 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12037 /* 11916 */ // Combiner Rule #27: insert_vector_element_elt_undef
12038 /* 11916 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
12039 /* 11921 */ GIR_EraseRootFromParent_Done,
12040 /* 11922 */ // Label 558: @11922
12041 /* 11922 */ GIM_Try, /*On fail goto*//*Label 559*/ GIMT_Encode4(11946), // Rule ID 30 //
12042 /* 11927 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
12043 /* 11930 */ // MIs[0] root
12044 /* 11930 */ // No operand predicates
12045 /* 11930 */ // MIs[0] src
12046 /* 11930 */ // No operand predicates
12047 /* 11930 */ // MIs[0] elt
12048 /* 11930 */ // No operand predicates
12049 /* 11930 */ // MIs[0] idx
12050 /* 11930 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
12051 /* 11934 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12052 /* 11938 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12053 /* 11940 */ // Combiner Rule #26: insert_vector_element_idx_undef
12054 /* 11940 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12055 /* 11943 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
12056 /* 11945 */ GIR_EraseRootFromParent_Done,
12057 /* 11946 */ // Label 559: @11946
12058 /* 11946 */ GIM_Try, /*On fail goto*//*Label 560*/ GIMT_Encode4(11964), // Rule ID 33 //
12059 /* 11951 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
12060 /* 11954 */ // MIs[0] dst
12061 /* 11954 */ // No operand predicates
12062 /* 11954 */ // MIs[0] src
12063 /* 11954 */ // No operand predicates
12064 /* 11954 */ // MIs[0] elt
12065 /* 11954 */ // No operand predicates
12066 /* 11954 */ // MIs[0] idx
12067 /* 11954 */ // No operand predicates
12068 /* 11954 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner5),
12069 /* 11958 */ // Combiner Rule #29: insert_vector_elt_oob
12070 /* 11958 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12071 /* 11961 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
12072 /* 11963 */ GIR_EraseRootFromParent_Done,
12073 /* 11964 */ // Label 560: @11964
12074 /* 11964 */ GIM_Try, /*On fail goto*//*Label 561*/ GIMT_Encode4(11982), // Rule ID 114 //
12075 /* 11969 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
12076 /* 11972 */ // MIs[0] root
12077 /* 11972 */ // No operand predicates
12078 /* 11972 */ // MIs[0] vec
12079 /* 11972 */ // No operand predicates
12080 /* 11972 */ // MIs[0] elt
12081 /* 11972 */ // No operand predicates
12082 /* 11972 */ // MIs[0] idx
12083 /* 11972 */ // No operand predicates
12084 /* 11972 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
12085 /* 11976 */ // Combiner Rule #88: insert_vec_elt_out_of_bounds
12086 /* 11976 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12087 /* 11979 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
12088 /* 11981 */ GIR_EraseRootFromParent_Done,
12089 /* 11982 */ // Label 561: @11982
12090 /* 11982 */ GIM_Try, /*On fail goto*//*Label 562*/ GIMT_Encode4(11993), // Rule ID 74 //
12091 /* 11987 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
12092 /* 11990 */ // MIs[0] dst
12093 /* 11990 */ // No operand predicates
12094 /* 11990 */ // MIs[0] src
12095 /* 11990 */ // No operand predicates
12096 /* 11990 */ // MIs[0] elt
12097 /* 11990 */ // No operand predicates
12098 /* 11990 */ // MIs[0] idx
12099 /* 11990 */ // No operand predicates
12100 /* 11990 */ // Combiner Rule #70: combine_insert_vec_elts_build_vector
12101 /* 11990 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
12102 /* 11993 */ // Label 562: @11993
12103 /* 11993 */ GIM_Reject,
12104 /* 11994 */ // Label 100: @11994
12105 /* 11994 */ GIM_Try, /*On fail goto*//*Label 563*/ GIMT_Encode4(12018), // Rule ID 43 //
12106 /* 11999 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
12107 /* 12002 */ // MIs[0] root
12108 /* 12002 */ // No operand predicates
12109 /* 12002 */ // MIs[0] src
12110 /* 12002 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12111 /* 12006 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
12112 /* 12010 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/9,
12113 /* 12013 */ // MIs[1] x
12114 /* 12013 */ // No operand predicates
12115 /* 12013 */ // MIs[1] y
12116 /* 12013 */ // No operand predicates
12117 /* 12013 */ // MIs[1] z
12118 /* 12013 */ // No operand predicates
12119 /* 12013 */ // MIs[1] a
12120 /* 12013 */ // No operand predicates
12121 /* 12013 */ // MIs[1] b
12122 /* 12013 */ // No operand predicates
12123 /* 12013 */ // MIs[1] c
12124 /* 12013 */ // No operand predicates
12125 /* 12013 */ // MIs[1] d
12126 /* 12013 */ // No operand predicates
12127 /* 12013 */ // MIs[1] e
12128 /* 12013 */ // No operand predicates
12129 /* 12013 */ // MIs[0] idx
12130 /* 12013 */ // No operand predicates
12131 /* 12013 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12132 /* 12015 */ // Combiner Rule #39: extract_vector_element_build_vector_trunc8
12133 /* 12015 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
12134 /* 12018 */ // Label 563: @12018
12135 /* 12018 */ GIM_Try, /*On fail goto*//*Label 564*/ GIMT_Encode4(12042), // Rule ID 42 //
12136 /* 12023 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
12137 /* 12026 */ // MIs[0] root
12138 /* 12026 */ // No operand predicates
12139 /* 12026 */ // MIs[0] src
12140 /* 12026 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12141 /* 12030 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
12142 /* 12034 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/8,
12143 /* 12037 */ // MIs[1] x
12144 /* 12037 */ // No operand predicates
12145 /* 12037 */ // MIs[1] y
12146 /* 12037 */ // No operand predicates
12147 /* 12037 */ // MIs[1] z
12148 /* 12037 */ // No operand predicates
12149 /* 12037 */ // MIs[1] a
12150 /* 12037 */ // No operand predicates
12151 /* 12037 */ // MIs[1] b
12152 /* 12037 */ // No operand predicates
12153 /* 12037 */ // MIs[1] c
12154 /* 12037 */ // No operand predicates
12155 /* 12037 */ // MIs[1] d
12156 /* 12037 */ // No operand predicates
12157 /* 12037 */ // MIs[0] idx
12158 /* 12037 */ // No operand predicates
12159 /* 12037 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12160 /* 12039 */ // Combiner Rule #38: extract_vector_element_build_vector_trunc7
12161 /* 12039 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
12162 /* 12042 */ // Label 564: @12042
12163 /* 12042 */ GIM_Try, /*On fail goto*//*Label 565*/ GIMT_Encode4(12066), // Rule ID 41 //
12164 /* 12047 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
12165 /* 12050 */ // MIs[0] root
12166 /* 12050 */ // No operand predicates
12167 /* 12050 */ // MIs[0] src
12168 /* 12050 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12169 /* 12054 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
12170 /* 12058 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/7,
12171 /* 12061 */ // MIs[1] x
12172 /* 12061 */ // No operand predicates
12173 /* 12061 */ // MIs[1] y
12174 /* 12061 */ // No operand predicates
12175 /* 12061 */ // MIs[1] z
12176 /* 12061 */ // No operand predicates
12177 /* 12061 */ // MIs[1] a
12178 /* 12061 */ // No operand predicates
12179 /* 12061 */ // MIs[1] b
12180 /* 12061 */ // No operand predicates
12181 /* 12061 */ // MIs[1] c
12182 /* 12061 */ // No operand predicates
12183 /* 12061 */ // MIs[0] idx
12184 /* 12061 */ // No operand predicates
12185 /* 12061 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12186 /* 12063 */ // Combiner Rule #37: extract_vector_element_build_vector_trunc6
12187 /* 12063 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
12188 /* 12066 */ // Label 565: @12066
12189 /* 12066 */ GIM_Try, /*On fail goto*//*Label 566*/ GIMT_Encode4(12090), // Rule ID 40 //
12190 /* 12071 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
12191 /* 12074 */ // MIs[0] root
12192 /* 12074 */ // No operand predicates
12193 /* 12074 */ // MIs[0] src
12194 /* 12074 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12195 /* 12078 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
12196 /* 12082 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/6,
12197 /* 12085 */ // MIs[1] x
12198 /* 12085 */ // No operand predicates
12199 /* 12085 */ // MIs[1] y
12200 /* 12085 */ // No operand predicates
12201 /* 12085 */ // MIs[1] z
12202 /* 12085 */ // No operand predicates
12203 /* 12085 */ // MIs[1] a
12204 /* 12085 */ // No operand predicates
12205 /* 12085 */ // MIs[1] b
12206 /* 12085 */ // No operand predicates
12207 /* 12085 */ // MIs[0] idx
12208 /* 12085 */ // No operand predicates
12209 /* 12085 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12210 /* 12087 */ // Combiner Rule #36: extract_vector_element_build_vector_trunc5
12211 /* 12087 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
12212 /* 12090 */ // Label 566: @12090
12213 /* 12090 */ GIM_Try, /*On fail goto*//*Label 567*/ GIMT_Encode4(12114), // Rule ID 39 //
12214 /* 12095 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
12215 /* 12098 */ // MIs[0] root
12216 /* 12098 */ // No operand predicates
12217 /* 12098 */ // MIs[0] src
12218 /* 12098 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12219 /* 12102 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
12220 /* 12106 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/5,
12221 /* 12109 */ // MIs[1] x
12222 /* 12109 */ // No operand predicates
12223 /* 12109 */ // MIs[1] y
12224 /* 12109 */ // No operand predicates
12225 /* 12109 */ // MIs[1] z
12226 /* 12109 */ // No operand predicates
12227 /* 12109 */ // MIs[1] a
12228 /* 12109 */ // No operand predicates
12229 /* 12109 */ // MIs[0] idx
12230 /* 12109 */ // No operand predicates
12231 /* 12109 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12232 /* 12111 */ // Combiner Rule #35: extract_vector_element_build_vector_trunc4
12233 /* 12111 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
12234 /* 12114 */ // Label 567: @12114
12235 /* 12114 */ GIM_Try, /*On fail goto*//*Label 568*/ GIMT_Encode4(12138), // Rule ID 38 //
12236 /* 12119 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
12237 /* 12122 */ // MIs[0] root
12238 /* 12122 */ // No operand predicates
12239 /* 12122 */ // MIs[0] src
12240 /* 12122 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12241 /* 12126 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
12242 /* 12130 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
12243 /* 12133 */ // MIs[1] x
12244 /* 12133 */ // No operand predicates
12245 /* 12133 */ // MIs[1] y
12246 /* 12133 */ // No operand predicates
12247 /* 12133 */ // MIs[1] z
12248 /* 12133 */ // No operand predicates
12249 /* 12133 */ // MIs[0] idx
12250 /* 12133 */ // No operand predicates
12251 /* 12133 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12252 /* 12135 */ // Combiner Rule #34: extract_vector_element_build_vector_trunc3
12253 /* 12135 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
12254 /* 12138 */ // Label 568: @12138
12255 /* 12138 */ GIM_Try, /*On fail goto*//*Label 569*/ GIMT_Encode4(12172), // Rule ID 34 //
12256 /* 12143 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
12257 /* 12146 */ // MIs[0] root
12258 /* 12146 */ // No operand predicates
12259 /* 12146 */ // MIs[0] src
12260 /* 12146 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12261 /* 12150 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
12262 /* 12154 */ // MIs[1] x
12263 /* 12154 */ // No operand predicates
12264 /* 12154 */ // MIs[1] value
12265 /* 12154 */ // No operand predicates
12266 /* 12154 */ // MIs[1] idx
12267 /* 12154 */ // No operand predicates
12268 /* 12154 */ // MIs[0] idx
12269 /* 12154 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
12270 /* 12159 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
12271 /* 12164 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12272 /* 12166 */ // Combiner Rule #30: extract_vector_element_not_const
12273 /* 12166 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
12274 /* 12171 */ GIR_EraseRootFromParent_Done,
12275 /* 12172 */ // Label 569: @12172
12276 /* 12172 */ GIM_Try, /*On fail goto*//*Label 570*/ GIMT_Encode4(12193), // Rule ID 35 //
12277 /* 12177 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
12278 /* 12180 */ // MIs[0] root
12279 /* 12180 */ // No operand predicates
12280 /* 12180 */ // MIs[0] src
12281 /* 12180 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12282 /* 12184 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
12283 /* 12188 */ // MIs[1] x
12284 /* 12188 */ // No operand predicates
12285 /* 12188 */ // MIs[1] value
12286 /* 12188 */ // No operand predicates
12287 /* 12188 */ // MIs[1] idx2
12288 /* 12188 */ // No operand predicates
12289 /* 12188 */ // MIs[0] idx1
12290 /* 12188 */ // No operand predicates
12291 /* 12188 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12292 /* 12190 */ // Combiner Rule #31: extract_vector_element_different_indices
12293 /* 12190 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
12294 /* 12193 */ // Label 570: @12193
12295 /* 12193 */ GIM_Try, /*On fail goto*//*Label 571*/ GIMT_Encode4(12222), // Rule ID 44 //
12296 /* 12198 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
12297 /* 12201 */ // MIs[0] root
12298 /* 12201 */ // No operand predicates
12299 /* 12201 */ // MIs[0] src
12300 /* 12201 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12301 /* 12205 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHUFFLE_VECTOR),
12302 /* 12209 */ // MIs[1] src1
12303 /* 12209 */ // No operand predicates
12304 /* 12209 */ // MIs[1] src2
12305 /* 12209 */ // No operand predicates
12306 /* 12209 */ // MIs[1] mask
12307 /* 12209 */ // No operand predicates
12308 /* 12209 */ // MIs[0] idx
12309 /* 12209 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
12310 /* 12213 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
12311 /* 12217 */ // MIs[2] imm
12312 /* 12217 */ // No operand predicates
12313 /* 12217 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
12314 /* 12219 */ // Combiner Rule #40: extract_vector_element_shuffle_vector
12315 /* 12219 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
12316 /* 12222 */ // Label 571: @12222
12317 /* 12222 */ GIM_Try, /*On fail goto*//*Label 572*/ GIMT_Encode4(12246), // Rule ID 37 //
12318 /* 12227 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
12319 /* 12230 */ // MIs[0] root
12320 /* 12230 */ // No operand predicates
12321 /* 12230 */ // MIs[0] src
12322 /* 12230 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12323 /* 12234 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
12324 /* 12238 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
12325 /* 12241 */ // MIs[1] x
12326 /* 12241 */ // No operand predicates
12327 /* 12241 */ // MIs[1] y
12328 /* 12241 */ // No operand predicates
12329 /* 12241 */ // MIs[0] idx
12330 /* 12241 */ // No operand predicates
12331 /* 12241 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12332 /* 12243 */ // Combiner Rule #33: extract_vector_element_build_vector_trunc2
12333 /* 12243 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
12334 /* 12246 */ // Label 572: @12246
12335 /* 12246 */ GIM_Try, /*On fail goto*//*Label 573*/ GIMT_Encode4(12278), // Rule ID 36 //
12336 /* 12251 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
12337 /* 12254 */ // MIs[0] root
12338 /* 12254 */ // No operand predicates
12339 /* 12254 */ // MIs[0] src
12340 /* 12254 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12341 /* 12258 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
12342 /* 12262 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
12343 /* 12265 */ // MIs[1] unused
12344 /* 12265 */ // No operand predicates
12345 /* 12265 */ // MIs[0] idx
12346 /* 12265 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
12347 /* 12269 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
12348 /* 12273 */ // MIs[2] imm
12349 /* 12273 */ // No operand predicates
12350 /* 12273 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
12351 /* 12275 */ // Combiner Rule #32: extract_vector_element_build_vector
12352 /* 12275 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
12353 /* 12278 */ // Label 573: @12278
12354 /* 12278 */ GIM_Try, /*On fail goto*//*Label 574*/ GIMT_Encode4(12302), // Rule ID 28 //
12355 /* 12283 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
12356 /* 12286 */ // MIs[0] root
12357 /* 12286 */ // No operand predicates
12358 /* 12286 */ // MIs[0] __extract_vector_element_undef_match_0.x
12359 /* 12286 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12360 /* 12290 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12361 /* 12294 */ // MIs[0] __extract_vector_element_undef_match_0.y
12362 /* 12294 */ // No operand predicates
12363 /* 12294 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12364 /* 12296 */ // Combiner Rule #25: extract_vector_element_undef @ [__extract_vector_element_undef_match_0[0]]
12365 /* 12296 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12366 /* 12299 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
12367 /* 12301 */ GIR_EraseRootFromParent_Done,
12368 /* 12302 */ // Label 574: @12302
12369 /* 12302 */ GIM_Try, /*On fail goto*//*Label 575*/ GIMT_Encode4(12326), // Rule ID 29 //
12370 /* 12307 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
12371 /* 12310 */ // MIs[0] root
12372 /* 12310 */ // No operand predicates
12373 /* 12310 */ // MIs[0] __extract_vector_element_undef_match_0.x
12374 /* 12310 */ // No operand predicates
12375 /* 12310 */ // MIs[0] __extract_vector_element_undef_match_0.y
12376 /* 12310 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
12377 /* 12314 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12378 /* 12318 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12379 /* 12320 */ // Combiner Rule #25: extract_vector_element_undef @ [__extract_vector_element_undef_match_0[1]]
12380 /* 12320 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12381 /* 12323 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
12382 /* 12325 */ GIR_EraseRootFromParent_Done,
12383 /* 12326 */ // Label 575: @12326
12384 /* 12326 */ GIM_Try, /*On fail goto*//*Label 576*/ GIMT_Encode4(12344), // Rule ID 32 //
12385 /* 12331 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
12386 /* 12334 */ // MIs[0] dst
12387 /* 12334 */ // No operand predicates
12388 /* 12334 */ // MIs[0] src
12389 /* 12334 */ // No operand predicates
12390 /* 12334 */ // MIs[0] idx
12391 /* 12334 */ // No operand predicates
12392 /* 12334 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
12393 /* 12338 */ // Combiner Rule #28: match_extract_of_element
12394 /* 12338 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12395 /* 12341 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
12396 /* 12343 */ GIR_EraseRootFromParent_Done,
12397 /* 12344 */ // Label 576: @12344
12398 /* 12344 */ GIM_Try, /*On fail goto*//*Label 577*/ GIMT_Encode4(12362), // Rule ID 115 //
12399 /* 12349 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
12400 /* 12352 */ // MIs[0] root
12401 /* 12352 */ // No operand predicates
12402 /* 12352 */ // MIs[0] vec
12403 /* 12352 */ // No operand predicates
12404 /* 12352 */ // MIs[0] idx
12405 /* 12352 */ // No operand predicates
12406 /* 12352 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
12407 /* 12356 */ // Combiner Rule #89: extract_vec_elt_out_of_bounds
12408 /* 12356 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12409 /* 12359 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
12410 /* 12361 */ GIR_EraseRootFromParent_Done,
12411 /* 12362 */ // Label 577: @12362
12412 /* 12362 */ GIM_Try, /*On fail goto*//*Label 578*/ GIMT_Encode4(12373), // Rule ID 75 //
12413 /* 12367 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
12414 /* 12370 */ // MIs[0] dst
12415 /* 12370 */ // No operand predicates
12416 /* 12370 */ // MIs[0] src
12417 /* 12370 */ // No operand predicates
12418 /* 12370 */ // MIs[0] idx
12419 /* 12370 */ // No operand predicates
12420 /* 12370 */ // Combiner Rule #71: extract_vec_elt_build_vec
12421 /* 12370 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
12422 /* 12373 */ // Label 578: @12373
12423 /* 12373 */ GIM_Try, /*On fail goto*//*Label 579*/ GIMT_Encode4(12384), // Rule ID 81 //
12424 /* 12378 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
12425 /* 12381 */ // MIs[0] dst
12426 /* 12381 */ // No operand predicates
12427 /* 12381 */ // MIs[0] src
12428 /* 12381 */ // No operand predicates
12429 /* 12381 */ // MIs[0] idx
12430 /* 12381 */ // No operand predicates
12431 /* 12381 */ // Combiner Rule #75: combine_extracted_vector_load
12432 /* 12381 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
12433 /* 12384 */ // Label 579: @12384
12434 /* 12384 */ GIM_Reject,
12435 /* 12385 */ // Label 101: @12385
12436 /* 12385 */ GIM_Try, /*On fail goto*//*Label 580*/ GIMT_Encode4(12406), // Rule ID 424 //
12437 /* 12390 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule292Enabled),
12438 /* 12393 */ // MIs[0] root
12439 /* 12393 */ // No operand predicates
12440 /* 12393 */ // MIs[0] src1
12441 /* 12393 */ // No operand predicates
12442 /* 12393 */ // MIs[0] undef
12443 /* 12393 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
12444 /* 12397 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12445 /* 12401 */ // MIs[0] mask
12446 /* 12401 */ // No operand predicates
12447 /* 12401 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12448 /* 12403 */ // Combiner Rule #292: combine_shuffle_undef_rhs
12449 /* 12403 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
12450 /* 12406 */ // Label 580: @12406
12451 /* 12406 */ GIM_Try, /*On fail goto*//*Label 581*/ GIMT_Encode4(12424), // Rule ID 110 //
12452 /* 12411 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
12453 /* 12414 */ // MIs[0] root
12454 /* 12414 */ // No operand predicates
12455 /* 12414 */ // MIs[0] src1
12456 /* 12414 */ // No operand predicates
12457 /* 12414 */ // MIs[0] src2
12458 /* 12414 */ // No operand predicates
12459 /* 12414 */ // MIs[0] mask
12460 /* 12414 */ // No operand predicates
12461 /* 12414 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
12462 /* 12418 */ // Combiner Rule #84: propagate_undef_all_ops_shuffle_vector
12463 /* 12418 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12464 /* 12421 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
12465 /* 12423 */ GIR_EraseRootFromParent_Done,
12466 /* 12424 */ // Label 581: @12424
12467 /* 12424 */ GIM_Try, /*On fail goto*//*Label 582*/ GIMT_Encode4(12442), // Rule ID 112 //
12468 /* 12429 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
12469 /* 12432 */ // MIs[0] dst
12470 /* 12432 */ // No operand predicates
12471 /* 12432 */ // MIs[0] src1
12472 /* 12432 */ // No operand predicates
12473 /* 12432 */ // MIs[0] src2
12474 /* 12432 */ // No operand predicates
12475 /* 12432 */ // MIs[0] mask
12476 /* 12432 */ // No operand predicates
12477 /* 12432 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner8),
12478 /* 12436 */ // Combiner Rule #86: propagate_undef_shuffle_mask
12479 /* 12436 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12480 /* 12439 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
12481 /* 12441 */ GIR_EraseRootFromParent_Done,
12482 /* 12442 */ // Label 582: @12442
12483 /* 12442 */ GIM_Try, /*On fail goto*//*Label 583*/ GIMT_Encode4(12453), // Rule ID 423 //
12484 /* 12447 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule291Enabled),
12485 /* 12450 */ // MIs[0] dst
12486 /* 12450 */ // No operand predicates
12487 /* 12450 */ // MIs[0] src1
12488 /* 12450 */ // No operand predicates
12489 /* 12450 */ // MIs[0] src2
12490 /* 12450 */ // No operand predicates
12491 /* 12450 */ // MIs[0] mask
12492 /* 12450 */ // No operand predicates
12493 /* 12450 */ // Combiner Rule #291: combine_shuffle_concat
12494 /* 12450 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
12495 /* 12453 */ // Label 583: @12453
12496 /* 12453 */ GIM_Try, /*On fail goto*//*Label 584*/ GIMT_Encode4(12464), // Rule ID 425 //
12497 /* 12458 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule293Enabled),
12498 /* 12461 */ // MIs[0] dst
12499 /* 12461 */ // No operand predicates
12500 /* 12461 */ // MIs[0] src1
12501 /* 12461 */ // No operand predicates
12502 /* 12461 */ // MIs[0] src2
12503 /* 12461 */ // No operand predicates
12504 /* 12461 */ // MIs[0] mask
12505 /* 12461 */ // No operand predicates
12506 /* 12461 */ // Combiner Rule #293: combine_shuffle_disjoint_mask
12507 /* 12461 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner111),
12508 /* 12464 */ // Label 584: @12464
12509 /* 12464 */ GIM_Try, /*On fail goto*//*Label 585*/ GIMT_Encode4(12475), // Rule ID 471 //
12510 /* 12469 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule333Enabled),
12511 /* 12472 */ // MIs[0] dst
12512 /* 12472 */ // No operand predicates
12513 /* 12472 */ // MIs[0] src1
12514 /* 12472 */ // No operand predicates
12515 /* 12472 */ // MIs[0] src2
12516 /* 12472 */ // No operand predicates
12517 /* 12472 */ // MIs[0] mask
12518 /* 12472 */ // No operand predicates
12519 /* 12472 */ // Combiner Rule #333: combine_shuffle_vector
12520 /* 12472 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
12521 /* 12475 */ // Label 585: @12475
12522 /* 12475 */ GIM_Reject,
12523 /* 12476 */ // Label 102: @12476
12524 /* 12476 */ GIM_Try, /*On fail goto*//*Label 586*/ GIMT_Encode4(12499), // Rule ID 451 //
12525 /* 12481 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule319Enabled),
12526 /* 12484 */ // MIs[0] dst
12527 /* 12484 */ // No operand predicates
12528 /* 12484 */ // MIs[0] src
12529 /* 12484 */ // No operand predicates
12530 /* 12484 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner56),
12531 /* 12488 */ // Combiner Rule #319: cttz_to_cttz_zero_poison
12532 /* 12488 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_CTTZ_ZERO_POISON),
12533 /* 12491 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
12534 /* 12493 */ GIR_RootToRootCopy, /*OpIdx*/1, // src
12535 /* 12495 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
12536 /* 12498 */ GIR_EraseRootFromParent_Done,
12537 /* 12499 */ // Label 586: @12499
12538 /* 12499 */ GIM_Try, /*On fail goto*//*Label 587*/ GIMT_Encode4(12510), // Rule ID 317 //
12539 /* 12504 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
12540 /* 12507 */ // MIs[0] dst
12541 /* 12507 */ // No operand predicates
12542 /* 12507 */ // MIs[0] mi.src
12543 /* 12507 */ // No operand predicates
12544 /* 12507 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[2]]
12545 /* 12507 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
12546 /* 12510 */ // Label 587: @12510
12547 /* 12510 */ GIM_Reject,
12548 /* 12511 */ // Label 103: @12511
12549 /* 12511 */ GIM_Try, /*On fail goto*//*Label 588*/ GIMT_Encode4(12522), // Rule ID 318 //
12550 /* 12516 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
12551 /* 12519 */ // MIs[0] dst
12552 /* 12519 */ // No operand predicates
12553 /* 12519 */ // MIs[0] mi.src
12554 /* 12519 */ // No operand predicates
12555 /* 12519 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[3]]
12556 /* 12519 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
12557 /* 12522 */ // Label 588: @12522
12558 /* 12522 */ GIM_Reject,
12559 /* 12523 */ // Label 104: @12523
12560 /* 12523 */ GIM_Try, /*On fail goto*//*Label 589*/ GIMT_Encode4(12546), // Rule ID 450 //
12561 /* 12528 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule318Enabled),
12562 /* 12531 */ // MIs[0] dst
12563 /* 12531 */ // No operand predicates
12564 /* 12531 */ // MIs[0] src
12565 /* 12531 */ // No operand predicates
12566 /* 12531 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner55),
12567 /* 12535 */ // Combiner Rule #318: ctlz_to_ctlz_zero_poison
12568 /* 12535 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_CTLZ_ZERO_POISON),
12569 /* 12538 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
12570 /* 12540 */ GIR_RootToRootCopy, /*OpIdx*/1, // src
12571 /* 12542 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
12572 /* 12545 */ GIR_EraseRootFromParent_Done,
12573 /* 12546 */ // Label 589: @12546
12574 /* 12546 */ GIM_Try, /*On fail goto*//*Label 590*/ GIMT_Encode4(12557), // Rule ID 315 //
12575 /* 12551 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
12576 /* 12554 */ // MIs[0] dst
12577 /* 12554 */ // No operand predicates
12578 /* 12554 */ // MIs[0] mi.src
12579 /* 12554 */ // No operand predicates
12580 /* 12554 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[0]]
12581 /* 12554 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
12582 /* 12557 */ // Label 590: @12557
12583 /* 12557 */ GIM_Try, /*On fail goto*//*Label 591*/ GIMT_Encode4(12568), // Rule ID 448 //
12584 /* 12562 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule316Enabled),
12585 /* 12565 */ // MIs[0] dst
12586 /* 12565 */ // No operand predicates
12587 /* 12565 */ // MIs[0] src
12588 /* 12565 */ // No operand predicates
12589 /* 12565 */ // Combiner Rule #316: ctlz_to_ctls
12590 /* 12565 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner126),
12591 /* 12568 */ // Label 591: @12568
12592 /* 12568 */ GIM_Reject,
12593 /* 12569 */ // Label 105: @12569
12594 /* 12569 */ GIM_Try, /*On fail goto*//*Label 592*/ GIMT_Encode4(12580), // Rule ID 316 //
12595 /* 12574 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
12596 /* 12577 */ // MIs[0] dst
12597 /* 12577 */ // No operand predicates
12598 /* 12577 */ // MIs[0] mi.src
12599 /* 12577 */ // No operand predicates
12600 /* 12577 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[1]]
12601 /* 12577 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
12602 /* 12580 */ // Label 592: @12580
12603 /* 12580 */ GIM_Try, /*On fail goto*//*Label 593*/ GIMT_Encode4(12591), // Rule ID 449 //
12604 /* 12585 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule317Enabled),
12605 /* 12588 */ // MIs[0] dst
12606 /* 12588 */ // No operand predicates
12607 /* 12588 */ // MIs[0] src
12608 /* 12588 */ // No operand predicates
12609 /* 12588 */ // Combiner Rule #317: ctlz_zero_poison_to_ctls
12610 /* 12588 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner126),
12611 /* 12591 */ // Label 593: @12591
12612 /* 12591 */ GIM_Reject,
12613 /* 12592 */ // Label 106: @12592
12614 /* 12592 */ GIM_Try, /*On fail goto*//*Label 594*/ GIMT_Encode4(12603), // Rule ID 319 //
12615 /* 12597 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
12616 /* 12600 */ // MIs[0] dst
12617 /* 12600 */ // No operand predicates
12618 /* 12600 */ // MIs[0] mi.src
12619 /* 12600 */ // No operand predicates
12620 /* 12600 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[4]]
12621 /* 12600 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
12622 /* 12603 */ // Label 594: @12603
12623 /* 12603 */ GIM_Reject,
12624 /* 12604 */ // Label 107: @12604
12625 /* 12604 */ GIM_Try, /*On fail goto*//*Label 595*/ GIMT_Encode4(12615), // Rule ID 321 //
12626 /* 12609 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
12627 /* 12612 */ // MIs[0] dst
12628 /* 12612 */ // No operand predicates
12629 /* 12612 */ // MIs[0] mi.src
12630 /* 12612 */ // No operand predicates
12631 /* 12612 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[6]]
12632 /* 12612 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
12633 /* 12615 */ // Label 595: @12615
12634 /* 12615 */ GIM_Reject,
12635 /* 12616 */ // Label 108: @12616
12636 /* 12616 */ GIM_Try, /*On fail goto*//*Label 596*/ GIMT_Encode4(12660), // Rule ID 271 //
12637 /* 12621 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule203Enabled),
12638 /* 12624 */ // MIs[0] d
12639 /* 12624 */ // No operand predicates
12640 /* 12624 */ // MIs[0] src
12641 /* 12624 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12642 /* 12628 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
12643 /* 12632 */ // MIs[1] rev
12644 /* 12632 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
12645 /* 12636 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
12646 /* 12640 */ // MIs[2] val
12647 /* 12640 */ // No operand predicates
12648 /* 12640 */ // MIs[1] amt
12649 /* 12640 */ // No operand predicates
12650 /* 12640 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner39),
12651 /* 12644 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
12652 /* 12646 */ // Combiner Rule #203: bitreverse_lshr
12653 /* 12646 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
12654 /* 12649 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
12655 /* 12651 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
12656 /* 12655 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
12657 /* 12659 */ GIR_EraseRootFromParent_Done,
12658 /* 12660 */ // Label 596: @12660
12659 /* 12660 */ GIM_Try, /*On fail goto*//*Label 597*/ GIMT_Encode4(12704), // Rule ID 270 //
12660 /* 12665 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule202Enabled),
12661 /* 12668 */ // MIs[0] d
12662 /* 12668 */ // No operand predicates
12663 /* 12668 */ // MIs[0] src
12664 /* 12668 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12665 /* 12672 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
12666 /* 12676 */ // MIs[1] rev
12667 /* 12676 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
12668 /* 12680 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
12669 /* 12684 */ // MIs[2] val
12670 /* 12684 */ // No operand predicates
12671 /* 12684 */ // MIs[1] amt
12672 /* 12684 */ // No operand predicates
12673 /* 12684 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner38),
12674 /* 12688 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
12675 /* 12690 */ // Combiner Rule #202: bitreverse_shl
12676 /* 12690 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_LSHR),
12677 /* 12693 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
12678 /* 12695 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
12679 /* 12699 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
12680 /* 12703 */ GIR_EraseRootFromParent_Done,
12681 /* 12704 */ // Label 597: @12704
12682 /* 12704 */ GIM_Try, /*On fail goto*//*Label 598*/ GIMT_Encode4(12715), // Rule ID 322 //
12683 /* 12709 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
12684 /* 12712 */ // MIs[0] dst
12685 /* 12712 */ // No operand predicates
12686 /* 12712 */ // MIs[0] mi.src
12687 /* 12712 */ // No operand predicates
12688 /* 12712 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[7]]
12689 /* 12712 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
12690 /* 12715 */ // Label 598: @12715
12691 /* 12715 */ GIM_Reject,
12692 /* 12716 */ // Label 109: @12716
12693 /* 12716 */ GIM_Try, /*On fail goto*//*Label 599*/ GIMT_Encode4(12737), // Rule ID 213 //
12694 /* 12721 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
12695 /* 12724 */ // MIs[0] dst
12696 /* 12724 */ // No operand predicates
12697 /* 12724 */ // MIs[0] src0
12698 /* 12724 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12699 /* 12728 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
12700 /* 12732 */ // MIs[1] cst
12701 /* 12732 */ // No operand predicates
12702 /* 12732 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12703 /* 12734 */ // Combiner Rule #163: constant_fold_fceil
12704 /* 12734 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
12705 /* 12737 */ // Label 599: @12737
12706 /* 12737 */ GIM_Reject,
12707 /* 12738 */ // Label 110: @12738
12708 /* 12738 */ GIM_Try, /*On fail goto*//*Label 600*/ GIMT_Encode4(12759), // Rule ID 209 //
12709 /* 12743 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
12710 /* 12746 */ // MIs[0] dst
12711 /* 12746 */ // No operand predicates
12712 /* 12746 */ // MIs[0] src0
12713 /* 12746 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12714 /* 12750 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
12715 /* 12754 */ // MIs[1] cst
12716 /* 12754 */ // No operand predicates
12717 /* 12754 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12718 /* 12756 */ // Combiner Rule #159: constant_fold_fsqrt
12719 /* 12756 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
12720 /* 12759 */ // Label 600: @12759
12721 /* 12759 */ GIM_Reject,
12722 /* 12760 */ // Label 111: @12760
12723 /* 12760 */ GIM_Try, /*On fail goto*//*Label 601*/ GIMT_Encode4(12781), // Rule ID 214 //
12724 /* 12765 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
12725 /* 12768 */ // MIs[0] dst
12726 /* 12768 */ // No operand predicates
12727 /* 12768 */ // MIs[0] src0
12728 /* 12768 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12729 /* 12772 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
12730 /* 12776 */ // MIs[1] cst
12731 /* 12776 */ // No operand predicates
12732 /* 12776 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12733 /* 12778 */ // Combiner Rule #164: constant_fold_ffloor
12734 /* 12778 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
12735 /* 12781 */ // Label 601: @12781
12736 /* 12781 */ GIM_Reject,
12737 /* 12782 */ // Label 112: @12782
12738 /* 12782 */ GIM_Try, /*On fail goto*//*Label 602*/ GIMT_Encode4(12803), // Rule ID 218 //
12739 /* 12787 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
12740 /* 12790 */ // MIs[0] dst
12741 /* 12790 */ // No operand predicates
12742 /* 12790 */ // MIs[0] src0
12743 /* 12790 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12744 /* 12794 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
12745 /* 12798 */ // MIs[1] cst
12746 /* 12798 */ // No operand predicates
12747 /* 12798 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12748 /* 12800 */ // Combiner Rule #168: constant_fold_frint
12749 /* 12800 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
12750 /* 12803 */ // Label 602: @12803
12751 /* 12803 */ GIM_Reject,
12752 /* 12804 */ // Label 113: @12804
12753 /* 12804 */ GIM_Try, /*On fail goto*//*Label 603*/ GIMT_Encode4(12825), // Rule ID 219 //
12754 /* 12809 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
12755 /* 12812 */ // MIs[0] dst
12756 /* 12812 */ // No operand predicates
12757 /* 12812 */ // MIs[0] src0
12758 /* 12812 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12759 /* 12816 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
12760 /* 12820 */ // MIs[1] cst
12761 /* 12820 */ // No operand predicates
12762 /* 12820 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12763 /* 12822 */ // Combiner Rule #169: constant_fold_fnearbyint
12764 /* 12822 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
12765 /* 12825 */ // Label 603: @12825
12766 /* 12825 */ GIM_Reject,
12767 /* 12826 */ // Label 114: @12826
12768 /* 12826 */ GIM_Try, /*On fail goto*//*Label 604*/ GIMT_Encode4(12837), // Rule ID 485 //
12769 /* 12831 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule347Enabled),
12770 /* 12834 */ // MIs[0] dst_addr
12771 /* 12834 */ // No operand predicates
12772 /* 12834 */ // MIs[0] src_addr
12773 /* 12834 */ // No operand predicates
12774 /* 12834 */ // MIs[0] size
12775 /* 12834 */ // No operand predicates
12776 /* 12834 */ // MIs[0] tailcall
12777 /* 12834 */ // No operand predicates
12778 /* 12834 */ // Combiner Rule #347: combine_memcpy
12779 /* 12834 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner136),
12780 /* 12837 */ // Label 604: @12837
12781 /* 12837 */ GIM_Reject,
12782 /* 12838 */ // Label 115: @12838
12783 /* 12838 */ GIM_Try, /*On fail goto*//*Label 605*/ GIMT_Encode4(12849), // Rule ID 483 //
12784 /* 12843 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule345Enabled),
12785 /* 12846 */ // MIs[0] dst_addr
12786 /* 12846 */ // No operand predicates
12787 /* 12846 */ // MIs[0] src_addr
12788 /* 12846 */ // No operand predicates
12789 /* 12846 */ // MIs[0] size
12790 /* 12846 */ // No operand predicates
12791 /* 12846 */ // Combiner Rule #345: combine_memcpy_inline
12792 /* 12846 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner135),
12793 /* 12849 */ // Label 605: @12849
12794 /* 12849 */ GIM_Reject,
12795 /* 12850 */ // Label 116: @12850
12796 /* 12850 */ GIM_Try, /*On fail goto*//*Label 606*/ GIMT_Encode4(12861), // Rule ID 486 //
12797 /* 12855 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule348Enabled),
12798 /* 12858 */ // MIs[0] dst_addr
12799 /* 12858 */ // No operand predicates
12800 /* 12858 */ // MIs[0] src_addr
12801 /* 12858 */ // No operand predicates
12802 /* 12858 */ // MIs[0] size
12803 /* 12858 */ // No operand predicates
12804 /* 12858 */ // MIs[0] tailcall
12805 /* 12858 */ // No operand predicates
12806 /* 12858 */ // Combiner Rule #348: combine_memmove
12807 /* 12858 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner136),
12808 /* 12861 */ // Label 606: @12861
12809 /* 12861 */ GIM_Reject,
12810 /* 12862 */ // Label 117: @12862
12811 /* 12862 */ GIM_Try, /*On fail goto*//*Label 607*/ GIMT_Encode4(12873), // Rule ID 487 //
12812 /* 12867 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule349Enabled),
12813 /* 12870 */ // MIs[0] dst_addr
12814 /* 12870 */ // No operand predicates
12815 /* 12870 */ // MIs[0] value
12816 /* 12870 */ // No operand predicates
12817 /* 12870 */ // MIs[0] size
12818 /* 12870 */ // No operand predicates
12819 /* 12870 */ // MIs[0] tailcall
12820 /* 12870 */ // No operand predicates
12821 /* 12870 */ // Combiner Rule #349: combine_memset
12822 /* 12870 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner136),
12823 /* 12873 */ // Label 607: @12873
12824 /* 12873 */ GIM_Try, /*On fail goto*//*Label 608*/ GIMT_Encode4(12884), // Rule ID 488 //
12825 /* 12878 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule350Enabled),
12826 /* 12881 */ // MIs[0] dst_addr
12827 /* 12881 */ // No operand predicates
12828 /* 12881 */ // MIs[0] value
12829 /* 12881 */ // No operand predicates
12830 /* 12881 */ // MIs[0] size
12831 /* 12881 */ // No operand predicates
12832 /* 12881 */ // MIs[0] tailcall
12833 /* 12881 */ // No operand predicates
12834 /* 12881 */ // Combiner Rule #350: emit_bzero
12835 /* 12881 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner137),
12836 /* 12884 */ // Label 608: @12884
12837 /* 12884 */ GIM_Reject,
12838 /* 12885 */ // Label 118: @12885
12839 /* 12885 */ GIM_Try, /*On fail goto*//*Label 609*/ GIMT_Encode4(12896), // Rule ID 484 //
12840 /* 12890 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule346Enabled),
12841 /* 12893 */ // MIs[0] dst_addr
12842 /* 12893 */ // No operand predicates
12843 /* 12893 */ // MIs[0] value
12844 /* 12893 */ // No operand predicates
12845 /* 12893 */ // MIs[0] size
12846 /* 12893 */ // No operand predicates
12847 /* 12893 */ // Combiner Rule #346: combine_memset_inline
12848 /* 12893 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner135),
12849 /* 12896 */ // Label 609: @12896
12850 /* 12896 */ GIM_Reject,
12851 /* 12897 */ // Label 119: @12897
12852 /* 12897 */ GIM_Try_CheckFeatures, /*On fail goto*//*Label 610*/ GIMT_Encode4(12910), GIMT_Encode2(GIFBS_HasDotProd), // Rule ID 474 //
12853 /* 12904 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule336Enabled),
12854 /* 12907 */ // MIs[0] dst
12855 /* 12907 */ // No operand predicates
12856 /* 12907 */ // MIs[0] src
12857 /* 12907 */ // No operand predicates
12858 /* 12907 */ // Combiner Rule #336: ext_addv_to_udot_addv
12859 /* 12907 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
12860 /* 12910 */ // Label 610: @12910
12861 /* 12910 */ GIM_Try, /*On fail goto*//*Label 611*/ GIMT_Encode4(12921), // Rule ID 475 //
12862 /* 12915 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule337Enabled),
12863 /* 12918 */ // MIs[0] dst
12864 /* 12918 */ // No operand predicates
12865 /* 12918 */ // MIs[0] src
12866 /* 12918 */ // No operand predicates
12867 /* 12918 */ // Combiner Rule #337: ext_uaddv_to_uaddlv
12868 /* 12918 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132),
12869 /* 12921 */ // Label 611: @12921
12870 /* 12921 */ GIM_Reject,
12871 /* 12922 */ // Label 120: @12922
12872 /* 12922 */ GIM_Reject,
12873 /* 12923 */ }; // Size: 12923 bytes
12874 return MatchTable0;
12875}
12876#undef GIMT_Encode2
12877#undef GIMT_Encode4
12878#undef GIMT_Encode8
12879
12880
12881#endif // GET_GICOMBINER_IMPL
12882
12883#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
12884
12885AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
12886AvailableFunctionFeatures()
12887
12888#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
12889
12890#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
12891
12892, State(0),
12893ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
12894
12895#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
12896
12897