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: // 6 strings to match.
42 switch (RuleIdentifier[0]) {
43 default: break;
44 case 'a': // 1 string to match.
45 if (memcmp(RuleIdentifier.data()+1, "dd_shift", 8) != 0)
46 break;
47 return 252; // "add_shift"
48 case 'c': // 1 string to match.
49 if (memcmp(RuleIdentifier.data()+1, "opy_prop", 8) != 0)
50 break;
51 return 19; // "copy_prop"
52 case 'm': // 3 strings to match.
53 switch (RuleIdentifier[1]) {
54 default: break;
55 case 'a': // 1 string to match.
56 if (memcmp(RuleIdentifier.data()+2, "tch_ors", 7) != 0)
57 break;
58 return 219; // "match_ors"
59 case 'u': // 2 strings to match.
60 if (memcmp(RuleIdentifier.data()+2, "lo_by_", 6) != 0)
61 break;
62 switch (RuleIdentifier[8]) {
63 default: break;
64 case '0': // 1 string to match.
65 return 163; // "mulo_by_0"
66 case '2': // 1 string to match.
67 return 162; // "mulo_by_2"
68 }
69 break;
70 }
71 break;
72 case 'n': // 1 string to match.
73 if (memcmp(RuleIdentifier.data()+1, "neg_zext", 8) != 0)
74 break;
75 return 228; // "nneg_zext"
76 }
77 break;
78 case 10: // 11 strings to match.
79 switch (RuleIdentifier[0]) {
80 default: break;
81 case 'S': // 2 strings to match.
82 if (memcmp(RuleIdentifier.data()+1, "ub", 2) != 0)
83 break;
84 switch (RuleIdentifier[3]) {
85 default: break;
86 case 'S': // 1 string to match.
87 if (memcmp(RuleIdentifier.data()+4, "maxSub", 6) != 0)
88 break;
89 return 257; // "SubSmaxSub"
90 case 'U': // 1 string to match.
91 if (memcmp(RuleIdentifier.data()+4, "maxSub", 6) != 0)
92 break;
93 return 258; // "SubUmaxSub"
94 }
95 break;
96 case 'e': // 1 string to match.
97 if (memcmp(RuleIdentifier.data()+1, "mit_bzero", 9) != 0)
98 break;
99 return 282; // "emit_bzero"
100 case 'i': // 1 string to match.
101 if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i", 9) != 0)
102 break;
103 return 96; // "i2p_to_p2i"
104 case 'm': // 2 strings to match.
105 switch (RuleIdentifier[1]) {
106 default: break;
107 case 'a': // 1 string to match.
108 if (memcmp(RuleIdentifier.data()+2, "tch_ands", 8) != 0)
109 break;
110 return 218; // "match_ands"
111 case 'u': // 1 string to match.
112 if (memcmp(RuleIdentifier.data()+2, "l_to_shl", 8) != 0)
113 break;
114 return 20; // "mul_to_shl"
115 }
116 break;
117 case 'p': // 1 string to match.
118 if (memcmp(RuleIdentifier.data()+1, "2i_to_i2p", 9) != 0)
119 break;
120 return 95; // "p2i_to_i2p"
121 case 's': // 3 strings to match.
122 switch (RuleIdentifier[1]) {
123 default: break;
124 case 'e': // 2 strings to match.
125 switch (RuleIdentifier[2]) {
126 default: break;
127 case 'l': // 1 string to match.
128 if (memcmp(RuleIdentifier.data()+3, "ect_not", 7) != 0)
129 break;
130 return 135; // "select_not"
131 case 'x': // 1 string to match.
132 if (memcmp(RuleIdentifier.data()+3, "t_trunc", 7) != 0)
133 break;
134 return 226; // "sext_trunc"
135 }
136 break;
137 case 'u': // 1 string to match.
138 if (memcmp(RuleIdentifier.data()+2, "b_to_add", 8) != 0)
139 break;
140 return 21; // "sub_to_add"
141 }
142 break;
143 case 'z': // 1 string to match.
144 if (memcmp(RuleIdentifier.data()+1, "ext_trunc", 9) != 0)
145 break;
146 return 227; // "zext_trunc"
147 }
148 break;
149 case 11: // 8 strings to match.
150 switch (RuleIdentifier[0]) {
151 default: break;
152 case 'a': // 1 string to match.
153 if (memcmp(RuleIdentifier.data()+1, "dd_sub_reg", 10) != 0)
154 break;
155 return 101; // "add_sub_reg"
156 case 'm': // 1 string to match.
157 if (memcmp(RuleIdentifier.data()+1, "atch_addos", 10) != 0)
158 break;
159 return 243; // "match_addos"
160 case 's': // 1 string to match.
161 if (memcmp(RuleIdentifier.data()+1, "ub_add_reg", 10) != 0)
162 break;
163 return 213; // "sub_add_reg"
164 case 't': // 4 strings to match.
165 if (memcmp(RuleIdentifier.data()+1, "runc_", 5) != 0)
166 break;
167 switch (RuleIdentifier[6]) {
168 default: break;
169 case 's': // 3 strings to match.
170 switch (RuleIdentifier[7]) {
171 default: break;
172 case 'h': // 1 string to match.
173 if (memcmp(RuleIdentifier.data()+8, "ift", 3) != 0)
174 break;
175 return 142; // "trunc_shift"
176 case 's': // 2 strings to match.
177 if (memcmp(RuleIdentifier.data()+8, "at", 2) != 0)
178 break;
179 switch (RuleIdentifier[10]) {
180 default: break;
181 case 's': // 1 string to match.
182 return 245; // "trunc_ssats"
183 case 'u': // 1 string to match.
184 return 246; // "trunc_ssatu"
185 }
186 break;
187 }
188 break;
189 case 'u': // 1 string to match.
190 if (memcmp(RuleIdentifier.data()+7, "satu", 4) != 0)
191 break;
192 return 247; // "trunc_usatu"
193 }
194 break;
195 case 'u': // 1 string to match.
196 if (memcmp(RuleIdentifier.data()+1, "nmerge_cst", 10) != 0)
197 break;
198 return 236; // "unmerge_cst"
199 }
200 break;
201 case 12: // 12 strings to match.
202 switch (RuleIdentifier[0]) {
203 default: break;
204 case 'A': // 1 string to match.
205 if (memcmp(RuleIdentifier.data()+1, "PlusBMinusB", 11) != 0)
206 break;
207 return 4; // "APlusBMinusB"
208 case 'B': // 1 string to match.
209 if (memcmp(RuleIdentifier.data()+1, "MinusAPlusA", 11) != 0)
210 break;
211 return 5; // "BMinusAPlusA"
212 case 'a': // 1 string to match.
213 if (memcmp(RuleIdentifier.data()+1, "dde_to_addo", 11) != 0)
214 break;
215 return 164; // "adde_to_addo"
216 case 'c': // 1 string to match.
217 if (memcmp(RuleIdentifier.data()+1, "tlz_to_ctls", 11) != 0)
218 break;
219 return 250; // "ctlz_to_ctls"
220 case 'f': // 1 string to match.
221 if (memcmp(RuleIdentifier.data()+1, "sub_to_fneg", 11) != 0)
222 break;
223 return 215; // "fsub_to_fneg"
224 case 'm': // 1 string to match.
225 if (memcmp(RuleIdentifier.data()+1, "ulh_to_lshr", 11) != 0)
226 break;
227 return 193; // "mulh_to_lshr"
228 case 'n': // 1 string to match.
229 if (memcmp(RuleIdentifier.data()+1, "ot_cmp_fold", 11) != 0)
230 break;
231 return 143; // "not_cmp_fold"
232 case 'r': // 1 string to match.
233 if (memcmp(RuleIdentifier.data()+1, "edundant_or", 11) != 0)
234 break;
235 return 138; // "redundant_or"
236 case 's': // 2 strings to match.
237 switch (RuleIdentifier[1]) {
238 default: break;
239 case 'd': // 1 string to match.
240 if (memcmp(RuleIdentifier.data()+2, "iv_by_pow2", 10) != 0)
241 break;
242 return 209; // "sdiv_by_pow2"
243 case 'e': // 1 string to match.
244 if (memcmp(RuleIdentifier.data()+2, "xt_of_sext", 10) != 0)
245 break;
246 return 54; // "sext_of_sext"
247 }
248 break;
249 case 'u': // 1 string to match.
250 if (memcmp(RuleIdentifier.data()+1, "div_by_pow2", 11) != 0)
251 break;
252 return 208; // "udiv_by_pow2"
253 case 'z': // 1 string to match.
254 if (memcmp(RuleIdentifier.data()+1, "ext_of_zext", 11) != 0)
255 break;
256 return 52; // "zext_of_zext"
257 }
258 break;
259 case 13: // 19 strings to match.
260 switch (RuleIdentifier[0]) {
261 default: break;
262 case 'A': // 2 strings to match.
263 if (memcmp(RuleIdentifier.data()+1, "MinusBMinus", 11) != 0)
264 break;
265 switch (RuleIdentifier[12]) {
266 default: break;
267 case 'A': // 1 string to match.
268 return 12; // "AMinusBMinusA"
269 case 'C': // 1 string to match.
270 return 9; // "AMinusBMinusC"
271 }
272 break;
273 case 'a': // 1 string to match.
274 if (memcmp(RuleIdentifier.data()+1, "dd_of_vscale", 12) != 0)
275 break;
276 return 43; // "add_of_vscale"
277 case 'c': // 1 string to match.
278 if (memcmp(RuleIdentifier.data()+1, "ommute_shift", 12) != 0)
279 break;
280 return 182; // "commute_shift"
281 case 'l': // 1 string to match.
282 if (memcmp(RuleIdentifier.data()+1, "oad_and_mask", 12) != 0)
283 break;
284 return 75; // "load_and_mask"
285 case 'm': // 3 strings to match.
286 switch (RuleIdentifier[1]) {
287 default: break;
288 case 'a': // 1 string to match.
289 if (memcmp(RuleIdentifier.data()+2, "tch_selects", 11) != 0)
290 break;
291 return 133; // "match_selects"
292 case 'e': // 1 string to match.
293 if (memcmp(RuleIdentifier.data()+2, "rge_unmerge", 11) != 0)
294 break;
295 return 235; // "merge_unmerge"
296 case 'u': // 1 string to match.
297 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
298 break;
299 return 44; // "mul_of_vscale"
300 }
301 break;
302 case 'r': // 1 string to match.
303 if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
304 break;
305 return 136; // "redundant_and"
306 case 's': // 6 strings to match.
307 switch (RuleIdentifier[1]) {
308 default: break;
309 case 'a': // 1 string to match.
310 if (memcmp(RuleIdentifier.data()+2, "me_val_zero", 11) != 0)
311 break;
312 return 92; // "same_val_zero"
313 case 'd': // 1 string to match.
314 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
315 break;
316 return 211; // "sdiv_by_const"
317 case 'h': // 1 string to match.
318 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
319 break;
320 return 45; // "shl_of_vscale"
321 case 'r': // 1 string to match.
322 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
323 break;
324 return 207; // "srem_by_const"
325 case 'u': // 2 strings to match.
326 if (memcmp(RuleIdentifier.data()+2, "b_", 2) != 0)
327 break;
328 switch (RuleIdentifier[4]) {
329 default: break;
330 case 'm': // 1 string to match.
331 if (memcmp(RuleIdentifier.data()+5, "inus_one", 8) != 0)
332 break;
333 return 255; // "sub_minus_one"
334 case 'o': // 1 string to match.
335 if (memcmp(RuleIdentifier.data()+5, "f_vscale", 8) != 0)
336 break;
337 return 46; // "sub_of_vscale"
338 }
339 break;
340 }
341 break;
342 case 'u': // 4 strings to match.
343 switch (RuleIdentifier[1]) {
344 default: break;
345 case 'd': // 1 string to match.
346 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
347 break;
348 return 210; // "udiv_by_const"
349 case 'n': // 2 strings to match.
350 if (memcmp(RuleIdentifier.data()+2, "merge_", 6) != 0)
351 break;
352 switch (RuleIdentifier[8]) {
353 default: break;
354 case 'm': // 1 string to match.
355 if (memcmp(RuleIdentifier.data()+9, "erge", 4) != 0)
356 break;
357 return 234; // "unmerge_merge"
358 case 'u': // 1 string to match.
359 if (memcmp(RuleIdentifier.data()+9, "ndef", 4) != 0)
360 break;
361 return 237; // "unmerge_undef"
362 }
363 break;
364 case 'r': // 1 string to match.
365 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
366 break;
367 return 206; // "urem_by_const"
368 }
369 break;
370 }
371 break;
372 case 14: // 20 strings to match.
373 switch (RuleIdentifier[0]) {
374 default: break;
375 case 'A': // 2 strings to match.
376 switch (RuleIdentifier[1]) {
377 default: break;
378 case 'M': // 1 string to match.
379 if (memcmp(RuleIdentifier.data()+2, "inusC1PlusC2", 12) != 0)
380 break;
381 return 18; // "AMinusC1PlusC2"
382 case 'P': // 1 string to match.
383 if (memcmp(RuleIdentifier.data()+2, "lusC1MinusC2", 12) != 0)
384 break;
385 return 14; // "APlusC1MinusC2"
386 }
387 break;
388 case 'C': // 1 string to match.
389 if (memcmp(RuleIdentifier.data()+1, "2MinusAPlusC1", 13) != 0)
390 break;
391 return 15; // "C2MinusAPlusC1"
392 case 'N': // 1 string to match.
393 if (memcmp(RuleIdentifier.data()+1, "otAPlusNegOne", 13) != 0)
394 break;
395 return 13; // "NotAPlusNegOne"
396 case 'a': // 2 strings to match.
397 if (memcmp(RuleIdentifier.data()+1, "nyext_of_", 9) != 0)
398 break;
399 switch (RuleIdentifier[10]) {
400 default: break;
401 case 's': // 1 string to match.
402 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
403 break;
404 return 58; // "anyext_of_sext"
405 case 'z': // 1 string to match.
406 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
407 break;
408 return 57; // "anyext_of_zext"
409 }
410 break;
411 case 'b': // 3 strings to match.
412 if (RuleIdentifier[1] != 'i')
413 break;
414 switch (RuleIdentifier[2]) {
415 default: break;
416 case 'n': // 2 strings to match.
417 if (memcmp(RuleIdentifier.data()+3, "op_", 3) != 0)
418 break;
419 switch (RuleIdentifier[6]) {
420 default: break;
421 case 's': // 1 string to match.
422 if (memcmp(RuleIdentifier.data()+7, "ame_val", 7) != 0)
423 break;
424 return 91; // "binop_same_val"
425 case 'w': // 1 string to match.
426 if (memcmp(RuleIdentifier.data()+7, "ith_neg", 7) != 0)
427 break;
428 return 254; // "binop_with_neg"
429 }
430 break;
431 case 't': // 1 string to match.
432 if (memcmp(RuleIdentifier.data()+3, "reverse_shl", 11) != 0)
433 break;
434 return 180; // "bitreverse_shl"
435 }
436 break;
437 case 'c': // 2 strings to match.
438 if (memcmp(RuleIdentifier.data()+1, "ombine_mem", 10) != 0)
439 break;
440 switch (RuleIdentifier[11]) {
441 default: break;
442 case 'c': // 1 string to match.
443 if (memcmp(RuleIdentifier.data()+12, "py", 2) != 0)
444 break;
445 return 279; // "combine_memcpy"
446 case 's': // 1 string to match.
447 if (memcmp(RuleIdentifier.data()+12, "et", 2) != 0)
448 break;
449 return 281; // "combine_memset"
450 }
451 break;
452 case 'f': // 2 strings to match.
453 switch (RuleIdentifier[1]) {
454 default: break;
455 case 'a': // 1 string to match.
456 if (memcmp(RuleIdentifier.data()+2, "bs_fneg_fold", 12) != 0)
457 break;
458 return 192; // "fabs_fneg_fold"
459 case 'n': // 1 string to match.
460 if (memcmp(RuleIdentifier.data()+2, "eg_fneg_fold", 12) != 0)
461 break;
462 return 98; // "fneg_fneg_fold"
463 }
464 break;
465 case 'm': // 1 string to match.
466 if (memcmp(RuleIdentifier.data()+1, "ul_by_neg_one", 13) != 0)
467 break;
468 return 23; // "mul_by_neg_one"
469 case 'r': // 1 string to match.
470 if (memcmp(RuleIdentifier.data()+1, "eassoc_ptradd", 13) != 0)
471 break;
472 return 115; // "reassoc_ptradd"
473 case 's': // 4 strings to match.
474 switch (RuleIdentifier[1]) {
475 default: break;
476 case 'e': // 2 strings to match.
477 switch (RuleIdentifier[2]) {
478 default: break;
479 case 'l': // 1 string to match.
480 if (memcmp(RuleIdentifier.data()+3, "ect_of_zext", 11) != 0)
481 break;
482 return 60; // "select_of_zext"
483 case 'x': // 1 string to match.
484 if (memcmp(RuleIdentifier.data()+3, "t_of_anyext", 11) != 0)
485 break;
486 return 55; // "sext_of_anyext"
487 }
488 break;
489 case 'h': // 1 string to match.
490 if (memcmp(RuleIdentifier.data()+2, "ifts_too_big", 12) != 0)
491 break;
492 return 114; // "shifts_too_big"
493 case 'i': // 1 string to match.
494 if (memcmp(RuleIdentifier.data()+2, "mplify_uaddo", 12) != 0)
495 break;
496 return 276; // "simplify_uaddo"
497 }
498 break;
499 case 'z': // 1 string to match.
500 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
501 break;
502 return 53; // "zext_of_anyext"
503 }
504 break;
505 case 15: // 15 strings to match.
506 switch (RuleIdentifier[0]) {
507 default: break;
508 case 'A': // 2 strings to match.
509 switch (RuleIdentifier[1]) {
510 default: break;
511 case 'M': // 1 string to match.
512 if (memcmp(RuleIdentifier.data()+2, "inusC1MinusC2", 13) != 0)
513 break;
514 return 16; // "AMinusC1MinusC2"
515 case 'P': // 1 string to match.
516 if (memcmp(RuleIdentifier.data()+2, "lusZeroMinusB", 13) != 0)
517 break;
518 return 3; // "APlusZeroMinusB"
519 }
520 break;
521 case 'C': // 1 string to match.
522 if (memcmp(RuleIdentifier.data()+1, "1Minus2MinusC2", 14) != 0)
523 break;
524 return 17; // "C1Minus2MinusC2"
525 case 'Z': // 1 string to match.
526 if (memcmp(RuleIdentifier.data()+1, "eroMinusAPlusB", 14) != 0)
527 break;
528 return 2; // "ZeroMinusAPlusB"
529 case 'a': // 2 strings to match.
530 if (memcmp(RuleIdentifier.data()+1, "vgceil_", 7) != 0)
531 break;
532 switch (RuleIdentifier[8]) {
533 default: break;
534 case 's': // 1 string to match.
535 if (memcmp(RuleIdentifier.data()+9, "_match", 6) != 0)
536 break;
537 return 262; // "avgceil_s_match"
538 case 'u': // 1 string to match.
539 if (memcmp(RuleIdentifier.data()+9, "_match", 6) != 0)
540 break;
541 return 261; // "avgceil_u_match"
542 }
543 break;
544 case 'b': // 1 string to match.
545 if (memcmp(RuleIdentifier.data()+1, "itreverse_lshr", 14) != 0)
546 break;
547 return 181; // "bitreverse_lshr"
548 case 'c': // 1 string to match.
549 if (memcmp(RuleIdentifier.data()+1, "ombine_memmove", 14) != 0)
550 break;
551 return 280; // "combine_memmove"
552 case 'e': // 1 string to match.
553 if (memcmp(RuleIdentifier.data()+1, "xtending_loads", 14) != 0)
554 break;
555 return 74; // "extending_loads"
556 case 'i': // 1 string to match.
557 if (memcmp(RuleIdentifier.data()+1, "dempotent_prop", 14) != 0)
558 break;
559 return 24; // "idempotent_prop"
560 case 'l': // 1 string to match.
561 if (memcmp(RuleIdentifier.data()+1, "oad_or_combine", 14) != 0)
562 break;
563 return 171; // "load_or_combine"
564 case 'n': // 1 string to match.
565 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_or", 14) != 0)
566 break;
567 return 68; // "narrow_binop_or"
568 case 'o': // 1 string to match.
569 if (memcmp(RuleIdentifier.data()+1, "verlapping_and", 14) != 0)
570 break;
571 return 161; // "overlapping_and"
572 case 's': // 1 string to match.
573 if (memcmp(RuleIdentifier.data()+1, "elect_same_val", 14) != 0)
574 break;
575 return 89; // "select_same_val"
576 case 'z': // 1 string to match.
577 if (memcmp(RuleIdentifier.data()+1, "ext_trunc_fold", 14) != 0)
578 break;
579 return 140; // "zext_trunc_fold"
580 }
581 break;
582 case 16: // 19 strings to match.
583 switch (RuleIdentifier[0]) {
584 default: break;
585 case 'A': // 1 string to match.
586 if (memcmp(RuleIdentifier.data()+1, "MinusZeroMinusB", 15) != 0)
587 break;
588 return 11; // "AMinusZeroMinusB"
589 case 'a': // 3 strings to match.
590 switch (RuleIdentifier[1]) {
591 default: break;
592 case 'n': // 1 string to match.
593 if (memcmp(RuleIdentifier.data()+2, "yext_of_anyext", 14) != 0)
594 break;
595 return 56; // "anyext_of_anyext"
596 case 'v': // 2 strings to match.
597 if (memcmp(RuleIdentifier.data()+2, "gfloor_", 7) != 0)
598 break;
599 switch (RuleIdentifier[9]) {
600 default: break;
601 case 's': // 1 string to match.
602 if (memcmp(RuleIdentifier.data()+10, "_match", 6) != 0)
603 break;
604 return 260; // "avgfloor_s_match"
605 case 'u': // 1 string to match.
606 if (memcmp(RuleIdentifier.data()+10, "_match", 6) != 0)
607 break;
608 return 259; // "avgfloor_u_match"
609 }
610 break;
611 }
612 break;
613 case 'n': // 5 strings to match.
614 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_", 12) != 0)
615 break;
616 switch (RuleIdentifier[13]) {
617 default: break;
618 case 'a': // 2 strings to match.
619 switch (RuleIdentifier[14]) {
620 default: break;
621 case 'd': // 1 string to match.
622 if (RuleIdentifier[15] != 'd')
623 break;
624 return 64; // "narrow_binop_add"
625 case 'n': // 1 string to match.
626 if (RuleIdentifier[15] != 'd')
627 break;
628 return 67; // "narrow_binop_and"
629 }
630 break;
631 case 'm': // 1 string to match.
632 if (memcmp(RuleIdentifier.data()+14, "ul", 2) != 0)
633 break;
634 return 66; // "narrow_binop_mul"
635 case 's': // 1 string to match.
636 if (memcmp(RuleIdentifier.data()+14, "ub", 2) != 0)
637 break;
638 return 65; // "narrow_binop_sub"
639 case 'x': // 1 string to match.
640 if (memcmp(RuleIdentifier.data()+14, "or", 2) != 0)
641 break;
642 return 69; // "narrow_binop_xor"
643 }
644 break;
645 case 'o': // 1 string to match.
646 if (memcmp(RuleIdentifier.data()+1, "r_and_xor_to_or", 15) != 0)
647 break;
648 return 220; // "or_and_xor_to_or"
649 case 's': // 6 strings to match.
650 switch (RuleIdentifier[1]) {
651 default: break;
652 case 'e': // 4 strings to match.
653 if (memcmp(RuleIdentifier.data()+2, "lect_", 5) != 0)
654 break;
655 switch (RuleIdentifier[7]) {
656 default: break;
657 case 'o': // 1 string to match.
658 if (memcmp(RuleIdentifier.data()+8, "f_anyext", 8) != 0)
659 break;
660 return 61; // "select_of_anyext"
661 case 't': // 1 string to match.
662 if (memcmp(RuleIdentifier.data()+8, "o_minmax", 8) != 0)
663 break;
664 return 214; // "select_to_minmax"
665 case 'u': // 1 string to match.
666 if (memcmp(RuleIdentifier.data()+8, "ndef_cmp", 8) != 0)
667 break;
668 return 130; // "select_undef_cmp"
669 case 'z': // 1 string to match.
670 if (memcmp(RuleIdentifier.data()+8, "ero_true", 8) != 0)
671 break;
672 return 264; // "select_zero_true"
673 }
674 break;
675 case 'u': // 2 strings to match.
676 if (memcmp(RuleIdentifier.data()+2, "b_o", 3) != 0)
677 break;
678 switch (RuleIdentifier[5]) {
679 default: break;
680 case 'f': // 1 string to match.
681 if (memcmp(RuleIdentifier.data()+6, "_mul_const", 10) != 0)
682 break;
683 return 256; // "sub_of_mul_const"
684 case 'n': // 1 string to match.
685 if (memcmp(RuleIdentifier.data()+6, "e_from_sub", 10) != 0)
686 break;
687 return 253; // "sub_one_from_sub"
688 }
689 break;
690 }
691 break;
692 case 't': // 2 strings to match.
693 if (memcmp(RuleIdentifier.data()+1, "runcate_of_", 11) != 0)
694 break;
695 switch (RuleIdentifier[12]) {
696 default: break;
697 case 's': // 1 string to match.
698 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
699 break;
700 return 50; // "truncate_of_sext"
701 case 'z': // 1 string to match.
702 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
703 break;
704 return 49; // "truncate_of_zext"
705 }
706 break;
707 case 'u': // 1 string to match.
708 if (memcmp(RuleIdentifier.data()+1, "ndef_to_fp_zero", 15) != 0)
709 break;
710 return 77; // "undef_to_fp_zero"
711 }
712 break;
713 case 17: // 18 strings to match.
714 switch (RuleIdentifier[0]) {
715 default: break;
716 case 'A': // 2 strings to match.
717 if (memcmp(RuleIdentifier.data()+1, "PlusBMinus", 10) != 0)
718 break;
719 switch (RuleIdentifier[11]) {
720 default: break;
721 case 'A': // 1 string to match.
722 if (memcmp(RuleIdentifier.data()+12, "plusC", 5) != 0)
723 break;
724 return 8; // "APlusBMinusAplusC"
725 case 'C': // 1 string to match.
726 if (memcmp(RuleIdentifier.data()+12, "PlusA", 5) != 0)
727 break;
728 return 10; // "APlusBMinusCPlusA"
729 }
730 break;
731 case 'a': // 3 strings to match.
732 switch (RuleIdentifier[1]) {
733 default: break;
734 case 'd': // 1 string to match.
735 if (memcmp(RuleIdentifier.data()+2, "d_p2i_to_ptradd", 15) != 0)
736 break;
737 return 22; // "add_p2i_to_ptradd"
738 case 'n': // 2 strings to match.
739 switch (RuleIdentifier[2]) {
740 default: break;
741 case 'd': // 1 string to match.
742 if (memcmp(RuleIdentifier.data()+3, "_xor_or_to_and", 14) != 0)
743 break;
744 return 222; // "and_xor_or_to_and"
745 case 'y': // 1 string to match.
746 if (memcmp(RuleIdentifier.data()+3, "ext_trunc_fold", 14) != 0)
747 break;
748 return 97; // "anyext_trunc_fold"
749 }
750 break;
751 }
752 break;
753 case 'c': // 4 strings to match.
754 switch (RuleIdentifier[1]) {
755 default: break;
756 case 'a': // 2 strings to match.
757 if (memcmp(RuleIdentifier.data()+2, "nonicalize_", 11) != 0)
758 break;
759 switch (RuleIdentifier[13]) {
760 default: break;
761 case 'f': // 1 string to match.
762 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
763 break;
764 return 119; // "canonicalize_fcmp"
765 case 'i': // 1 string to match.
766 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
767 break;
768 return 118; // "canonicalize_icmp"
769 }
770 break;
771 case 'o': // 2 strings to match.
772 switch (RuleIdentifier[2]) {
773 default: break;
774 case 'm': // 1 string to match.
775 if (memcmp(RuleIdentifier.data()+3, "bine_or_of_and", 14) != 0)
776 break;
777 return 263; // "combine_or_of_and"
778 case 'n': // 1 string to match.
779 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fma", 14) != 0)
780 break;
781 return 189; // "constant_fold_fma"
782 }
783 break;
784 }
785 break;
786 case 'd': // 1 string to match.
787 if (memcmp(RuleIdentifier.data()+1, "iv_rem_to_divrem", 16) != 0)
788 break;
789 return 172; // "div_rem_to_divrem"
790 case 'e': // 1 string to match.
791 if (memcmp(RuleIdentifier.data()+1, "rase_undef_store", 16) != 0)
792 break;
793 return 87; // "erase_undef_store"
794 case 'p': // 1 string to match.
795 if (memcmp(RuleIdentifier.data()+1, "tr_add_with_zero", 16) != 0)
796 break;
797 return 168; // "ptr_add_with_zero"
798 case 's': // 4 strings to match.
799 switch (RuleIdentifier[1]) {
800 default: break;
801 case 'e': // 2 strings to match.
802 if (memcmp(RuleIdentifier.data()+2, "lect_", 5) != 0)
803 break;
804 switch (RuleIdentifier[7]) {
805 default: break;
806 case 't': // 1 string to match.
807 if (memcmp(RuleIdentifier.data()+8, "o_iminmax", 9) != 0)
808 break;
809 return 132; // "select_to_iminmax"
810 case 'z': // 1 string to match.
811 if (memcmp(RuleIdentifier.data()+8, "ero_false", 9) != 0)
812 break;
813 return 134; // "select_zero_false"
814 }
815 break;
816 case 'h': // 1 string to match.
817 if (memcmp(RuleIdentifier.data()+2, "ift_immed_chain", 15) != 0)
818 break;
819 return 169; // "shift_immed_chain"
820 case 'r': // 1 string to match.
821 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
822 break;
823 return 205; // "srem_pow2_to_mask"
824 }
825 break;
826 case 'u': // 2 strings to match.
827 switch (RuleIdentifier[1]) {
828 default: break;
829 case 'n': // 1 string to match.
830 if (memcmp(RuleIdentifier.data()+2, "def_to_int_zero", 15) != 0)
831 break;
832 return 78; // "undef_to_int_zero"
833 case 'r': // 1 string to match.
834 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
835 break;
836 return 139; // "urem_pow2_to_mask"
837 }
838 break;
839 }
840 break;
841 case 18: // 13 strings to match.
842 switch (RuleIdentifier[0]) {
843 default: break;
844 case 'A': // 3 strings to match.
845 switch (RuleIdentifier[1]) {
846 default: break;
847 case 'M': // 2 strings to match.
848 if (memcmp(RuleIdentifier.data()+2, "inusBPlus", 9) != 0)
849 break;
850 switch (RuleIdentifier[11]) {
851 default: break;
852 case 'B': // 1 string to match.
853 if (memcmp(RuleIdentifier.data()+12, "MinusC", 6) != 0)
854 break;
855 return 7; // "AMinusBPlusBMinusC"
856 case 'C': // 1 string to match.
857 if (memcmp(RuleIdentifier.data()+12, "MinusA", 6) != 0)
858 break;
859 return 6; // "AMinusBPlusCMinusA"
860 }
861 break;
862 case 'P': // 1 string to match.
863 if (memcmp(RuleIdentifier.data()+2, "lusBMinusCMinusB", 16) != 0)
864 break;
865 return 0; // "APlusBMinusCMinusB"
866 }
867 break;
868 case 'b': // 1 string to match.
869 if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
870 break;
871 return 93; // "binop_left_to_zero"
872 case 'c': // 3 strings to match.
873 if (RuleIdentifier[1] != 'o')
874 break;
875 switch (RuleIdentifier[2]) {
876 default: break;
877 case 'm': // 1 string to match.
878 if (memcmp(RuleIdentifier.data()+3, "bine_minmax_nan", 15) != 0)
879 break;
880 return 165; // "combine_minmax_nan"
881 case 'n': // 2 strings to match.
882 if (memcmp(RuleIdentifier.data()+3, "stant_fold_f", 12) != 0)
883 break;
884 switch (RuleIdentifier[15]) {
885 default: break;
886 case 'a': // 1 string to match.
887 if (memcmp(RuleIdentifier.data()+16, "bs", 2) != 0)
888 break;
889 return 146; // "constant_fold_fabs"
890 case 'n': // 1 string to match.
891 if (memcmp(RuleIdentifier.data()+16, "eg", 2) != 0)
892 break;
893 return 145; // "constant_fold_fneg"
894 }
895 break;
896 }
897 break;
898 case 'e': // 1 string to match.
899 if (memcmp(RuleIdentifier.data()+1, "xpand_const_fpowi", 17) != 0)
900 break;
901 return 166; // "expand_const_fpowi"
902 case 'f': // 2 strings to match.
903 switch (RuleIdentifier[1]) {
904 default: break;
905 case 'o': // 1 string to match.
906 if (memcmp(RuleIdentifier.data()+2, "ld_global_offset", 16) != 0)
907 break;
908 return 267; // "fold_global_offset"
909 case 'p': // 1 string to match.
910 if (memcmp(RuleIdentifier.data()+2, "trunc_fpext_fold", 16) != 0)
911 break;
912 return 107; // "fptrunc_fpext_fold"
913 }
914 break;
915 case 's': // 2 strings to match.
916 if (RuleIdentifier[1] != 'e')
917 break;
918 switch (RuleIdentifier[2]) {
919 default: break;
920 case 'l': // 1 string to match.
921 if (memcmp(RuleIdentifier.data()+3, "ect_of_truncate", 15) != 0)
922 break;
923 return 62; // "select_of_truncate"
924 case 'x': // 1 string to match.
925 if (memcmp(RuleIdentifier.data()+3, "t_inreg_of_load", 15) != 0)
926 break;
927 return 127; // "sext_inreg_of_load"
928 }
929 break;
930 case 't': // 1 string to match.
931 if (memcmp(RuleIdentifier.data()+1, "runcate_of_anyext", 17) != 0)
932 break;
933 return 51; // "truncate_of_anyext"
934 }
935 break;
936 case 19: // 20 strings to match.
937 switch (RuleIdentifier[0]) {
938 default: break;
939 case 'A': // 1 string to match.
940 if (memcmp(RuleIdentifier.data()+1, "MinusBMinusCMinusC", 18) != 0)
941 break;
942 return 1; // "AMinusBMinusCMinusC"
943 case 'b': // 1 string to match.
944 if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
945 break;
946 return 94; // "binop_right_to_zero"
947 case 'c': // 7 strings to match.
948 if (memcmp(RuleIdentifier.data()+1, "onst", 4) != 0)
949 break;
950 switch (RuleIdentifier[5]) {
951 default: break;
952 case '_': // 1 string to match.
953 if (memcmp(RuleIdentifier.data()+6, "ptradd_to_i2p", 13) != 0)
954 break;
955 return 160; // "const_ptradd_to_i2p"
956 case 'a': // 6 strings to match.
957 if (memcmp(RuleIdentifier.data()+6, "nt_fold_", 8) != 0)
958 break;
959 switch (RuleIdentifier[14]) {
960 default: break;
961 case 'b': // 1 string to match.
962 if (memcmp(RuleIdentifier.data()+15, "inop", 4) != 0)
963 break;
964 return 187; // "constant_fold_binop"
965 case 'f': // 5 strings to match.
966 switch (RuleIdentifier[15]) {
967 default: break;
968 case 'c': // 1 string to match.
969 if (memcmp(RuleIdentifier.data()+16, "eil", 3) != 0)
970 break;
971 return 151; // "constant_fold_fceil"
972 case 'l': // 1 string to match.
973 if (memcmp(RuleIdentifier.data()+16, "og2", 3) != 0)
974 break;
975 return 148; // "constant_fold_flog2"
976 case 'p': // 1 string to match.
977 if (memcmp(RuleIdentifier.data()+16, "ext", 3) != 0)
978 break;
979 return 150; // "constant_fold_fpext"
980 case 'r': // 1 string to match.
981 if (memcmp(RuleIdentifier.data()+16, "int", 3) != 0)
982 break;
983 return 156; // "constant_fold_frint"
984 case 's': // 1 string to match.
985 if (memcmp(RuleIdentifier.data()+16, "qrt", 3) != 0)
986 break;
987 return 147; // "constant_fold_fsqrt"
988 }
989 break;
990 }
991 break;
992 }
993 break;
994 case 'e': // 2 strings to match.
995 if (memcmp(RuleIdentifier.data()+1, "xt", 2) != 0)
996 break;
997 switch (RuleIdentifier[3]) {
998 default: break;
999 case '_': // 1 string to match.
1000 if (memcmp(RuleIdentifier.data()+4, "uaddv_to_uaddlv", 15) != 0)
1001 break;
1002 return 269; // "ext_uaddv_to_uaddlv"
1003 case 'e': // 1 string to match.
1004 if (memcmp(RuleIdentifier.data()+4, "nd_through_phis", 15) != 0)
1005 break;
1006 return 111; // "extend_through_phis"
1007 }
1008 break;
1009 case 'i': // 1 string to match.
1010 if (memcmp(RuleIdentifier.data()+1, "nteger_of_truncate", 18) != 0)
1011 break;
1012 return 70; // "integer_of_truncate"
1013 case 'm': // 1 string to match.
1014 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_zero", 18) != 0)
1015 break;
1016 return 241; // "merge_of_x_and_zero"
1017 case 'p': // 1 string to match.
1018 if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
1019 break;
1020 return 117; // "ptr_add_immed_chain"
1021 case 'r': // 2 strings to match.
1022 switch (RuleIdentifier[1]) {
1023 default: break;
1024 case 'e': // 1 string to match.
1025 if (memcmp(RuleIdentifier.data()+2, "assoc_comm_binops", 17) != 0)
1026 break;
1027 return 116; // "reassoc_comm_binops"
1028 case 'i': // 1 string to match.
1029 if (memcmp(RuleIdentifier.data()+2, "ght_identity_zero", 17) != 0)
1030 break;
1031 return 90; // "right_identity_zero"
1032 }
1033 break;
1034 case 's': // 3 strings to match.
1035 switch (RuleIdentifier[1]) {
1036 default: break;
1037 case 'e': // 1 string to match.
1038 if (memcmp(RuleIdentifier.data()+2, "lect_constant_cmp", 17) != 0)
1039 break;
1040 return 131; // "select_constant_cmp"
1041 case 'i': // 2 strings to match.
1042 if (memcmp(RuleIdentifier.data()+2, "mplify_", 7) != 0)
1043 break;
1044 switch (RuleIdentifier[9]) {
1045 default: break;
1046 case 'a': // 1 string to match.
1047 if (memcmp(RuleIdentifier.data()+10, "dd_to_sub", 9) != 0)
1048 break;
1049 return 112; // "simplify_add_to_sub"
1050 case 'n': // 1 string to match.
1051 if (memcmp(RuleIdentifier.data()+10, "eg_minmax", 9) != 0)
1052 break;
1053 return 224; // "simplify_neg_minmax"
1054 }
1055 break;
1056 }
1057 break;
1058 case 'u': // 1 string to match.
1059 if (memcmp(RuleIdentifier.data()+1, "nary_undef_to_zero", 18) != 0)
1060 break;
1061 return 82; // "unary_undef_to_zero"
1062 }
1063 break;
1064 case 20: // 10 strings to match.
1065 switch (RuleIdentifier[0]) {
1066 default: break;
1067 case 'a': // 1 string to match.
1068 if (memcmp(RuleIdentifier.data()+1, "nd_or_disjoint_mask", 19) != 0)
1069 break;
1070 return 195; // "and_or_disjoint_mask"
1071 case 'b': // 1 string to match.
1072 if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold", 19) != 0)
1073 break;
1074 return 105; // "bitcast_bitcast_fold"
1075 case 'c': // 1 string to match.
1076 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_ffloor", 19) != 0)
1077 break;
1078 return 152; // "constant_fold_ffloor"
1079 case 'i': // 1 string to match.
1080 if (memcmp(RuleIdentifier.data()+1, "cmp_redundant_trunc", 19) != 0)
1081 break;
1082 return 266; // "icmp_redundant_trunc"
1083 case 'm': // 1 string to match.
1084 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_undef", 19) != 0)
1085 break;
1086 return 240; // "merge_of_x_and_undef"
1087 case 'o': // 1 string to match.
1088 if (memcmp(RuleIdentifier.data()+1, "r_and_xor_to_xor_or", 19) != 0)
1089 break;
1090 return 221; // "or_and_xor_to_xor_or"
1091 case 'r': // 2 strings to match.
1092 if (memcmp(RuleIdentifier.data()+1, "edu", 3) != 0)
1093 break;
1094 switch (RuleIdentifier[4]) {
1095 default: break;
1096 case 'c': // 1 string to match.
1097 if (memcmp(RuleIdentifier.data()+5, "e_shl_of_extend", 15) != 0)
1098 break;
1099 return 128; // "reduce_shl_of_extend"
1100 case 'n': // 1 string to match.
1101 if (memcmp(RuleIdentifier.data()+5, "dant_sext_inreg", 15) != 0)
1102 break;
1103 return 137; // "redundant_sext_inreg"
1104 }
1105 break;
1106 case 'u': // 2 strings to match.
1107 if (RuleIdentifier[1] != 'n')
1108 break;
1109 switch (RuleIdentifier[2]) {
1110 default: break;
1111 case 'a': // 1 string to match.
1112 if (memcmp(RuleIdentifier.data()+3, "ry_undef_to_undef", 17) != 0)
1113 break;
1114 return 83; // "unary_undef_to_undef"
1115 case 'm': // 1 string to match.
1116 if (memcmp(RuleIdentifier.data()+3, "erge_zext_to_zext", 17) != 0)
1117 break;
1118 return 239; // "unmerge_zext_to_zext"
1119 }
1120 break;
1121 }
1122 break;
1123 case 21: // 20 strings to match.
1124 switch (RuleIdentifier[0]) {
1125 default: break;
1126 case 'a': // 1 string to match.
1127 if (memcmp(RuleIdentifier.data()+1, "nd_xor_or_to_xor_and", 20) != 0)
1128 break;
1129 return 223; // "and_xor_or_to_xor_and"
1130 case 'c': // 6 strings to match.
1131 if (RuleIdentifier[1] != 'o')
1132 break;
1133 switch (RuleIdentifier[2]) {
1134 default: break;
1135 case 'm': // 4 strings to match.
1136 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1137 break;
1138 switch (RuleIdentifier[8]) {
1139 default: break;
1140 case 'b': // 1 string to match.
1141 if (memcmp(RuleIdentifier.data()+9, "uild_unmerge", 12) != 0)
1142 break;
1143 return 242; // "combine_build_unmerge"
1144 case 'c': // 1 string to match.
1145 if (memcmp(RuleIdentifier.data()+9, "oncat_vector", 12) != 0)
1146 break;
1147 return 225; // "combine_concat_vector"
1148 case 'm': // 2 strings to match.
1149 if (memcmp(RuleIdentifier.data()+9, "em", 2) != 0)
1150 break;
1151 switch (RuleIdentifier[11]) {
1152 default: break;
1153 case 'c': // 1 string to match.
1154 if (memcmp(RuleIdentifier.data()+12, "py_inline", 9) != 0)
1155 break;
1156 return 277; // "combine_memcpy_inline"
1157 case 's': // 1 string to match.
1158 if (memcmp(RuleIdentifier.data()+12, "et_inline", 9) != 0)
1159 break;
1160 return 278; // "combine_memset_inline"
1161 }
1162 break;
1163 }
1164 break;
1165 case 'n': // 2 strings to match.
1166 if (memcmp(RuleIdentifier.data()+3, "stant_fold_", 11) != 0)
1167 break;
1168 switch (RuleIdentifier[14]) {
1169 default: break;
1170 case 'c': // 1 string to match.
1171 if (memcmp(RuleIdentifier.data()+15, "ast_op", 6) != 0)
1172 break;
1173 return 190; // "constant_fold_cast_op"
1174 case 'f': // 1 string to match.
1175 if (memcmp(RuleIdentifier.data()+15, "ptrunc", 6) != 0)
1176 break;
1177 return 149; // "constant_fold_fptrunc"
1178 }
1179 break;
1180 }
1181 break;
1182 case 'e': // 1 string to match.
1183 if (memcmp(RuleIdentifier.data()+1, "xt_addv_to_udot_addv", 20) != 0)
1184 break;
1185 return 268; // "ext_addv_to_udot_addv"
1186 case 'f': // 1 string to match.
1187 if (memcmp(RuleIdentifier.data()+1, "div_repeated_divison", 20) != 0)
1188 break;
1189 return 212; // "fdiv_repeated_divison"
1190 case 'i': // 1 string to match.
1191 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_elt_oob", 20) != 0)
1192 break;
1193 return 30; // "insert_vector_elt_oob"
1194 case 'l': // 1 string to match.
1195 if (memcmp(RuleIdentifier.data()+1, "shr_of_trunc_of_lshr", 20) != 0)
1196 break;
1197 return 249; // "lshr_of_trunc_of_lshr"
1198 case 'p': // 6 strings to match.
1199 if (memcmp(RuleIdentifier.data()+1, "ush_", 4) != 0)
1200 break;
1201 switch (RuleIdentifier[5]) {
1202 default: break;
1203 case 'a': // 2 strings to match.
1204 if (memcmp(RuleIdentifier.data()+6, "dd_through_", 11) != 0)
1205 break;
1206 switch (RuleIdentifier[17]) {
1207 default: break;
1208 case 's': // 1 string to match.
1209 if (memcmp(RuleIdentifier.data()+18, "ext", 3) != 0)
1210 break;
1211 return 274; // "push_add_through_sext"
1212 case 'z': // 1 string to match.
1213 if (memcmp(RuleIdentifier.data()+18, "ext", 3) != 0)
1214 break;
1215 return 271; // "push_add_through_zext"
1216 }
1217 break;
1218 case 'm': // 2 strings to match.
1219 if (memcmp(RuleIdentifier.data()+6, "ul_through_", 11) != 0)
1220 break;
1221 switch (RuleIdentifier[17]) {
1222 default: break;
1223 case 's': // 1 string to match.
1224 if (memcmp(RuleIdentifier.data()+18, "ext", 3) != 0)
1225 break;
1226 return 275; // "push_mul_through_sext"
1227 case 'z': // 1 string to match.
1228 if (memcmp(RuleIdentifier.data()+18, "ext", 3) != 0)
1229 break;
1230 return 272; // "push_mul_through_zext"
1231 }
1232 break;
1233 case 's': // 2 strings to match.
1234 if (memcmp(RuleIdentifier.data()+6, "ub_through_", 11) != 0)
1235 break;
1236 switch (RuleIdentifier[17]) {
1237 default: break;
1238 case 's': // 1 string to match.
1239 if (memcmp(RuleIdentifier.data()+18, "ext", 3) != 0)
1240 break;
1241 return 273; // "push_sub_through_sext"
1242 case 'z': // 1 string to match.
1243 if (memcmp(RuleIdentifier.data()+18, "ext", 3) != 0)
1244 break;
1245 return 270; // "push_sub_through_zext"
1246 }
1247 break;
1248 }
1249 break;
1250 case 'r': // 1 string to match.
1251 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
1252 break;
1253 return 100; // "right_identity_one_fp"
1254 case 'u': // 2 strings to match.
1255 if (RuleIdentifier[1] != 'n')
1256 break;
1257 switch (RuleIdentifier[2]) {
1258 default: break;
1259 case 'd': // 1 string to match.
1260 if (memcmp(RuleIdentifier.data()+3, "ef_to_negative_one", 18) != 0)
1261 break;
1262 return 79; // "undef_to_negative_one"
1263 case 'm': // 1 string to match.
1264 if (memcmp(RuleIdentifier.data()+3, "erge_dead_to_trunc", 18) != 0)
1265 break;
1266 return 238; // "unmerge_dead_to_trunc"
1267 }
1268 break;
1269 }
1270 break;
1271 case 22: // 14 strings to match.
1272 switch (RuleIdentifier[0]) {
1273 default: break;
1274 case 'c': // 3 strings to match.
1275 if (RuleIdentifier[1] != 'o')
1276 break;
1277 switch (RuleIdentifier[2]) {
1278 default: break;
1279 case 'm': // 2 strings to match.
1280 if (memcmp(RuleIdentifier.data()+3, "bine_shuffle_", 13) != 0)
1281 break;
1282 switch (RuleIdentifier[16]) {
1283 default: break;
1284 case 'c': // 1 string to match.
1285 if (memcmp(RuleIdentifier.data()+17, "oncat", 5) != 0)
1286 break;
1287 return 229; // "combine_shuffle_concat"
1288 case 'v': // 1 string to match.
1289 if (memcmp(RuleIdentifier.data()+17, "ector", 5) != 0)
1290 break;
1291 return 265; // "combine_shuffle_vector"
1292 }
1293 break;
1294 case 'n': // 1 string to match.
1295 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fp_binop", 19) != 0)
1296 break;
1297 return 188; // "constant_fold_fp_binop"
1298 }
1299 break;
1300 case 'f': // 4 strings to match.
1301 switch (RuleIdentifier[1]) {
1302 default: break;
1303 case 'o': // 1 string to match.
1304 if (memcmp(RuleIdentifier.data()+2, "ld_binop_into_select", 20) != 0)
1305 break;
1306 return 204; // "fold_binop_into_select"
1307 case 'u': // 3 strings to match.
1308 if (memcmp(RuleIdentifier.data()+2, "nnel_shift_", 11) != 0)
1309 break;
1310 switch (RuleIdentifier[13]) {
1311 default: break;
1312 case 'l': // 1 string to match.
1313 if (memcmp(RuleIdentifier.data()+14, "eft_zero", 8) != 0)
1314 break;
1315 return 176; // "funnel_shift_left_zero"
1316 case 'o': // 1 string to match.
1317 if (memcmp(RuleIdentifier.data()+14, "vershift", 8) != 0)
1318 break;
1319 return 177; // "funnel_shift_overshift"
1320 case 't': // 1 string to match.
1321 if (memcmp(RuleIdentifier.data()+14, "o_rotate", 8) != 0)
1322 break;
1323 return 174; // "funnel_shift_to_rotate"
1324 }
1325 break;
1326 }
1327 break;
1328 case 'i': // 1 string to match.
1329 if (memcmp(RuleIdentifier.data()+1, "cmp_to_lhs_known_bits", 21) != 0)
1330 break;
1331 return 121; // "icmp_to_lhs_known_bits"
1332 case 'm': // 1 string to match.
1333 if (memcmp(RuleIdentifier.data()+1, "atch_subo_no_overflow", 21) != 0)
1334 break;
1335 return 244; // "match_subo_no_overflow"
1336 case 'p': // 1 string to match.
1337 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_any_op", 21) != 0)
1338 break;
1339 return 84; // "propagate_undef_any_op"
1340 case 'r': // 2 strings to match.
1341 switch (RuleIdentifier[1]) {
1342 default: break;
1343 case 'e': // 1 string to match.
1344 if (memcmp(RuleIdentifier.data()+2, "dundant_neg_operands", 20) != 0)
1345 break;
1346 return 194; // "redundant_neg_operands"
1347 case 'i': // 1 string to match.
1348 if (memcmp(RuleIdentifier.data()+2, "ght_identity_one_int", 20) != 0)
1349 break;
1350 return 99; // "right_identity_one_int"
1351 }
1352 break;
1353 case 's': // 1 string to match.
1354 if (memcmp(RuleIdentifier.data()+1, "hl_ashr_to_sext_inreg", 21) != 0)
1355 break;
1356 return 125; // "shl_ashr_to_sext_inreg"
1357 case 't': // 1 string to match.
1358 if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold", 21) != 0)
1359 break;
1360 return 103; // "trunc_buildvector_fold"
1361 }
1362 break;
1363 case 23: // 6 strings to match.
1364 switch (RuleIdentifier[0]) {
1365 default: break;
1366 case 'b': // 1 string to match.
1367 if (memcmp(RuleIdentifier.data()+1, "uildvector_of_truncate", 22) != 0)
1368 break;
1369 return 63; // "buildvector_of_truncate"
1370 case 'f': // 1 string to match.
1371 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_right_zero", 22) != 0)
1372 break;
1373 return 175; // "funnel_shift_right_zero"
1374 case 'i': // 2 strings to match.
1375 if (memcmp(RuleIdentifier.data()+1, "tof_const_zero_fold_", 20) != 0)
1376 break;
1377 switch (RuleIdentifier[21]) {
1378 default: break;
1379 case 's': // 1 string to match.
1380 if (RuleIdentifier[22] != 'i')
1381 break;
1382 return 158; // "itof_const_zero_fold_si"
1383 case 'u': // 1 string to match.
1384 if (RuleIdentifier[22] != 'i')
1385 break;
1386 return 159; // "itof_const_zero_fold_ui"
1387 }
1388 break;
1389 case 'p': // 1 string to match.
1390 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_all_ops", 22) != 0)
1391 break;
1392 return 85; // "propagate_undef_all_ops"
1393 case 't': // 1 string to match.
1394 if (memcmp(RuleIdentifier.data()+1, "runcusatu_to_fptouisat", 22) != 0)
1395 break;
1396 return 248; // "truncusatu_to_fptouisat"
1397 }
1398 break;
1399 case 24: // 8 strings to match.
1400 switch (RuleIdentifier[0]) {
1401 default: break;
1402 case 'b': // 1 string to match.
1403 if (memcmp(RuleIdentifier.data()+1, "inop_left_undef_to_zero", 23) != 0)
1404 break;
1405 return 80; // "binop_left_undef_to_zero"
1406 case 'c': // 2 strings to match.
1407 switch (RuleIdentifier[1]) {
1408 default: break;
1409 case 'o': // 1 string to match.
1410 if (memcmp(RuleIdentifier.data()+2, "nstant_fold_fnearbyint", 22) != 0)
1411 break;
1412 return 157; // "constant_fold_fnearbyint"
1413 case 't': // 1 string to match.
1414 if (memcmp(RuleIdentifier.data()+2, "lz_zero_poison_to_ctls", 22) != 0)
1415 break;
1416 return 251; // "ctlz_zero_poison_to_ctls"
1417 }
1418 break;
1419 case 'm': // 1 string to match.
1420 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element", 23) != 0)
1421 break;
1422 return 29; // "match_extract_of_element"
1423 case 'n': // 1 string to match.
1424 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_feeding_and", 23) != 0)
1425 break;
1426 return 129; // "narrow_binop_feeding_and"
1427 case 's': // 2 strings to match.
1428 if (memcmp(RuleIdentifier.data()+1, "ext_inreg_", 10) != 0)
1429 break;
1430 switch (RuleIdentifier[11]) {
1431 default: break;
1432 case 'o': // 1 string to match.
1433 if (memcmp(RuleIdentifier.data()+12, "f_sext_inreg", 12) != 0)
1434 break;
1435 return 59; // "sext_inreg_of_sext_inreg"
1436 case 't': // 1 string to match.
1437 if (memcmp(RuleIdentifier.data()+12, "o_zext_inreg", 12) != 0)
1438 break;
1439 return 141; // "sext_inreg_to_zext_inreg"
1440 }
1441 break;
1442 case 'x': // 1 string to match.
1443 if (memcmp(RuleIdentifier.data()+1, "or_of_and_with_same_reg", 23) != 0)
1444 break;
1445 return 167; // "xor_of_and_with_same_reg"
1446 }
1447 break;
1448 case 25: // 7 strings to match.
1449 switch (RuleIdentifier[0]) {
1450 default: break;
1451 case 'b': // 3 strings to match.
1452 switch (RuleIdentifier[1]) {
1453 default: break;
1454 case 'i': // 2 strings to match.
1455 if (memcmp(RuleIdentifier.data()+2, "tfield_extract_from_", 20) != 0)
1456 break;
1457 switch (RuleIdentifier[22]) {
1458 default: break;
1459 case 'a': // 1 string to match.
1460 if (memcmp(RuleIdentifier.data()+23, "nd", 2) != 0)
1461 break;
1462 return 184; // "bitfield_extract_from_and"
1463 case 's': // 1 string to match.
1464 if (memcmp(RuleIdentifier.data()+23, "hr", 2) != 0)
1465 break;
1466 return 185; // "bitfield_extract_from_shr"
1467 }
1468 break;
1469 case 'u': // 1 string to match.
1470 if (memcmp(RuleIdentifier.data()+2, "ildvector_identity_fold", 23) != 0)
1471 break;
1472 return 102; // "buildvector_identity_fold"
1473 }
1474 break;
1475 case 'c': // 1 string to match.
1476 if (memcmp(RuleIdentifier.data()+1, "ombine_shuffle_undef_rhs", 24) != 0)
1477 break;
1478 return 230; // "combine_shuffle_undef_rhs"
1479 case 'e': // 1 string to match.
1480 if (memcmp(RuleIdentifier.data()+1, "xtract_vec_elt_build_vec", 24) != 0)
1481 break;
1482 return 72; // "extract_vec_elt_build_vec"
1483 case 'n': // 1 string to match.
1484 if (memcmp(RuleIdentifier.data()+1, "eg_and_one_to_sext_inreg", 24) != 0)
1485 break;
1486 return 126; // "neg_and_one_to_sext_inreg"
1487 case 'r': // 1 string to match.
1488 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_one_fp", 24) != 0)
1489 break;
1490 return 110; // "right_identity_neg_one_fp"
1491 }
1492 break;
1493 case 26: // 6 strings to match.
1494 switch (RuleIdentifier[0]) {
1495 default: break;
1496 case 'b': // 2 strings to match.
1497 if (RuleIdentifier[1] != 'i')
1498 break;
1499 switch (RuleIdentifier[2]) {
1500 default: break;
1501 case 'n': // 1 string to match.
1502 if (memcmp(RuleIdentifier.data()+3, "op_right_undef_to_undef", 23) != 0)
1503 break;
1504 return 81; // "binop_right_undef_to_undef"
1505 case 't': // 1 string to match.
1506 if (memcmp(RuleIdentifier.data()+3, "cast_bitcast_to_bitcast", 23) != 0)
1507 break;
1508 return 106; // "bitcast_bitcast_to_bitcast"
1509 }
1510 break;
1511 case 'c': // 2 strings to match.
1512 if (RuleIdentifier[1] != 'o')
1513 break;
1514 switch (RuleIdentifier[2]) {
1515 default: break;
1516 case 'm': // 1 string to match.
1517 if (memcmp(RuleIdentifier.data()+3, "mute_fp_constant_to_rhs", 23) != 0)
1518 break;
1519 return 217; // "commute_fp_constant_to_rhs"
1520 case 'n': // 1 string to match.
1521 if (memcmp(RuleIdentifier.data()+3, "stant_fold_unary_int_op", 23) != 0)
1522 break;
1523 return 191; // "constant_fold_unary_int_op"
1524 }
1525 break;
1526 case 'f': // 1 string to match.
1527 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_from_or_shift", 25) != 0)
1528 break;
1529 return 173; // "funnel_shift_from_or_shift"
1530 case 'r': // 1 string to match.
1531 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp", 25) != 0)
1532 break;
1533 return 108; // "right_identity_neg_zero_fp"
1534 }
1535 break;
1536 case 27: // 6 strings to match.
1537 switch (RuleIdentifier[0]) {
1538 default: break;
1539 case 'c': // 2 strings to match.
1540 if (memcmp(RuleIdentifier.data()+1, "om", 2) != 0)
1541 break;
1542 switch (RuleIdentifier[3]) {
1543 default: break;
1544 case 'b': // 1 string to match.
1545 if (memcmp(RuleIdentifier.data()+4, "ine_use_vector_truncate", 23) != 0)
1546 break;
1547 return 232; // "combine_use_vector_truncate"
1548 case 'm': // 1 string to match.
1549 if (memcmp(RuleIdentifier.data()+4, "ute_int_constant_to_rhs", 23) != 0)
1550 break;
1551 return 216; // "commute_int_constant_to_rhs"
1552 }
1553 break;
1554 case 'd': // 1 string to match.
1555 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_or_combine", 26) != 0)
1556 break;
1557 return 123; // "double_icmp_zero_or_combine"
1558 case 'r': // 1 string to match.
1559 if (memcmp(RuleIdentifier.data()+1, "edundant_binop_in_equality", 26) != 0)
1560 break;
1561 return 124; // "redundant_binop_in_equality"
1562 case 't': // 1 string to match.
1563 if (memcmp(RuleIdentifier.data()+1, "runc_lshr_buildvector_fold", 26) != 0)
1564 break;
1565 return 104; // "trunc_lshr_buildvector_fold"
1566 case 'u': // 1 string to match.
1567 if (memcmp(RuleIdentifier.data()+1, "nmerge_anyext_build_vector", 26) != 0)
1568 break;
1569 return 233; // "unmerge_anyext_build_vector"
1570 }
1571 break;
1572 case 28: // 4 strings to match.
1573 switch (RuleIdentifier[0]) {
1574 default: break;
1575 case 'd': // 1 string to match.
1576 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_and_combine", 27) != 0)
1577 break;
1578 return 122; // "double_icmp_zero_and_combine"
1579 case 'o': // 1 string to match.
1580 if (memcmp(RuleIdentifier.data()+1, "pt_brcond_by_inverting_cond", 27) != 0)
1581 break;
1582 return 144; // "opt_brcond_by_inverting_cond"
1583 case 'p': // 1 string to match.
1584 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_shuffle_mask", 27) != 0)
1585 break;
1586 return 86; // "propagate_undef_shuffle_mask"
1587 case 's': // 1 string to match.
1588 if (memcmp(RuleIdentifier.data()+1, "hift_of_shifted_logic_chain", 27) != 0)
1589 break;
1590 return 170; // "shift_of_shifted_logic_chain"
1591 }
1592 break;
1593 case 29: // 6 strings to match.
1594 switch (RuleIdentifier[0]) {
1595 default: break;
1596 case 'b': // 1 string to match.
1597 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_shr_and", 28) != 0)
1598 break;
1599 return 186; // "bitfield_extract_from_shr_and"
1600 case 'c': // 4 strings to match.
1601 if (RuleIdentifier[1] != 'o')
1602 break;
1603 switch (RuleIdentifier[2]) {
1604 default: break;
1605 case 'm': // 2 strings to match.
1606 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1607 break;
1608 switch (RuleIdentifier[8]) {
1609 default: break;
1610 case 'e': // 1 string to match.
1611 if (memcmp(RuleIdentifier.data()+9, "xtracted_vector_load", 20) != 0)
1612 break;
1613 return 76; // "combine_extracted_vector_load"
1614 case 's': // 1 string to match.
1615 if (memcmp(RuleIdentifier.data()+9, "huffle_disjoint_mask", 20) != 0)
1616 break;
1617 return 231; // "combine_shuffle_disjoint_mask"
1618 }
1619 break;
1620 case 'n': // 2 strings to match.
1621 if (memcmp(RuleIdentifier.data()+3, "stant_fold_intrinsic_", 21) != 0)
1622 break;
1623 switch (RuleIdentifier[24]) {
1624 default: break;
1625 case 'r': // 1 string to match.
1626 if (memcmp(RuleIdentifier.data()+25, "ound", 4) != 0)
1627 break;
1628 return 154; // "constant_fold_intrinsic_round"
1629 case 't': // 1 string to match.
1630 if (memcmp(RuleIdentifier.data()+25, "runc", 4) != 0)
1631 break;
1632 return 153; // "constant_fold_intrinsic_trunc"
1633 }
1634 break;
1635 }
1636 break;
1637 case 'i': // 1 string to match.
1638 if (memcmp(RuleIdentifier.data()+1, "cmp_to_true_false_known_bits", 28) != 0)
1639 break;
1640 return 120; // "icmp_to_true_false_known_bits"
1641 }
1642 break;
1643 case 30: // 2 strings to match.
1644 switch (RuleIdentifier[0]) {
1645 default: break;
1646 case 'f': // 1 string to match.
1647 if (memcmp(RuleIdentifier.data()+1, "reeze_of_non_undef_non_poison", 29) != 0)
1648 break;
1649 return 47; // "freeze_of_non_undef_non_poison"
1650 case 'r': // 1 string to match.
1651 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp_nsz", 29) != 0)
1652 break;
1653 return 109; // "right_identity_neg_zero_fp_nsz"
1654 }
1655 break;
1656 case 31: // 2 strings to match.
1657 if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_", 22) != 0)
1658 break;
1659 switch (RuleIdentifier[22]) {
1660 default: break;
1661 case 'e': // 1 string to match.
1662 if (memcmp(RuleIdentifier.data()+23, "lt_undef", 8) != 0)
1663 break;
1664 return 28; // "insert_vector_element_elt_undef"
1665 case 'i': // 1 string to match.
1666 if (memcmp(RuleIdentifier.data()+23, "dx_undef", 8) != 0)
1667 break;
1668 return 27; // "insert_vector_element_idx_undef"
1669 }
1670 break;
1671 case 32: // 4 strings to match.
1672 switch (RuleIdentifier[0]) {
1673 default: break;
1674 case 'b': // 1 string to match.
1675 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_sext_inreg", 31) != 0)
1676 break;
1677 return 183; // "bitfield_extract_from_sext_inreg"
1678 case 'c': // 2 strings to match.
1679 if (memcmp(RuleIdentifier.data()+1, "ombine_f", 8) != 0)
1680 break;
1681 switch (RuleIdentifier[9]) {
1682 default: break;
1683 case 'a': // 1 string to match.
1684 if (memcmp(RuleIdentifier.data()+10, "dd_fmul_to_fmad_or_fma", 22) != 0)
1685 break;
1686 return 196; // "combine_fadd_fmul_to_fmad_or_fma"
1687 case 's': // 1 string to match.
1688 if (memcmp(RuleIdentifier.data()+10, "ub_fmul_to_fmad_or_fma", 22) != 0)
1689 break;
1690 return 200; // "combine_fsub_fmul_to_fmad_or_fma"
1691 }
1692 break;
1693 case 'e': // 1 string to match.
1694 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_not_const", 31) != 0)
1695 break;
1696 return 31; // "extract_vector_element_not_const"
1697 }
1698 break;
1699 case 33: // 1 string to match.
1700 if (memcmp(RuleIdentifier.data()+0, "constant_fold_intrinsic_roundeven", 33) != 0)
1701 break;
1702 return 155; // "constant_fold_intrinsic_roundeven"
1703 case 34: // 1 string to match.
1704 if (memcmp(RuleIdentifier.data()+0, "extract_all_elts_from_build_vector", 34) != 0)
1705 break;
1706 return 73; // "extract_all_elts_from_build_vector"
1707 case 35: // 1 string to match.
1708 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_build_vector", 35) != 0)
1709 break;
1710 return 33; // "extract_vector_element_build_vector"
1711 case 36: // 4 strings to match.
1712 switch (RuleIdentifier[0]) {
1713 default: break;
1714 case 'c': // 2 strings to match.
1715 if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
1716 break;
1717 switch (RuleIdentifier[8]) {
1718 default: break;
1719 case 'f': // 1 string to match.
1720 if (memcmp(RuleIdentifier.data()+9, "add_fma_fmul_to_fmad_or_fma", 27) != 0)
1721 break;
1722 return 198; // "combine_fadd_fma_fmul_to_fmad_or_fma"
1723 case 'i': // 1 string to match.
1724 if (memcmp(RuleIdentifier.data()+9, "nsert_vec_elts_build_vector", 27) != 0)
1725 break;
1726 return 71; // "combine_insert_vec_elts_build_vector"
1727 }
1728 break;
1729 case 'i': // 1 string to match.
1730 if (memcmp(RuleIdentifier.data()+1, "nsert_extract_vec_elt_out_of_bounds", 35) != 0)
1731 break;
1732 return 88; // "insert_extract_vec_elt_out_of_bounds"
1733 case 'm': // 1 string to match.
1734 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_index", 35) != 0)
1735 break;
1736 return 26; // "match_extract_of_element_undef_index"
1737 }
1738 break;
1739 case 37: // 4 strings to match.
1740 switch (RuleIdentifier[0]) {
1741 default: break;
1742 case 'c': // 1 string to match.
1743 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fneg_fmul_to_fmad_or_fma", 36) != 0)
1744 break;
1745 return 201; // "combine_fsub_fneg_fmul_to_fmad_or_fma"
1746 case 'e': // 1 string to match.
1747 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_shuffle_vector", 36) != 0)
1748 break;
1749 return 41; // "extract_vector_element_shuffle_vector"
1750 case 'h': // 1 string to match.
1751 if (memcmp(RuleIdentifier.data()+1, "oist_logic_op_with_same_opcode_hands", 36) != 0)
1752 break;
1753 return 113; // "hoist_logic_op_with_same_opcode_hands"
1754 case 'm': // 1 string to match.
1755 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_vector", 36) != 0)
1756 break;
1757 return 25; // "match_extract_of_element_undef_vector"
1758 }
1759 break;
1760 case 38: // 2 strings to match.
1761 if (memcmp(RuleIdentifier.data()+0, "combine_f", 9) != 0)
1762 break;
1763 switch (RuleIdentifier[9]) {
1764 default: break;
1765 case 'a': // 1 string to match.
1766 if (memcmp(RuleIdentifier.data()+10, "dd_fpext_fmul_to_fmad_or_fma", 28) != 0)
1767 break;
1768 return 197; // "combine_fadd_fpext_fmul_to_fmad_or_fma"
1769 case 's': // 1 string to match.
1770 if (memcmp(RuleIdentifier.data()+10, "ub_fpext_fmul_to_fmad_or_fma", 28) != 0)
1771 break;
1772 return 202; // "combine_fsub_fpext_fmul_to_fmad_or_fma"
1773 }
1774 break;
1775 case 40: // 1 string to match.
1776 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_different_indices", 40) != 0)
1777 break;
1778 return 32; // "extract_vector_element_different_indices"
1779 case 42: // 9 strings to match.
1780 switch (RuleIdentifier[0]) {
1781 default: break;
1782 case 'c': // 1 string to match.
1783 if (memcmp(RuleIdentifier.data()+1, "ombine_fadd_fpext_fma_fmul_to_fmad_or_fma", 41) != 0)
1784 break;
1785 return 199; // "combine_fadd_fpext_fma_fmul_to_fmad_or_fma"
1786 case 'e': // 7 strings to match.
1787 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_build_vector_trunc", 40) != 0)
1788 break;
1789 switch (RuleIdentifier[41]) {
1790 default: break;
1791 case '2': // 1 string to match.
1792 return 34; // "extract_vector_element_build_vector_trunc2"
1793 case '3': // 1 string to match.
1794 return 35; // "extract_vector_element_build_vector_trunc3"
1795 case '4': // 1 string to match.
1796 return 36; // "extract_vector_element_build_vector_trunc4"
1797 case '5': // 1 string to match.
1798 return 37; // "extract_vector_element_build_vector_trunc5"
1799 case '6': // 1 string to match.
1800 return 38; // "extract_vector_element_build_vector_trunc6"
1801 case '7': // 1 string to match.
1802 return 39; // "extract_vector_element_build_vector_trunc7"
1803 case '8': // 1 string to match.
1804 return 40; // "extract_vector_element_build_vector_trunc8"
1805 }
1806 break;
1807 case 'f': // 1 string to match.
1808 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_left", 41) != 0)
1809 break;
1810 return 178; // "funnel_shift_or_shift_to_funnel_shift_left"
1811 }
1812 break;
1813 case 43: // 2 strings to match.
1814 switch (RuleIdentifier[0]) {
1815 default: break;
1816 case 'c': // 1 string to match.
1817 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fpext_fneg_fmul_to_fmad_or_fma", 42) != 0)
1818 break;
1819 return 203; // "combine_fsub_fpext_fneg_fmul_to_fmad_or_fma"
1820 case 'f': // 1 string to match.
1821 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_right", 42) != 0)
1822 break;
1823 return 179; // "funnel_shift_or_shift_to_funnel_shift_right"
1824 }
1825 break;
1826 case 44: // 1 string to match.
1827 if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_extract_vector_element", 44) != 0)
1828 break;
1829 return 42; // "insert_vector_element_extract_vector_element"
1830 case 46: // 1 string to match.
1831 if (memcmp(RuleIdentifier.data()+0, "push_freeze_to_prevent_poison_from_propagating", 46) != 0)
1832 break;
1833 return 48; // "push_freeze_to_prevent_poison_from_propagating"
1834 }
1835#endif // ifndef NDEBUG
1836
1837 return std::nullopt;
1838}
1839static std::optional<std::pair<uint64_t, uint64_t>> getRuleRangeForIdentifier(StringRef RuleIdentifier) {
1840 std::pair<StringRef, StringRef> RangePair = RuleIdentifier.split('-');
1841 if (!RangePair.second.empty()) {
1842 const auto First = getRuleIdxForIdentifier(RangePair.first);
1843 const auto Last = getRuleIdxForIdentifier(RangePair.second);
1844 if (!First || !Last)
1845 return std::nullopt;
1846 if (First >= Last)
1847 report_fatal_error("Beginning of range should be before end of range");
1848 return {{*First, *Last + 1}};
1849 }
1850 if (RangePair.first == "*") {
1851 return {{0, 283}};
1852 }
1853 const auto I = getRuleIdxForIdentifier(RangePair.first);
1854 if (!I)
1855 return std::nullopt;
1856 return {{*I, *I + 1}};
1857}
1858
1859bool AArch64PreLegalizerCombinerImplRuleConfig::setRuleEnabled(StringRef RuleIdentifier) {
1860 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1861 if (!MaybeRange)
1862 return false;
1863 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1864 DisabledRules.reset(I);
1865 return true;
1866}
1867
1868bool AArch64PreLegalizerCombinerImplRuleConfig::setRuleDisabled(StringRef RuleIdentifier) {
1869 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1870 if (!MaybeRange)
1871 return false;
1872 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1873 DisabledRules.set(I);
1874 return true;
1875}
1876
1877static std::vector<std::string> AArch64PreLegalizerCombinerOption;
1878static cl::list<std::string> AArch64PreLegalizerCombinerDisableOption(
1879 "aarch64prelegalizercombiner-disable-rule",
1880 cl::desc("Disable one or more combiner rules temporarily in the AArch64PreLegalizerCombiner pass"),
1881 cl::CommaSeparated,
1882 cl::Hidden,
1883 cl::cat(GICombinerOptionCategory),
1884 cl::callback([](const std::string &Str) {
1885 AArch64PreLegalizerCombinerOption.push_back(Str);
1886 }));
1887static cl::list<std::string> AArch64PreLegalizerCombinerOnlyEnableOption(
1888 "aarch64prelegalizercombiner-only-enable-rule",
1889 cl::desc("Disable all rules in the AArch64PreLegalizerCombiner pass then re-enable the specified ones"),
1890 cl::Hidden,
1891 cl::cat(GICombinerOptionCategory),
1892 cl::callback([](const std::string &CommaSeparatedArg) {
1893 StringRef Str = CommaSeparatedArg;
1894 AArch64PreLegalizerCombinerOption.push_back("*");
1895 do {
1896 auto X = Str.split(",");
1897 AArch64PreLegalizerCombinerOption.push_back(("!" + X.first).str());
1898 Str = X.second;
1899 } while (!Str.empty());
1900 }));
1901
1902
1903bool AArch64PreLegalizerCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
1904 return !DisabledRules.test(RuleID);
1905}
1906bool AArch64PreLegalizerCombinerImplRuleConfig::parseCommandLineOption() {
1907 for (StringRef Identifier : AArch64PreLegalizerCombinerOption) {
1908 bool Enabled = Identifier.consume_front("!");
1909 if (Enabled && !setRuleEnabled(Identifier))
1910 return false;
1911 if (!Enabled && !setRuleDisabled(Identifier))
1912 return false;
1913 }
1914 return true;
1915}
1916
1917
1918#endif // GET_GICOMBINER_TYPES
1919
1920#ifdef GET_GICOMBINER_TYPES
1921
1922const unsigned MAX_SUBTARGET_PREDICATES = 1;
1923using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
1924
1925#endif // GET_GICOMBINER_TYPES
1926
1927#ifdef GET_GICOMBINER_CLASS_MEMBERS
1928
1929PredicateBitset AvailableModuleFeatures;
1930mutable PredicateBitset AvailableFunctionFeatures;
1931PredicateBitset getAvailableFeatures() const {
1932 return AvailableModuleFeatures | AvailableFunctionFeatures;
1933}
1934PredicateBitset
1935computeAvailableModuleFeatures(const AArch64Subtarget *Subtarget) const;
1936PredicateBitset
1937computeAvailableFunctionFeatures(const AArch64Subtarget *Subtarget,
1938 const MachineFunction *MF) const;
1939void setupGeneratedPerFunctionState(MachineFunction &MF) override;
1940
1941#endif // GET_GICOMBINER_CLASS_MEMBERS
1942
1943#ifdef GET_GICOMBINER_CLASS_MEMBERS
1944
1945 mutable MatcherState State;
1946 typedef ComplexRendererFns(AArch64PreLegalizerCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
1947 typedef void(AArch64PreLegalizerCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
1948 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
1949 static AArch64PreLegalizerCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
1950 static AArch64PreLegalizerCombinerImpl::CustomRendererFn CustomRenderers[];
1951 bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
1952 bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
1953 bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
1954 const uint8_t *getMatchTable() const override;
1955 bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
1956 bool testMOPredicate_MO(unsigned PredicateID, const MachineOperand &MO, const MatcherState &State) const override;
1957 bool testSimplePredicate(unsigned PredicateID) const override;
1958 bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
1959
1960#endif // GET_GICOMBINER_CLASS_MEMBERS
1961
1962#ifdef GET_GICOMBINER_IMPL
1963
1964// LLT Objects.
1965enum {
1966 GILLT_s1,
1967};
1968const static size_t NumTypeObjects = 1;
1969const static LLT TypeObjects[] = {
1970 LLT::scalar(1),
1971};
1972
1973// Bits for subtarget features that participate in instruction matching.
1974enum SubtargetFeatureBits : uint8_t {
1975 Feature_HasDotProdBit = 0,
1976};
1977
1978PredicateBitset AArch64PreLegalizerCombinerImpl::
1979computeAvailableModuleFeatures(const AArch64Subtarget *Subtarget) const {
1980 PredicateBitset Features{};
1981 if (Subtarget->hasDotProd())
1982 Features.set(Feature_HasDotProdBit);
1983 return Features;
1984}
1985
1986void AArch64PreLegalizerCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) {
1987 AvailableFunctionFeatures = computeAvailableFunctionFeatures((const AArch64Subtarget *)&MF.getSubtarget(), &MF);
1988}
1989PredicateBitset AArch64PreLegalizerCombinerImpl::
1990computeAvailableFunctionFeatures(const AArch64Subtarget *Subtarget, const MachineFunction *MF) const {
1991 PredicateBitset Features{};
1992 return Features;
1993}
1994
1995// Feature bitsets.
1996enum {
1997 GIFBS_Invalid,
1998 GIFBS_HasDotProd,
1999};
2000constexpr static PredicateBitset FeatureBitsets[] {
2001 {}, // GIFBS_Invalid
2002 {Feature_HasDotProdBit, },
2003};
2004
2005// ComplexPattern predicates.
2006enum {
2007 GICP_Invalid,
2008};
2009// See constructor for table contents
2010
2011AArch64PreLegalizerCombinerImpl::ComplexMatcherMemFn
2012AArch64PreLegalizerCombinerImpl::ComplexPredicateFns[] = {
2013 nullptr, // GICP_Invalid
2014};
2015
2016enum {
2017 GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
2018 GICXXPred_MI_Predicate_GICombiner1,
2019 GICXXPred_MI_Predicate_GICombiner2,
2020 GICXXPred_MI_Predicate_GICombiner3,
2021 GICXXPred_MI_Predicate_GICombiner4,
2022 GICXXPred_MI_Predicate_GICombiner5,
2023 GICXXPred_MI_Predicate_GICombiner6,
2024 GICXXPred_MI_Predicate_GICombiner7,
2025 GICXXPred_MI_Predicate_GICombiner8,
2026 GICXXPred_MI_Predicate_GICombiner9,
2027 GICXXPred_MI_Predicate_GICombiner10,
2028 GICXXPred_MI_Predicate_GICombiner11,
2029 GICXXPred_MI_Predicate_GICombiner12,
2030 GICXXPred_MI_Predicate_GICombiner13,
2031 GICXXPred_MI_Predicate_GICombiner14,
2032 GICXXPred_MI_Predicate_GICombiner15,
2033 GICXXPred_MI_Predicate_GICombiner16,
2034 GICXXPred_MI_Predicate_GICombiner17,
2035 GICXXPred_MI_Predicate_GICombiner18,
2036 GICXXPred_MI_Predicate_GICombiner19,
2037 GICXXPred_MI_Predicate_GICombiner20,
2038 GICXXPred_MI_Predicate_GICombiner21,
2039 GICXXPred_MI_Predicate_GICombiner22,
2040 GICXXPred_MI_Predicate_GICombiner23,
2041};
2042bool AArch64PreLegalizerCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
2043 switch (PredicateID) {
2044 case GICXXPred_MI_Predicate_GICombiner0: {
2045 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg());
2046 }
2047 case GICXXPred_MI_Predicate_GICombiner1: {
2048 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg());
2049 }
2050 case GICXXPred_MI_Predicate_GICombiner2: {
2051 return isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI);
2052 }
2053 case GICXXPred_MI_Predicate_GICombiner3: {
2054 return isGuaranteedNotToBeUndefOrPoison(State.MIs[0]->getOperand(1).getReg(), MRI);
2055 }
2056 case GICXXPred_MI_Predicate_GICombiner4: {
2057 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
2058 }
2059 case GICXXPred_MI_Predicate_GICombiner5: {
2060 return MRI.getType(State.MIs[1]->getOperand(1).getReg()) != MRI.getType(State.MIs[0]->getOperand(0).getReg());
2061 }
2062 case GICXXPred_MI_Predicate_GICombiner6: {
2063 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
2064 }
2065 case GICXXPred_MI_Predicate_GICombiner7: {
2066 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 0.0);
2067 }
2068 case GICXXPred_MI_Predicate_GICombiner8: {
2069 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0);
2070 }
2071 case GICXXPred_MI_Predicate_GICombiner9: {
2072 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_EQ &&
2073 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
2074 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
2075 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
2076 }
2077 case GICXXPred_MI_Predicate_GICombiner10: {
2078 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_NE &&
2079 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
2080 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
2081 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
2082 }
2083 case GICXXPred_MI_Predicate_GICombiner11: {
2084 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
2085 Helper.isLegalOrBeforeLegalizer(
2086 {TargetOpcode::G_SEXT_INREG, {MRI.getType(State.MIs[1]->getOperand(1).getReg())}});
2087 }
2088 case GICXXPred_MI_Predicate_GICombiner12: {
2089 return MRI.getType(State.MIs[0]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg()) &&
2090 VT->computeNumSignBits(State.MIs[0]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg()).getScalarSizeInBits();
2091 }
2092 case GICXXPred_MI_Predicate_GICombiner13: {
2093 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_LSHR,
2094 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
2095 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
2096 }
2097 case GICXXPred_MI_Predicate_GICombiner14: {
2098 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_SHL,
2099 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
2100 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
2101 }
2102 case GICXXPred_MI_Predicate_GICombiner15: {
2103 return Helper.matchTruncUSatU(*State.MIs[0], *State.MIs[1]);
2104 }
2105 case GICXXPred_MI_Predicate_GICombiner16: {
2106 return Helper.matchTruncUSatUToFPTOUISat(*State.MIs[0], *State.MIs[1]);
2107 }
2108 case GICXXPred_MI_Predicate_GICombiner17: {
2109 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
2110 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
2111 }
2112 case GICXXPred_MI_Predicate_GICombiner18: {
2113 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
2114 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
2115 }
2116 case GICXXPred_MI_Predicate_GICombiner19: {
2117 return MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(2).getReg()) &&
2118 MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg());
2119 }
2120 case GICXXPred_MI_Predicate_GICombiner20: {
2121 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[2]->getOperand(1).getReg(), State.MIs[3]->getOperand(1).getReg(), TargetOpcode::G_UAVGFLOOR);
2122 }
2123 case GICXXPred_MI_Predicate_GICombiner21: {
2124 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[2]->getOperand(1).getReg(), State.MIs[3]->getOperand(1).getReg(), TargetOpcode::G_SAVGFLOOR);
2125 }
2126 case GICXXPred_MI_Predicate_GICombiner22: {
2127 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[3]->getOperand(1).getReg(), State.MIs[4]->getOperand(1).getReg(), TargetOpcode::G_UAVGCEIL);
2128 }
2129 case GICXXPred_MI_Predicate_GICombiner23: {
2130 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[3]->getOperand(1).getReg(), State.MIs[4]->getOperand(1).getReg(), TargetOpcode::G_SAVGCEIL);
2131 }
2132 }
2133 llvm_unreachable("Unknown predicate");
2134 return false;
2135}
2136bool AArch64PreLegalizerCombinerImpl::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
2137 llvm_unreachable("Unknown predicate");
2138 return false;
2139}
2140bool AArch64PreLegalizerCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
2141 llvm_unreachable("Unknown predicate");
2142 return false;
2143}
2144bool AArch64PreLegalizerCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
2145 llvm_unreachable("Unknown predicate");
2146 return false;
2147}
2148bool AArch64PreLegalizerCombinerImpl::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
2149 llvm_unreachable("Unknown predicate");
2150 return false;
2151}
2152enum {
2153 GICXXPred_Simple_IsRule0Enabled = GICXXPred_Invalid + 1,
2154 GICXXPred_Simple_IsRule1Enabled,
2155 GICXXPred_Simple_IsRule2Enabled,
2156 GICXXPred_Simple_IsRule3Enabled,
2157 GICXXPred_Simple_IsRule4Enabled,
2158 GICXXPred_Simple_IsRule5Enabled,
2159 GICXXPred_Simple_IsRule6Enabled,
2160 GICXXPred_Simple_IsRule7Enabled,
2161 GICXXPred_Simple_IsRule8Enabled,
2162 GICXXPred_Simple_IsRule9Enabled,
2163 GICXXPred_Simple_IsRule10Enabled,
2164 GICXXPred_Simple_IsRule11Enabled,
2165 GICXXPred_Simple_IsRule12Enabled,
2166 GICXXPred_Simple_IsRule13Enabled,
2167 GICXXPred_Simple_IsRule14Enabled,
2168 GICXXPred_Simple_IsRule15Enabled,
2169 GICXXPred_Simple_IsRule16Enabled,
2170 GICXXPred_Simple_IsRule17Enabled,
2171 GICXXPred_Simple_IsRule18Enabled,
2172 GICXXPred_Simple_IsRule19Enabled,
2173 GICXXPred_Simple_IsRule20Enabled,
2174 GICXXPred_Simple_IsRule21Enabled,
2175 GICXXPred_Simple_IsRule22Enabled,
2176 GICXXPred_Simple_IsRule23Enabled,
2177 GICXXPred_Simple_IsRule24Enabled,
2178 GICXXPred_Simple_IsRule25Enabled,
2179 GICXXPred_Simple_IsRule26Enabled,
2180 GICXXPred_Simple_IsRule27Enabled,
2181 GICXXPred_Simple_IsRule28Enabled,
2182 GICXXPred_Simple_IsRule29Enabled,
2183 GICXXPred_Simple_IsRule30Enabled,
2184 GICXXPred_Simple_IsRule31Enabled,
2185 GICXXPred_Simple_IsRule32Enabled,
2186 GICXXPred_Simple_IsRule33Enabled,
2187 GICXXPred_Simple_IsRule34Enabled,
2188 GICXXPred_Simple_IsRule35Enabled,
2189 GICXXPred_Simple_IsRule36Enabled,
2190 GICXXPred_Simple_IsRule37Enabled,
2191 GICXXPred_Simple_IsRule38Enabled,
2192 GICXXPred_Simple_IsRule39Enabled,
2193 GICXXPred_Simple_IsRule40Enabled,
2194 GICXXPred_Simple_IsRule41Enabled,
2195 GICXXPred_Simple_IsRule42Enabled,
2196 GICXXPred_Simple_IsRule43Enabled,
2197 GICXXPred_Simple_IsRule44Enabled,
2198 GICXXPred_Simple_IsRule45Enabled,
2199 GICXXPred_Simple_IsRule46Enabled,
2200 GICXXPred_Simple_IsRule47Enabled,
2201 GICXXPred_Simple_IsRule48Enabled,
2202 GICXXPred_Simple_IsRule49Enabled,
2203 GICXXPred_Simple_IsRule50Enabled,
2204 GICXXPred_Simple_IsRule51Enabled,
2205 GICXXPred_Simple_IsRule52Enabled,
2206 GICXXPred_Simple_IsRule53Enabled,
2207 GICXXPred_Simple_IsRule54Enabled,
2208 GICXXPred_Simple_IsRule55Enabled,
2209 GICXXPred_Simple_IsRule56Enabled,
2210 GICXXPred_Simple_IsRule57Enabled,
2211 GICXXPred_Simple_IsRule58Enabled,
2212 GICXXPred_Simple_IsRule59Enabled,
2213 GICXXPred_Simple_IsRule60Enabled,
2214 GICXXPred_Simple_IsRule61Enabled,
2215 GICXXPred_Simple_IsRule62Enabled,
2216 GICXXPred_Simple_IsRule63Enabled,
2217 GICXXPred_Simple_IsRule64Enabled,
2218 GICXXPred_Simple_IsRule65Enabled,
2219 GICXXPred_Simple_IsRule66Enabled,
2220 GICXXPred_Simple_IsRule67Enabled,
2221 GICXXPred_Simple_IsRule68Enabled,
2222 GICXXPred_Simple_IsRule69Enabled,
2223 GICXXPred_Simple_IsRule70Enabled,
2224 GICXXPred_Simple_IsRule71Enabled,
2225 GICXXPred_Simple_IsRule72Enabled,
2226 GICXXPred_Simple_IsRule73Enabled,
2227 GICXXPred_Simple_IsRule74Enabled,
2228 GICXXPred_Simple_IsRule75Enabled,
2229 GICXXPred_Simple_IsRule76Enabled,
2230 GICXXPred_Simple_IsRule77Enabled,
2231 GICXXPred_Simple_IsRule78Enabled,
2232 GICXXPred_Simple_IsRule79Enabled,
2233 GICXXPred_Simple_IsRule80Enabled,
2234 GICXXPred_Simple_IsRule81Enabled,
2235 GICXXPred_Simple_IsRule82Enabled,
2236 GICXXPred_Simple_IsRule83Enabled,
2237 GICXXPred_Simple_IsRule84Enabled,
2238 GICXXPred_Simple_IsRule85Enabled,
2239 GICXXPred_Simple_IsRule86Enabled,
2240 GICXXPred_Simple_IsRule87Enabled,
2241 GICXXPred_Simple_IsRule88Enabled,
2242 GICXXPred_Simple_IsRule89Enabled,
2243 GICXXPred_Simple_IsRule90Enabled,
2244 GICXXPred_Simple_IsRule91Enabled,
2245 GICXXPred_Simple_IsRule92Enabled,
2246 GICXXPred_Simple_IsRule93Enabled,
2247 GICXXPred_Simple_IsRule94Enabled,
2248 GICXXPred_Simple_IsRule95Enabled,
2249 GICXXPred_Simple_IsRule96Enabled,
2250 GICXXPred_Simple_IsRule97Enabled,
2251 GICXXPred_Simple_IsRule98Enabled,
2252 GICXXPred_Simple_IsRule99Enabled,
2253 GICXXPred_Simple_IsRule100Enabled,
2254 GICXXPred_Simple_IsRule101Enabled,
2255 GICXXPred_Simple_IsRule102Enabled,
2256 GICXXPred_Simple_IsRule103Enabled,
2257 GICXXPred_Simple_IsRule104Enabled,
2258 GICXXPred_Simple_IsRule105Enabled,
2259 GICXXPred_Simple_IsRule106Enabled,
2260 GICXXPred_Simple_IsRule107Enabled,
2261 GICXXPred_Simple_IsRule108Enabled,
2262 GICXXPred_Simple_IsRule109Enabled,
2263 GICXXPred_Simple_IsRule110Enabled,
2264 GICXXPred_Simple_IsRule111Enabled,
2265 GICXXPred_Simple_IsRule112Enabled,
2266 GICXXPred_Simple_IsRule113Enabled,
2267 GICXXPred_Simple_IsRule114Enabled,
2268 GICXXPred_Simple_IsRule115Enabled,
2269 GICXXPred_Simple_IsRule116Enabled,
2270 GICXXPred_Simple_IsRule117Enabled,
2271 GICXXPred_Simple_IsRule118Enabled,
2272 GICXXPred_Simple_IsRule119Enabled,
2273 GICXXPred_Simple_IsRule120Enabled,
2274 GICXXPred_Simple_IsRule121Enabled,
2275 GICXXPred_Simple_IsRule122Enabled,
2276 GICXXPred_Simple_IsRule123Enabled,
2277 GICXXPred_Simple_IsRule124Enabled,
2278 GICXXPred_Simple_IsRule125Enabled,
2279 GICXXPred_Simple_IsRule126Enabled,
2280 GICXXPred_Simple_IsRule127Enabled,
2281 GICXXPred_Simple_IsRule128Enabled,
2282 GICXXPred_Simple_IsRule129Enabled,
2283 GICXXPred_Simple_IsRule130Enabled,
2284 GICXXPred_Simple_IsRule131Enabled,
2285 GICXXPred_Simple_IsRule132Enabled,
2286 GICXXPred_Simple_IsRule133Enabled,
2287 GICXXPred_Simple_IsRule134Enabled,
2288 GICXXPred_Simple_IsRule135Enabled,
2289 GICXXPred_Simple_IsRule136Enabled,
2290 GICXXPred_Simple_IsRule137Enabled,
2291 GICXXPred_Simple_IsRule138Enabled,
2292 GICXXPred_Simple_IsRule139Enabled,
2293 GICXXPred_Simple_IsRule140Enabled,
2294 GICXXPred_Simple_IsRule141Enabled,
2295 GICXXPred_Simple_IsRule142Enabled,
2296 GICXXPred_Simple_IsRule143Enabled,
2297 GICXXPred_Simple_IsRule144Enabled,
2298 GICXXPred_Simple_IsRule145Enabled,
2299 GICXXPred_Simple_IsRule146Enabled,
2300 GICXXPred_Simple_IsRule147Enabled,
2301 GICXXPred_Simple_IsRule148Enabled,
2302 GICXXPred_Simple_IsRule149Enabled,
2303 GICXXPred_Simple_IsRule150Enabled,
2304 GICXXPred_Simple_IsRule151Enabled,
2305 GICXXPred_Simple_IsRule152Enabled,
2306 GICXXPred_Simple_IsRule153Enabled,
2307 GICXXPred_Simple_IsRule154Enabled,
2308 GICXXPred_Simple_IsRule155Enabled,
2309 GICXXPred_Simple_IsRule156Enabled,
2310 GICXXPred_Simple_IsRule157Enabled,
2311 GICXXPred_Simple_IsRule158Enabled,
2312 GICXXPred_Simple_IsRule159Enabled,
2313 GICXXPred_Simple_IsRule160Enabled,
2314 GICXXPred_Simple_IsRule161Enabled,
2315 GICXXPred_Simple_IsRule162Enabled,
2316 GICXXPred_Simple_IsRule163Enabled,
2317 GICXXPred_Simple_IsRule164Enabled,
2318 GICXXPred_Simple_IsRule165Enabled,
2319 GICXXPred_Simple_IsRule166Enabled,
2320 GICXXPred_Simple_IsRule167Enabled,
2321 GICXXPred_Simple_IsRule168Enabled,
2322 GICXXPred_Simple_IsRule169Enabled,
2323 GICXXPred_Simple_IsRule170Enabled,
2324 GICXXPred_Simple_IsRule171Enabled,
2325 GICXXPred_Simple_IsRule172Enabled,
2326 GICXXPred_Simple_IsRule173Enabled,
2327 GICXXPred_Simple_IsRule174Enabled,
2328 GICXXPred_Simple_IsRule175Enabled,
2329 GICXXPred_Simple_IsRule176Enabled,
2330 GICXXPred_Simple_IsRule177Enabled,
2331 GICXXPred_Simple_IsRule178Enabled,
2332 GICXXPred_Simple_IsRule179Enabled,
2333 GICXXPred_Simple_IsRule180Enabled,
2334 GICXXPred_Simple_IsRule181Enabled,
2335 GICXXPred_Simple_IsRule182Enabled,
2336 GICXXPred_Simple_IsRule183Enabled,
2337 GICXXPred_Simple_IsRule184Enabled,
2338 GICXXPred_Simple_IsRule185Enabled,
2339 GICXXPred_Simple_IsRule186Enabled,
2340 GICXXPred_Simple_IsRule187Enabled,
2341 GICXXPred_Simple_IsRule188Enabled,
2342 GICXXPred_Simple_IsRule189Enabled,
2343 GICXXPred_Simple_IsRule190Enabled,
2344 GICXXPred_Simple_IsRule191Enabled,
2345 GICXXPred_Simple_IsRule192Enabled,
2346 GICXXPred_Simple_IsRule193Enabled,
2347 GICXXPred_Simple_IsRule194Enabled,
2348 GICXXPred_Simple_IsRule195Enabled,
2349 GICXXPred_Simple_IsRule196Enabled,
2350 GICXXPred_Simple_IsRule197Enabled,
2351 GICXXPred_Simple_IsRule198Enabled,
2352 GICXXPred_Simple_IsRule199Enabled,
2353 GICXXPred_Simple_IsRule200Enabled,
2354 GICXXPred_Simple_IsRule201Enabled,
2355 GICXXPred_Simple_IsRule202Enabled,
2356 GICXXPred_Simple_IsRule203Enabled,
2357 GICXXPred_Simple_IsRule204Enabled,
2358 GICXXPred_Simple_IsRule205Enabled,
2359 GICXXPred_Simple_IsRule206Enabled,
2360 GICXXPred_Simple_IsRule207Enabled,
2361 GICXXPred_Simple_IsRule208Enabled,
2362 GICXXPred_Simple_IsRule209Enabled,
2363 GICXXPred_Simple_IsRule210Enabled,
2364 GICXXPred_Simple_IsRule211Enabled,
2365 GICXXPred_Simple_IsRule212Enabled,
2366 GICXXPred_Simple_IsRule213Enabled,
2367 GICXXPred_Simple_IsRule214Enabled,
2368 GICXXPred_Simple_IsRule215Enabled,
2369 GICXXPred_Simple_IsRule216Enabled,
2370 GICXXPred_Simple_IsRule217Enabled,
2371 GICXXPred_Simple_IsRule218Enabled,
2372 GICXXPred_Simple_IsRule219Enabled,
2373 GICXXPred_Simple_IsRule220Enabled,
2374 GICXXPred_Simple_IsRule221Enabled,
2375 GICXXPred_Simple_IsRule222Enabled,
2376 GICXXPred_Simple_IsRule223Enabled,
2377 GICXXPred_Simple_IsRule224Enabled,
2378 GICXXPred_Simple_IsRule225Enabled,
2379 GICXXPred_Simple_IsRule226Enabled,
2380 GICXXPred_Simple_IsRule227Enabled,
2381 GICXXPred_Simple_IsRule228Enabled,
2382 GICXXPred_Simple_IsRule229Enabled,
2383 GICXXPred_Simple_IsRule230Enabled,
2384 GICXXPred_Simple_IsRule231Enabled,
2385 GICXXPred_Simple_IsRule232Enabled,
2386 GICXXPred_Simple_IsRule233Enabled,
2387 GICXXPred_Simple_IsRule234Enabled,
2388 GICXXPred_Simple_IsRule235Enabled,
2389 GICXXPred_Simple_IsRule236Enabled,
2390 GICXXPred_Simple_IsRule237Enabled,
2391 GICXXPred_Simple_IsRule238Enabled,
2392 GICXXPred_Simple_IsRule239Enabled,
2393 GICXXPred_Simple_IsRule240Enabled,
2394 GICXXPred_Simple_IsRule241Enabled,
2395 GICXXPred_Simple_IsRule242Enabled,
2396 GICXXPred_Simple_IsRule243Enabled,
2397 GICXXPred_Simple_IsRule244Enabled,
2398 GICXXPred_Simple_IsRule245Enabled,
2399 GICXXPred_Simple_IsRule246Enabled,
2400 GICXXPred_Simple_IsRule247Enabled,
2401 GICXXPred_Simple_IsRule248Enabled,
2402 GICXXPred_Simple_IsRule249Enabled,
2403 GICXXPred_Simple_IsRule250Enabled,
2404 GICXXPred_Simple_IsRule251Enabled,
2405 GICXXPred_Simple_IsRule252Enabled,
2406 GICXXPred_Simple_IsRule253Enabled,
2407 GICXXPred_Simple_IsRule254Enabled,
2408 GICXXPred_Simple_IsRule255Enabled,
2409 GICXXPred_Simple_IsRule256Enabled,
2410 GICXXPred_Simple_IsRule257Enabled,
2411 GICXXPred_Simple_IsRule258Enabled,
2412 GICXXPred_Simple_IsRule259Enabled,
2413 GICXXPred_Simple_IsRule260Enabled,
2414 GICXXPred_Simple_IsRule261Enabled,
2415 GICXXPred_Simple_IsRule262Enabled,
2416 GICXXPred_Simple_IsRule263Enabled,
2417 GICXXPred_Simple_IsRule264Enabled,
2418 GICXXPred_Simple_IsRule265Enabled,
2419 GICXXPred_Simple_IsRule266Enabled,
2420 GICXXPred_Simple_IsRule267Enabled,
2421 GICXXPred_Simple_IsRule268Enabled,
2422 GICXXPred_Simple_IsRule269Enabled,
2423 GICXXPred_Simple_IsRule270Enabled,
2424 GICXXPred_Simple_IsRule271Enabled,
2425 GICXXPred_Simple_IsRule272Enabled,
2426 GICXXPred_Simple_IsRule273Enabled,
2427 GICXXPred_Simple_IsRule274Enabled,
2428 GICXXPred_Simple_IsRule275Enabled,
2429 GICXXPred_Simple_IsRule276Enabled,
2430 GICXXPred_Simple_IsRule277Enabled,
2431 GICXXPred_Simple_IsRule278Enabled,
2432 GICXXPred_Simple_IsRule279Enabled,
2433 GICXXPred_Simple_IsRule280Enabled,
2434 GICXXPred_Simple_IsRule281Enabled,
2435 GICXXPred_Simple_IsRule282Enabled,
2436};
2437
2438bool AArch64PreLegalizerCombinerImpl::testSimplePredicate(unsigned Predicate) const {
2439 return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1);
2440}
2441// Custom renderers.
2442enum {
2443 GICR_Invalid,
2444};
2445AArch64PreLegalizerCombinerImpl::CustomRendererFn
2446AArch64PreLegalizerCombinerImpl::CustomRenderers[] = {
2447 nullptr, // GICR_Invalid
2448};
2449
2450static bool AArch64PreLegalizerCombinerImpl_canMatchOpcode(unsigned Opc) {
2451 switch (Opc) {
2452 case TargetOpcode::G_FCMP:
2453 case TargetOpcode::G_FSHL:
2454 case TargetOpcode::G_FSHR:
2455 case TargetOpcode::G_ICMP:
2456 case TargetOpcode::G_INSERT_VECTOR_ELT:
2457 case TargetOpcode::G_MEMCPY:
2458 case TargetOpcode::G_MEMMOVE:
2459 case TargetOpcode::G_MEMSET:
2460 case TargetOpcode::G_SELECT:
2461 case TargetOpcode::G_SHUFFLE_VECTOR:
2462 case TargetOpcode::G_UADDO:
2463 case TargetOpcode::G_ADD:
2464 case TargetOpcode::G_AND:
2465 case TargetOpcode::G_ASHR:
2466 case TargetOpcode::G_EXTRACT_VECTOR_ELT:
2467 case TargetOpcode::G_FADD:
2468 case TargetOpcode::G_FCOPYSIGN:
2469 case TargetOpcode::G_FDIV:
2470 case TargetOpcode::G_FMAXIMUM:
2471 case TargetOpcode::G_FMAXIMUMNUM:
2472 case TargetOpcode::G_FMAXNUM:
2473 case TargetOpcode::G_FMINIMUM:
2474 case TargetOpcode::G_FMINIMUMNUM:
2475 case TargetOpcode::G_FMINNUM:
2476 case TargetOpcode::G_FMUL:
2477 case TargetOpcode::G_FPOWI:
2478 case TargetOpcode::G_FREM:
2479 case TargetOpcode::G_FSUB:
2480 case TargetOpcode::G_LSHR:
2481 case TargetOpcode::G_MEMCPY_INLINE:
2482 case TargetOpcode::G_MEMSET_INLINE:
2483 case TargetOpcode::G_MERGE_VALUES:
2484 case TargetOpcode::G_MUL:
2485 case TargetOpcode::G_OR:
2486 case TargetOpcode::G_PTR_ADD:
2487 case TargetOpcode::G_ROTL:
2488 case TargetOpcode::G_ROTR:
2489 case TargetOpcode::G_SDIV:
2490 case TargetOpcode::G_SEXT_INREG:
2491 case TargetOpcode::G_SHL:
2492 case TargetOpcode::G_SREM:
2493 case TargetOpcode::G_SUB:
2494 case TargetOpcode::G_UDIV:
2495 case TargetOpcode::G_UREM:
2496 case TargetOpcode::G_XOR:
2497 case TargetOpcode::COPY:
2498 case TargetOpcode::G_ABS:
2499 case TargetOpcode::G_ANYEXT:
2500 case TargetOpcode::G_BITCAST:
2501 case TargetOpcode::G_BITREVERSE:
2502 case TargetOpcode::G_BSWAP:
2503 case TargetOpcode::G_BUILD_VECTOR:
2504 case TargetOpcode::G_CTLZ:
2505 case TargetOpcode::G_CTLZ_ZERO_POISON:
2506 case TargetOpcode::G_CTPOP:
2507 case TargetOpcode::G_CTTZ:
2508 case TargetOpcode::G_CTTZ_ZERO_POISON:
2509 case TargetOpcode::G_FABS:
2510 case TargetOpcode::G_FCANONICALIZE:
2511 case TargetOpcode::G_FCEIL:
2512 case TargetOpcode::G_FFLOOR:
2513 case TargetOpcode::G_FLOG2:
2514 case TargetOpcode::G_FNEARBYINT:
2515 case TargetOpcode::G_FNEG:
2516 case TargetOpcode::G_FPEXT:
2517 case TargetOpcode::G_FPTOSI:
2518 case TargetOpcode::G_FPTOUI:
2519 case TargetOpcode::G_FPTRUNC:
2520 case TargetOpcode::G_FREEZE:
2521 case TargetOpcode::G_FRINT:
2522 case TargetOpcode::G_FSQRT:
2523 case TargetOpcode::G_INTRINSIC_ROUND:
2524 case TargetOpcode::G_INTRINSIC_ROUNDEVEN:
2525 case TargetOpcode::G_INTRINSIC_TRUNC:
2526 case TargetOpcode::G_INTTOPTR:
2527 case TargetOpcode::G_PTRTOINT:
2528 case TargetOpcode::G_SEXT:
2529 case TargetOpcode::G_SITOFP:
2530 case TargetOpcode::G_TRUNC:
2531 case TargetOpcode::G_TRUNC_USAT_U:
2532 case TargetOpcode::G_UITOFP:
2533 case TargetOpcode::G_ZEXT:
2534 case TargetOpcode::G_BR:
2535 case TargetOpcode::G_BUILD_VECTOR_TRUNC:
2536 case TargetOpcode::G_CONCAT_VECTORS:
2537 case TargetOpcode::G_FMA:
2538 case TargetOpcode::G_FMAD:
2539 case TargetOpcode::G_FMAXNUM_IEEE:
2540 case TargetOpcode::G_FMINNUM_IEEE:
2541 case TargetOpcode::G_GLOBAL_VALUE:
2542 case TargetOpcode::G_LOAD:
2543 case TargetOpcode::G_PHI:
2544 case TargetOpcode::G_SADDE:
2545 case TargetOpcode::G_SADDO:
2546 case TargetOpcode::G_SADDSAT:
2547 case TargetOpcode::G_SEXTLOAD:
2548 case TargetOpcode::G_SMAX:
2549 case TargetOpcode::G_SMIN:
2550 case TargetOpcode::G_SMULFIX:
2551 case TargetOpcode::G_SMULFIXSAT:
2552 case TargetOpcode::G_SMULH:
2553 case TargetOpcode::G_SMULO:
2554 case TargetOpcode::G_SSHLSAT:
2555 case TargetOpcode::G_SSUBE:
2556 case TargetOpcode::G_SSUBO:
2557 case TargetOpcode::G_STORE:
2558 case TargetOpcode::G_UADDE:
2559 case TargetOpcode::G_UADDSAT:
2560 case TargetOpcode::G_UMAX:
2561 case TargetOpcode::G_UMIN:
2562 case TargetOpcode::G_UMULFIX:
2563 case TargetOpcode::G_UMULFIXSAT:
2564 case TargetOpcode::G_UMULH:
2565 case TargetOpcode::G_UMULO:
2566 case TargetOpcode::G_UNMERGE_VALUES:
2567 case TargetOpcode::G_USHLSAT:
2568 case TargetOpcode::G_USUBE:
2569 case TargetOpcode::G_USUBO:
2570 case TargetOpcode::G_VECREDUCE_ADD:
2571 case TargetOpcode::G_ZEXTLOAD:
2572 return true;
2573 default:
2574 return false;
2575 }
2576}
2577
2578bool AArch64PreLegalizerCombinerImpl::tryCombineAllImpl(MachineInstr &I) const {
2579 if (!AArch64PreLegalizerCombinerImpl_canMatchOpcode(I.getOpcode()))
2580 return false;
2581 const PredicateBitset AvailableFeatures = getAvailableFeatures();
2582 State.MIs.clear();
2583 State.MIs.push_back(&I);
2584 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), Helper.getTII(), MRI, Helper.getTRI(), Helper.getRBI(), AvailableFeatures, /*CoverageInfo*/ nullptr)) {
2585 return true;
2586 }
2587
2588 return false;
2589}
2590
2591enum {
2592 GICXXCustomAction_GICombiner0 = GICXXCustomAction_Invalid + 1,
2593 GICXXCustomAction_GICombiner1,
2594 GICXXCustomAction_GICombiner2,
2595 GICXXCustomAction_GICombiner3,
2596 GICXXCustomAction_GICombiner4,
2597 GICXXCustomAction_GICombiner5,
2598 GICXXCustomAction_GICombiner6,
2599 GICXXCustomAction_GICombiner7,
2600 GICXXCustomAction_GICombiner8,
2601 GICXXCustomAction_GICombiner9,
2602 GICXXCustomAction_GICombiner10,
2603 GICXXCustomAction_GICombiner11,
2604 GICXXCustomAction_GICombiner12,
2605 GICXXCustomAction_GICombiner13,
2606 GICXXCustomAction_GICombiner14,
2607 GICXXCustomAction_GICombiner15,
2608 GICXXCustomAction_GICombiner16,
2609 GICXXCustomAction_GICombiner17,
2610 GICXXCustomAction_GICombiner18,
2611 GICXXCustomAction_GICombiner19,
2612 GICXXCustomAction_GICombiner20,
2613 GICXXCustomAction_GICombiner21,
2614 GICXXCustomAction_GICombiner22,
2615 GICXXCustomAction_GICombiner23,
2616 GICXXCustomAction_GICombiner24,
2617 GICXXCustomAction_GICombiner25,
2618 GICXXCustomAction_GICombiner26,
2619 GICXXCustomAction_GICombiner27,
2620 GICXXCustomAction_GICombiner28,
2621 GICXXCustomAction_GICombiner29,
2622 GICXXCustomAction_GICombiner30,
2623 GICXXCustomAction_GICombiner31,
2624 GICXXCustomAction_GICombiner32,
2625 GICXXCustomAction_GICombiner33,
2626 GICXXCustomAction_GICombiner34,
2627 GICXXCustomAction_GICombiner35,
2628 GICXXCustomAction_GICombiner36,
2629 GICXXCustomAction_GICombiner37,
2630 GICXXCustomAction_GICombiner38,
2631 GICXXCustomAction_GICombiner39,
2632 GICXXCustomAction_GICombiner40,
2633 GICXXCustomAction_GICombiner41,
2634 GICXXCustomAction_GICombiner42,
2635 GICXXCustomAction_GICombiner43,
2636 GICXXCustomAction_GICombiner44,
2637 GICXXCustomAction_GICombiner45,
2638 GICXXCustomAction_GICombiner46,
2639 GICXXCustomAction_GICombiner47,
2640 GICXXCustomAction_GICombiner48,
2641 GICXXCustomAction_GICombiner49,
2642 GICXXCustomAction_GICombiner50,
2643 GICXXCustomAction_GICombiner51,
2644 GICXXCustomAction_GICombiner52,
2645 GICXXCustomAction_GICombiner53,
2646 GICXXCustomAction_GICombiner54,
2647 GICXXCustomAction_GICombiner55,
2648 GICXXCustomAction_GICombiner56,
2649 GICXXCustomAction_GICombiner57,
2650 GICXXCustomAction_GICombiner58,
2651 GICXXCustomAction_GICombiner59,
2652 GICXXCustomAction_GICombiner60,
2653 GICXXCustomAction_GICombiner61,
2654 GICXXCustomAction_GICombiner62,
2655 GICXXCustomAction_GICombiner63,
2656 GICXXCustomAction_GICombiner64,
2657 GICXXCustomAction_GICombiner65,
2658 GICXXCustomAction_GICombiner66,
2659 GICXXCustomAction_GICombiner67,
2660 GICXXCustomAction_GICombiner68,
2661 GICXXCustomAction_GICombiner69,
2662 GICXXCustomAction_GICombiner70,
2663 GICXXCustomAction_GICombiner71,
2664 GICXXCustomAction_GICombiner72,
2665 GICXXCustomAction_GICombiner73,
2666 GICXXCustomAction_GICombiner74,
2667 GICXXCustomAction_GICombiner75,
2668 GICXXCustomAction_GICombiner76,
2669 GICXXCustomAction_GICombiner77,
2670 GICXXCustomAction_GICombiner78,
2671 GICXXCustomAction_GICombiner79,
2672 GICXXCustomAction_GICombiner80,
2673 GICXXCustomAction_GICombiner81,
2674 GICXXCustomAction_GICombiner82,
2675 GICXXCustomAction_GICombiner83,
2676 GICXXCustomAction_GICombiner84,
2677 GICXXCustomAction_GICombiner85,
2678 GICXXCustomAction_GICombiner86,
2679 GICXXCustomAction_GICombiner87,
2680 GICXXCustomAction_GICombiner88,
2681 GICXXCustomAction_GICombiner89,
2682 GICXXCustomAction_GICombiner90,
2683 GICXXCustomAction_GICombiner91,
2684 GICXXCustomAction_GICombiner92,
2685 GICXXCustomAction_GICombiner93,
2686 GICXXCustomAction_GICombiner94,
2687 GICXXCustomAction_GICombiner95,
2688 GICXXCustomAction_GICombiner96,
2689 GICXXCustomAction_GICombiner97,
2690 GICXXCustomAction_GICombiner98,
2691 GICXXCustomAction_GICombiner99,
2692 GICXXCustomAction_GICombiner100,
2693 GICXXCustomAction_GICombiner101,
2694 GICXXCustomAction_GICombiner102,
2695 GICXXCustomAction_GICombiner103,
2696 GICXXCustomAction_GICombiner104,
2697 GICXXCustomAction_GICombiner105,
2698 GICXXCustomAction_GICombiner106,
2699 GICXXCustomAction_GICombiner107,
2700 GICXXCustomAction_GICombiner108,
2701 GICXXCustomAction_GICombiner109,
2702 GICXXCustomAction_GICombiner110,
2703 GICXXCustomAction_GICombiner111,
2704 GICXXCustomAction_GICombiner112,
2705 GICXXCustomAction_GICombiner113,
2706 GICXXCustomAction_GICombiner114,
2707 GICXXCustomAction_GICombiner115,
2708 GICXXCustomAction_GICombiner116,
2709 GICXXCustomAction_GICombiner117,
2710 GICXXCustomAction_GICombiner118,
2711 GICXXCustomAction_GICombiner119,
2712 GICXXCustomAction_GICombiner120,
2713 GICXXCustomAction_GICombiner121,
2714 GICXXCustomAction_GICombiner122,
2715 GICXXCustomAction_GICombiner123,
2716 GICXXCustomAction_GICombiner124,
2717 GICXXCustomAction_GICombiner125,
2718 GICXXCustomAction_GICombiner126,
2719 GICXXCustomAction_GICombiner127,
2720 GICXXCustomAction_GICombiner128,
2721 GICXXCustomAction_GICombiner129,
2722 GICXXCustomAction_GICombiner130,
2723 GICXXCustomAction_GICombiner131,
2724 GICXXCustomAction_GICombiner132,
2725 GICXXCustomAction_GICombiner133,
2726 GICXXCustomAction_GICombiner134,
2727 GICXXCustomAction_GICombiner135,
2728 GICXXCustomAction_GICombiner136,
2729 GICXXCustomAction_GICombiner137,
2730 GICXXCustomAction_GICombiner138,
2731 GICXXCustomAction_GICombiner139,
2732 GICXXCustomAction_GICombiner140,
2733 GICXXCustomAction_GICombiner141,
2734 GICXXCustomAction_GICombiner142,
2735 GICXXCustomAction_GICombiner143,
2736 GICXXCustomAction_GICombiner144,
2737 GICXXCustomAction_GICombiner145,
2738 GICXXCustomAction_GICombiner146,
2739 GICXXCustomAction_GICombiner147,
2740 GICXXCustomAction_GICombiner148,
2741 GICXXCustomAction_GICombiner149,
2742 GICXXCustomAction_GICombiner150,
2743 GICXXCustomAction_GICombiner151,
2744 GICXXCustomAction_GICombiner152,
2745 GICXXCustomAction_GICombiner153,
2746 GICXXCustomAction_GICombiner154,
2747 GICXXCustomAction_GICombiner155,
2748 GICXXCustomAction_GICombiner156,
2749 GICXXCustomAction_GICombiner157,
2750 GICXXCustomAction_GICombiner158,
2751 GICXXCustomAction_GICombiner159,
2752 GICXXCustomAction_GICombiner160,
2753 GICXXCustomAction_GICombiner161,
2754 GICXXCustomAction_GICombiner162,
2755 GICXXCustomAction_GICombiner163,
2756 GICXXCustomAction_GICombiner164,
2757 GICXXCustomAction_GICombiner165,
2758 GICXXCustomAction_GICombiner166,
2759 GICXXCustomAction_GICombiner167,
2760 GICXXCustomAction_GICombiner168,
2761};
2762bool AArch64PreLegalizerCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const {
2763 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
2764 switch(ApplyID) {
2765 case GICXXCustomAction_GICombiner0:{
2766 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2767 // Match Patterns
2768 if(![&](){return Helper.matchFoldAPlusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2769 return false;
2770 }
2771 // Apply Patterns
2772 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2773 return true;
2774 }
2775 case GICXXCustomAction_GICombiner1:{
2776 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2777 // Match Patterns
2778 if(![&](){return Helper.matchFoldC2MinusAPlusC1(*State.MIs[0], GIMatchData_matchinfo);}()) {
2779 return false;
2780 }
2781 // Apply Patterns
2782 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2783 return true;
2784 }
2785 case GICXXCustomAction_GICombiner2:{
2786 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2787 // Match Patterns
2788 if(![&](){return Helper.matchFoldAMinusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2789 return false;
2790 }
2791 // Apply Patterns
2792 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2793 return true;
2794 }
2795 case GICXXCustomAction_GICombiner3:{
2796 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2797 // Match Patterns
2798 if(![&](){return Helper.matchFoldC1Minus2MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2799 return false;
2800 }
2801 // Apply Patterns
2802 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2803 return true;
2804 }
2805 case GICXXCustomAction_GICombiner4:{
2806 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2807 // Match Patterns
2808 if(![&](){return Helper.matchFoldAMinusC1PlusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2809 return false;
2810 }
2811 // Apply Patterns
2812 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2813 return true;
2814 }
2815 case GICXXCustomAction_GICombiner5:{
2816 // Match Patterns
2817 if(![&](){return Helper.matchCombineCopy(*State.MIs[0]);}()) {
2818 return false;
2819 }
2820 // Apply Patterns
2821 Helper.applyCombineCopy(*State.MIs[0]);
2822 return true;
2823 }
2824 case GICXXCustomAction_GICombiner6:{
2825 unsigned GIMatchData_matchinfo;
2826 // Match Patterns
2827 if(![&](){return Helper.matchCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);}()) {
2828 return false;
2829 }
2830 // Apply Patterns
2831 Helper.applyCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);
2832 return true;
2833 }
2834 case GICXXCustomAction_GICombiner7:{
2835 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2836 // Match Patterns
2837 if(![&](){return Helper.matchCombineSubToAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2838 return false;
2839 }
2840 // Apply Patterns
2841 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2842 return true;
2843 }
2844 case GICXXCustomAction_GICombiner8:{
2845 std::pair<Register, bool> GIMatchData_info;
2846 // Match Patterns
2847 if(![&](){return Helper.matchCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info);}()) {
2848 return false;
2849 }
2850 // Apply Patterns
2851 Helper.applyCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info);
2852 return true;
2853 }
2854 case GICXXCustomAction_GICombiner9:{
2855 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2856 // Match Patterns
2857 if(![&](){return Helper.matchExtractVectorElement(*State.MIs[0], GIMatchData_matchinfo);}()) {
2858 return false;
2859 }
2860 // Apply Patterns
2861 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2862 return true;
2863 }
2864 case GICXXCustomAction_GICombiner10:{
2865 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2866 // Match Patterns
2867 if(![&](){return Helper.matchInsertVectorElementOOB(*State.MIs[0], GIMatchData_matchinfo);}()) {
2868 return false;
2869 }
2870 // Apply Patterns
2871 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2872 return true;
2873 }
2874 case GICXXCustomAction_GICombiner11:{
2875 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2876 // Match Patterns
2877 if(![&](){return Helper.matchExtractVectorElementWithDifferentIndices(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2878 return false;
2879 }
2880 // Apply Patterns
2881 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2882 return true;
2883 }
2884 case GICXXCustomAction_GICombiner12:{
2885 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2886 // Match Patterns
2887 if(![&](){return Helper.matchExtractVectorElementWithBuildVector(*State.MIs[0], *State.MIs[1],
2888 GIMatchData_matchinfo);}()) {
2889 return false;
2890 }
2891 // Apply Patterns
2892 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2893 return true;
2894 }
2895 case GICXXCustomAction_GICombiner13:{
2896 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2897 // Match Patterns
2898 if(![&](){return Helper.matchExtractVectorElementWithBuildVectorTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2899 return false;
2900 }
2901 // Apply Patterns
2902 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2903 return true;
2904 }
2905 case GICXXCustomAction_GICombiner14:{
2906 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2907 // Match Patterns
2908 if(![&](){return Helper.matchExtractVectorElementWithShuffleVector(*State.MIs[0], *State.MIs[1],
2909 GIMatchData_matchinfo);}()) {
2910 return false;
2911 }
2912 // Apply Patterns
2913 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2914 return true;
2915 }
2916 case GICXXCustomAction_GICombiner15:{
2917 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2918 // Match Patterns
2919 if(![&](){return Helper.matchAddOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2920 return false;
2921 }
2922 // Apply Patterns
2923 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2924 return true;
2925 }
2926 case GICXXCustomAction_GICombiner16:{
2927 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2928 // Match Patterns
2929 if(![&](){return Helper.matchMulOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2930 return false;
2931 }
2932 // Apply Patterns
2933 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2934 return true;
2935 }
2936 case GICXXCustomAction_GICombiner17:{
2937 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2938 // Match Patterns
2939 if(![&](){return Helper.matchShlOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2940 return false;
2941 }
2942 // Apply Patterns
2943 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2944 return true;
2945 }
2946 case GICXXCustomAction_GICombiner18:{
2947 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2948 // Match Patterns
2949 if(![&](){return Helper.matchSubOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2950 return false;
2951 }
2952 // Apply Patterns
2953 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2954 return true;
2955 }
2956 case GICXXCustomAction_GICombiner19:{
2957 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2958 // Match Patterns
2959 if(![&](){return !isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI) && Helper.matchFreezeOfSingleMaybePoisonOperand(*State.MIs[0], GIMatchData_matchinfo);}()) {
2960 return false;
2961 }
2962 // Apply Patterns
2963 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2964 return true;
2965 }
2966 case GICXXCustomAction_GICombiner20:{
2967 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2968 // Match Patterns
2969 if(![&](){return Helper.matchTruncateOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2970 return false;
2971 }
2972 // Apply Patterns
2973 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2974 return true;
2975 }
2976 case GICXXCustomAction_GICombiner21:{
2977 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2978 // Match Patterns
2979 if(![&](){return Helper.matchExtOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2980 return false;
2981 }
2982 // Apply Patterns
2983 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2984 return true;
2985 }
2986 case GICXXCustomAction_GICombiner22:{
2987 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2988 // Match Patterns
2989 if(![&](){return Helper.matchRedundantSextInReg(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2990 return false;
2991 }
2992 // Apply Patterns
2993 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2994 return true;
2995 }
2996 case GICXXCustomAction_GICombiner23:{
2997 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2998 // Match Patterns
2999 if(![&](){return Helper.matchCastOfSelect(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3000 return false;
3001 }
3002 // Apply Patterns
3003 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3004 return true;
3005 }
3006 case GICXXCustomAction_GICombiner24:{
3007 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3008 // Match Patterns
3009 if(![&](){return Helper.matchCastOfBuildVector(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3010 return false;
3011 }
3012 // Apply Patterns
3013 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3014 return true;
3015 }
3016 case GICXXCustomAction_GICombiner25:{
3017 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3018 // Match Patterns
3019 if(![&](){return Helper.matchNarrowBinop(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3020 return false;
3021 }
3022 // Apply Patterns
3023 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3024 return true;
3025 }
3026 case GICXXCustomAction_GICombiner26:{
3027 APInt GIMatchData_matchinfo;
3028 // Match Patterns
3029 if(![&](){return Helper.matchCastOfInteger(*State.MIs[0], GIMatchData_matchinfo);}()) {
3030 return false;
3031 }
3032 // Apply Patterns
3033 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3034 return true;
3035 }
3036 case GICXXCustomAction_GICombiner27:{
3037 SmallVector<Register> GIMatchData_info;
3038 // Match Patterns
3039 if(![&](){return Helper.matchCombineInsertVecElts(*State.MIs[0], GIMatchData_info);}()) {
3040 return false;
3041 }
3042 // Apply Patterns
3043 Helper.applyCombineInsertVecElts(*State.MIs[0], GIMatchData_info);
3044 return true;
3045 }
3046 case GICXXCustomAction_GICombiner28:{
3047 Register GIMatchData_matchinfo;
3048 // Match Patterns
3049 if(![&](){return Helper.matchExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);}()) {
3050 return false;
3051 }
3052 // Apply Patterns
3053 Helper.applyExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);
3054 return true;
3055 }
3056 case GICXXCustomAction_GICombiner29:{
3057 SmallVector<std::pair<Register, MachineInstr*>> GIMatchData_matchinfo;
3058 // Match Patterns
3059 if(![&](){return Helper.matchExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
3060 return false;
3061 }
3062 // Apply Patterns
3063 Helper.applyExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);
3064 return true;
3065 }
3066 case GICXXCustomAction_GICombiner30:{
3067 PreferredTuple GIMatchData_matchinfo;
3068 // Match Patterns
3069 if(![&](){return Helper.matchCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);}()) {
3070 return false;
3071 }
3072 // Apply Patterns
3073 Helper.applyCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);
3074 return true;
3075 }
3076 case GICXXCustomAction_GICombiner31:{
3077 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3078 // Match Patterns
3079 if(![&](){return Helper.matchCombineLoadWithAndMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
3080 return false;
3081 }
3082 // Apply Patterns
3083 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3084 return true;
3085 }
3086 case GICXXCustomAction_GICombiner32:{
3087 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3088 // Match Patterns
3089 if(![&](){return Helper.matchCombineExtractedVectorLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
3090 return false;
3091 }
3092 // Apply Patterns
3093 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3094 return true;
3095 }
3096 case GICXXCustomAction_GICombiner33:{
3097 // Match Patterns
3098 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
3099 return false;
3100 }
3101 // Apply Patterns
3102 Helper.replaceInstWithFConstant(*State.MIs[0], 0.0);
3103 return true;
3104 }
3105 case GICXXCustomAction_GICombiner34:{
3106 // Match Patterns
3107 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
3108 return false;
3109 }
3110 // Apply Patterns
3111 Helper.replaceInstWithConstant(*State.MIs[0], 0);
3112 return true;
3113 }
3114 case GICXXCustomAction_GICombiner35:{
3115 // Match Patterns
3116 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
3117 return false;
3118 }
3119 // Apply Patterns
3120 Helper.replaceInstWithConstant(*State.MIs[0], -1);
3121 return true;
3122 }
3123 case GICXXCustomAction_GICombiner36:{
3124 // Match Patterns
3125 if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 1);}()) {
3126 return false;
3127 }
3128 // Apply Patterns
3129 Helper.replaceInstWithConstant(*State.MIs[0], 0);
3130 return true;
3131 }
3132 case GICXXCustomAction_GICombiner37:{
3133 // Match Patterns
3134 if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 2);}()) {
3135 return false;
3136 }
3137 // Apply Patterns
3138 Helper.replaceInstWithUndef(*State.MIs[0]);
3139 return true;
3140 }
3141 case GICXXCustomAction_GICombiner38:{
3142 // Apply Patterns
3143 Helper.replaceInstWithUndef(*State.MIs[0]->getOperand(0).getParent());
3144 return true;
3145 }
3146 case GICXXCustomAction_GICombiner39:{
3147 // Match Patterns
3148 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
3149 return false;
3150 }
3151 // Apply Patterns
3152 Helper.replaceInstWithUndef(*State.MIs[0]);
3153 return true;
3154 }
3155 case GICXXCustomAction_GICombiner40:{
3156 // Match Patterns
3157 if(![&](){return Helper.matchAllExplicitUsesAreUndef(*State.MIs[0]);}()) {
3158 return false;
3159 }
3160 // Apply Patterns
3161 Helper.replaceInstWithUndef(*State.MIs[0]);
3162 return true;
3163 }
3164 case GICXXCustomAction_GICombiner41:{
3165 // Match Patterns
3166 if(![&](){return Helper.matchUndefShuffleVectorMask(*State.MIs[0]);}()) {
3167 return false;
3168 }
3169 // Apply Patterns
3170 Helper.replaceInstWithUndef(*State.MIs[0]);
3171 return true;
3172 }
3173 case GICXXCustomAction_GICombiner42:{
3174 // Match Patterns
3175 if(![&](){return Helper.matchUndefStore(*State.MIs[0]);}()) {
3176 return false;
3177 }
3178 // Apply Patterns
3179 Helper.eraseInst(*State.MIs[0]);
3180 return true;
3181 }
3182 case GICXXCustomAction_GICombiner43:{
3183 // Match Patterns
3184 if(![&](){return Helper.matchInsertExtractVecEltOutOfBounds(*State.MIs[0]);}()) {
3185 return false;
3186 }
3187 // Apply Patterns
3188 Helper.replaceInstWithUndef(*State.MIs[0]);
3189 return true;
3190 }
3191 case GICXXCustomAction_GICombiner44:{
3192 // Match Patterns
3193 if(![&](){return Helper.matchSelectSameVal(*State.MIs[0]);}()) {
3194 return false;
3195 }
3196 // Apply Patterns
3197 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 2);
3198 return true;
3199 }
3200 case GICXXCustomAction_GICombiner45:{
3201 Register GIMatchData_info;
3202 // Match Patterns
3203 if(![&](){return Helper.matchCombineI2PToP2I(*State.MIs[0], GIMatchData_info);}()) {
3204 return false;
3205 }
3206 // Apply Patterns
3207 Helper.applyCombineI2PToP2I(*State.MIs[0], GIMatchData_info);
3208 return true;
3209 }
3210 case GICXXCustomAction_GICombiner46:{
3211 Register GIMatchData_info;
3212 // Match Patterns
3213 if(![&](){GIMatchData_info = State.MIs[1]->getOperand(1).getReg(); return true;}()) {
3214 return false;
3215 }
3216 // Apply Patterns
3217 Helper.applyCombineP2IToI2P(*State.MIs[0], GIMatchData_info);
3218 return true;
3219 }
3220 case GICXXCustomAction_GICombiner47:{
3221 Register GIMatchData_matchinfo;
3222 // Match Patterns
3223 if(![&](){return Helper.matchCombineAnyExtTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
3224 return false;
3225 }
3226 // Apply Patterns
3227 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3228 return true;
3229 }
3230 case GICXXCustomAction_GICombiner48:{
3231 Register GIMatchData_matchinfo;
3232 // Match Patterns
3233 if(![&](){return Helper.matchBuildVectorIdentityFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3234 return false;
3235 }
3236 // Apply Patterns
3237 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3238 return true;
3239 }
3240 case GICXXCustomAction_GICombiner49:{
3241 Register GIMatchData_matchinfo;
3242 // Match Patterns
3243 if(![&](){return Helper.matchTruncBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3244 return false;
3245 }
3246 // Apply Patterns
3247 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3248 return true;
3249 }
3250 case GICXXCustomAction_GICombiner50:{
3251 Register GIMatchData_matchinfo;
3252 // Match Patterns
3253 if(![&](){return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3254 return false;
3255 }
3256 // Apply Patterns
3257 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3258 return true;
3259 }
3260 case GICXXCustomAction_GICombiner51:{
3261 // Match Patterns
3262 if(![&](){return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());}()) {
3263 return false;
3264 }
3265 // Apply Patterns
3266 Helper.replaceSingleDefInstWithReg(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
3267 return true;
3268 }
3269 case GICXXCustomAction_GICombiner52:{
3270 MachineInstr* GIMatchData_matchinfo;
3271 // Match Patterns
3272 if(![&](){return Helper.matchExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);}()) {
3273 return false;
3274 }
3275 // Apply Patterns
3276 Helper.applyExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);
3277 return true;
3278 }
3279 case GICXXCustomAction_GICombiner53:{
3280 std::tuple<Register, Register> GIMatchData_info;
3281 // Match Patterns
3282 if(![&](){return Helper.matchSimplifyAddToSub(*State.MIs[0], GIMatchData_info);}()) {
3283 return false;
3284 }
3285 // Apply Patterns
3286 Helper.applySimplifyAddToSub(*State.MIs[0], GIMatchData_info);
3287 return true;
3288 }
3289 case GICXXCustomAction_GICombiner54:{
3290 InstructionStepsMatchInfo GIMatchData_info;
3291 // Match Patterns
3292 if(![&](){return Helper.matchHoistLogicOpWithSameOpcodeHands(*State.MIs[0], GIMatchData_info);}()) {
3293 return false;
3294 }
3295 // Apply Patterns
3296 Helper.applyBuildInstructionSteps(*State.MIs[0], GIMatchData_info);
3297 return true;
3298 }
3299 case GICXXCustomAction_GICombiner55:{
3300 std::optional<int64_t> GIMatchData_matchinfo;
3301 // Match Patterns
3302 if(![&](){return Helper.matchShiftsTooBig(*State.MIs[0], GIMatchData_matchinfo);}()) {
3303 return false;
3304 }
3305 // Apply Patterns
3306 if (GIMatchData_matchinfo) {
3307 Helper.replaceInstWithConstant(*State.MIs[0], *GIMatchData_matchinfo);
3308 } else {
3309 Helper.replaceInstWithUndef(*State.MIs[0]);
3310 }
3311 return true;
3312 }
3313 case GICXXCustomAction_GICombiner56:{
3314 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3315 // Match Patterns
3316 if(![&](){return Helper.matchReassocPtrAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3317 return false;
3318 }
3319 // Apply Patterns
3320 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3321 return true;
3322 }
3323 case GICXXCustomAction_GICombiner57:{
3324 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3325 // Match Patterns
3326 if(![&](){return Helper.matchReassocCommBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3327 return false;
3328 }
3329 // Apply Patterns
3330 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3331 return true;
3332 }
3333 case GICXXCustomAction_GICombiner58:{
3334 PtrAddChain GIMatchData_matchinfo;
3335 // Match Patterns
3336 if(![&](){return Helper.matchPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
3337 return false;
3338 }
3339 // Apply Patterns
3340 Helper.applyPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);
3341 return true;
3342 }
3343 case GICXXCustomAction_GICombiner59:{
3344 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3345 // Match Patterns
3346 if(![&](){return Helper.matchCanonicalizeICmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3347 return false;
3348 }
3349 // Apply Patterns
3350 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3351 return true;
3352 }
3353 case GICXXCustomAction_GICombiner60:{
3354 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3355 // Match Patterns
3356 if(![&](){return Helper.matchCanonicalizeFCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3357 return false;
3358 }
3359 // Apply Patterns
3360 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3361 return true;
3362 }
3363 case GICXXCustomAction_GICombiner61:{
3364 int64_t GIMatchData_matchinfo;
3365 // Match Patterns
3366 if(![&](){return Helper.matchICmpToTrueFalseKnownBits(*State.MIs[0], GIMatchData_matchinfo);}()) {
3367 return false;
3368 }
3369 // Apply Patterns
3370 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3371 return true;
3372 }
3373 case GICXXCustomAction_GICombiner62:{
3374 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3375 // Match Patterns
3376 if(![&](){return Helper.matchICmpToLHSKnownBits(*State.MIs[0], GIMatchData_info);}()) {
3377 return false;
3378 }
3379 // Apply Patterns
3380 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3381 return true;
3382 }
3383 case GICXXCustomAction_GICombiner63:{
3384 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3385 // Match Patterns
3386 if(![&](){return Helper.matchRedundantBinOpInEquality(*State.MIs[0], GIMatchData_info);}()) {
3387 return false;
3388 }
3389 // Apply Patterns
3390 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3391 return true;
3392 }
3393 case GICXXCustomAction_GICombiner64:{
3394 std::tuple<Register, int64_t> GIMatchData_info;
3395 // Match Patterns
3396 if(![&](){return Helper.matchAshrShlToSextInreg(*State.MIs[0], GIMatchData_info);}()) {
3397 return false;
3398 }
3399 // Apply Patterns
3400 Helper.applyAshShlToSextInreg(*State.MIs[0], GIMatchData_info);
3401 return true;
3402 }
3403 case GICXXCustomAction_GICombiner65:{
3404 std::tuple<Register, unsigned> GIMatchData_matchinfo;
3405 // Match Patterns
3406 if(![&](){return Helper.matchSextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
3407 return false;
3408 }
3409 // Apply Patterns
3410 Helper.applySextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);
3411 return true;
3412 }
3413 case GICXXCustomAction_GICombiner66:{
3414 RegisterImmPair GIMatchData_matchinfo;
3415 // Match Patterns
3416 if(![&](){return Helper.matchCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);}()) {
3417 return false;
3418 }
3419 // Apply Patterns
3420 Helper.applyCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);
3421 return true;
3422 }
3423 case GICXXCustomAction_GICombiner67:{
3424 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3425 // Match Patterns
3426 if(![&](){return Helper.matchNarrowBinopFeedingAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3427 return false;
3428 }
3429 // Apply Patterns
3430 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3431 return true;
3432 }
3433 case GICXXCustomAction_GICombiner68:{
3434 unsigned GIMatchData_matchinfo;
3435 // Match Patterns
3436 if(![&](){return Helper.matchConstantSelectCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3437 return false;
3438 }
3439 // Apply Patterns
3440 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_matchinfo);
3441 return true;
3442 }
3443 case GICXXCustomAction_GICombiner69:{
3444 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3445 // Match Patterns
3446 if(![&](){return Helper.matchSelectIMinMax(State.MIs[0]->getOperand(0), GIMatchData_info);}()) {
3447 return false;
3448 }
3449 // Apply Patterns
3450 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_info);
3451 return true;
3452 }
3453 case GICXXCustomAction_GICombiner70:{
3454 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3455 // Match Patterns
3456 if(![&](){return Helper.matchSelect(*State.MIs[0], GIMatchData_matchinfo);}()) {
3457 return false;
3458 }
3459 // Apply Patterns
3460 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3461 return true;
3462 }
3463 case GICXXCustomAction_GICombiner71:{
3464 Register GIMatchData_matchinfo;
3465 // Match Patterns
3466 if(![&](){return Helper.matchRedundantAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3467 return false;
3468 }
3469 // Apply Patterns
3470 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3471 return true;
3472 }
3473 case GICXXCustomAction_GICombiner72:{
3474 // Match Patterns
3475 if(![&](){return Helper.matchRedundantSExtInReg(*State.MIs[0]);}()) {
3476 return false;
3477 }
3478 // Apply Patterns
3479 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 1);
3480 return true;
3481 }
3482 case GICXXCustomAction_GICombiner73:{
3483 Register GIMatchData_matchinfo;
3484 // Match Patterns
3485 if(![&](){return Helper.matchRedundantOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
3486 return false;
3487 }
3488 // Apply Patterns
3489 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3490 return true;
3491 }
3492 case GICXXCustomAction_GICombiner74:{
3493 // Match Patterns
3494 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(State.MIs[0]->getOperand(2));}()) {
3495 return false;
3496 }
3497 // Apply Patterns
3498 Helper.applySimplifyURemByPow2(*State.MIs[0]);
3499 return true;
3500 }
3501 case GICXXCustomAction_GICombiner75:{
3502 Register GIMatchData_matchinfo;
3503 // Match Patterns
3504 if(![&](){return Helper.matchCombineZextTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
3505 return false;
3506 }
3507 // Apply Patterns
3508 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3509 return true;
3510 }
3511 case GICXXCustomAction_GICombiner76:{
3512 // Match Patterns
3513 if(![&](){unsigned BitWidth = MRI.getType(State.MIs[0]->getOperand(1).getReg()).getScalarSizeInBits();
3514 return Helper.getValueTracking()->maskedValueIsZero(State.MIs[0]->getOperand(1).getReg(),
3515 APInt::getOneBitSet(BitWidth, State.MIs[0]->getOperand(2).getImm() - 1));}()) {
3516 return false;
3517 }
3518 // Apply Patterns
3519 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
3520 Helper.getBuilder().buildZExtInReg(State.MIs[0]->getOperand(0), State.MIs[0]->getOperand(1), State.MIs[0]->getOperand(2).getImm());
3521 State.MIs[0]->eraseFromParent();
3522 return true;
3523 }
3524 case GICXXCustomAction_GICombiner77:{
3525 std::pair<MachineInstr*, LLT> GIMatchData_matchinfo;
3526 // Match Patterns
3527 if(![&](){return Helper.matchCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
3528 return false;
3529 }
3530 // Apply Patterns
3531 Helper.applyCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);
3532 return true;
3533 }
3534 case GICXXCustomAction_GICombiner78:{
3535 SmallVector<Register> GIMatchData_info;
3536 // Match Patterns
3537 if(![&](){return Helper.matchNotCmp(*State.MIs[0], GIMatchData_info);}()) {
3538 return false;
3539 }
3540 // Apply Patterns
3541 Helper.applyNotCmp(*State.MIs[0], GIMatchData_info);
3542 return true;
3543 }
3544 case GICXXCustomAction_GICombiner79:{
3545 MachineInstr * GIMatchData_matchinfo;
3546 // Match Patterns
3547 if(![&](){return Helper.matchOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);}()) {
3548 return false;
3549 }
3550 // Apply Patterns
3551 Helper.applyOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);
3552 return true;
3553 }
3554 case GICXXCustomAction_GICombiner80:{
3555 // Apply Patterns
3556 Helper.applyCombineConstantFoldFpUnary(*State.MIs[0], State.MIs[1]->getOperand(1).getFPImm());
3557 return true;
3558 }
3559 case GICXXCustomAction_GICombiner81:{
3560 // Apply Patterns
3561 Helper.replaceInstWithFConstant(*State.MIs[0]->getOperand(0).getParent(), 0.0);
3562 return true;
3563 }
3564 case GICXXCustomAction_GICombiner82:{
3565 APInt GIMatchData_info;
3566 // Match Patterns
3567 if(![&](){return Helper.matchCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info);}()) {
3568 return false;
3569 }
3570 // Apply Patterns
3571 Helper.applyCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info);
3572 return true;
3573 }
3574 case GICXXCustomAction_GICombiner83:{
3575 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3576 // Match Patterns
3577 if(![&](){return Helper.matchOverlappingAnd(*State.MIs[0], GIMatchData_info);}()) {
3578 return false;
3579 }
3580 // Apply Patterns
3581 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3582 return true;
3583 }
3584 case GICXXCustomAction_GICombiner84:{
3585 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3586 // Match Patterns
3587 if(![&](){return Helper.matchMulOBy2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3588 return false;
3589 }
3590 // Apply Patterns
3591 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3592 return true;
3593 }
3594 case GICXXCustomAction_GICombiner85:{
3595 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3596 // Match Patterns
3597 if(![&](){return Helper.matchMulOBy0(*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_GICombiner86:{
3605 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3606 // Match Patterns
3607 if(![&](){return Helper.matchAddEToAddO(*State.MIs[0], GIMatchData_matchinfo);}()) {
3608 return false;
3609 }
3610 // Apply Patterns
3611 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3612 return true;
3613 }
3614 case GICXXCustomAction_GICombiner87:{
3615 unsigned GIMatchData_info;
3616 // Match Patterns
3617 if(![&](){return Helper.matchCombineFMinMaxNaN(*State.MIs[0], GIMatchData_info);}()) {
3618 return false;
3619 }
3620 // Apply Patterns
3621 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_info);
3622 return true;
3623 }
3624 case GICXXCustomAction_GICombiner88:{
3625 // Match Patterns
3626 if(![&](){return Helper.matchFPowIExpansion(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());}()) {
3627 return false;
3628 }
3629 // Apply Patterns
3630 Helper.applyExpandFPowI(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());
3631 return true;
3632 }
3633 case GICXXCustomAction_GICombiner89:{
3634 std::pair<Register, Register> GIMatchData_matchinfo;
3635 // Match Patterns
3636 if(![&](){return Helper.matchXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3637 return false;
3638 }
3639 // Apply Patterns
3640 Helper.applyXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);
3641 return true;
3642 }
3643 case GICXXCustomAction_GICombiner90:{
3644 // Match Patterns
3645 if(![&](){return Helper.matchPtrAddZero(*State.MIs[0]);}()) {
3646 return false;
3647 }
3648 // Apply Patterns
3649 Helper.applyPtrAddZero(*State.MIs[0]);
3650 return true;
3651 }
3652 case GICXXCustomAction_GICombiner91:{
3653 RegisterImmPair GIMatchData_matchinfo;
3654 // Match Patterns
3655 if(![&](){return Helper.matchShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
3656 return false;
3657 }
3658 // Apply Patterns
3659 Helper.applyShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);
3660 return true;
3661 }
3662 case GICXXCustomAction_GICombiner92:{
3663 ShiftOfShiftedLogic GIMatchData_matchinfo;
3664 // Match Patterns
3665 if(![&](){return Helper.matchShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);}()) {
3666 return false;
3667 }
3668 // Apply Patterns
3669 Helper.applyShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);
3670 return true;
3671 }
3672 case GICXXCustomAction_GICombiner93:{
3673 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3674 // Match Patterns
3675 if(![&](){return Helper.matchLoadOrCombine(*State.MIs[0], GIMatchData_info);}()) {
3676 return false;
3677 }
3678 // Apply Patterns
3679 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3680 return true;
3681 }
3682 case GICXXCustomAction_GICombiner94:{
3683 MachineInstr * GIMatchData_matchinfo;
3684 // Match Patterns
3685 if(![&](){return Helper.matchCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);}()) {
3686 return false;
3687 }
3688 // Apply Patterns
3689 Helper.applyCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);
3690 return true;
3691 }
3692 case GICXXCustomAction_GICombiner95:{
3693 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3694 // Match Patterns
3695 if(![&](){return Helper.matchOrShiftToFunnelShift(*State.MIs[0], false, GIMatchData_info);}()) {
3696 return false;
3697 }
3698 // Apply Patterns
3699 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3700 return true;
3701 }
3702 case GICXXCustomAction_GICombiner96:{
3703 // Match Patterns
3704 if(![&](){return Helper.matchFunnelShiftToRotate(*State.MIs[0]);}()) {
3705 return false;
3706 }
3707 // Apply Patterns
3708 Helper.applyFunnelShiftToRotate(*State.MIs[0]);
3709 return true;
3710 }
3711 case GICXXCustomAction_GICombiner97:{
3712 // Match Patterns
3713 if(![&](){return Helper.matchConstantLargerBitWidth(*State.MIs[0], 3);}()) {
3714 return false;
3715 }
3716 // Apply Patterns
3717 Helper.applyFunnelShiftConstantModulo(*State.MIs[0]);
3718 return true;
3719 }
3720 case GICXXCustomAction_GICombiner98:{
3721 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3722 // Match Patterns
3723 if(![&](){return Helper.matchCommuteShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
3724 return false;
3725 }
3726 // Apply Patterns
3727 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3728 return true;
3729 }
3730 case GICXXCustomAction_GICombiner99:{
3731 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3732 // Match Patterns
3733 if(![&](){return Helper.matchBitfieldExtractFromSExtInReg(*State.MIs[0], GIMatchData_info);}()) {
3734 return false;
3735 }
3736 // Apply Patterns
3737 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3738 return true;
3739 }
3740 case GICXXCustomAction_GICombiner100:{
3741 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3742 // Match Patterns
3743 if(![&](){return Helper.matchBitfieldExtractFromAnd(*State.MIs[0], GIMatchData_info);}()) {
3744 return false;
3745 }
3746 // Apply Patterns
3747 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3748 return true;
3749 }
3750 case GICXXCustomAction_GICombiner101:{
3751 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3752 // Match Patterns
3753 if(![&](){return Helper.matchBitfieldExtractFromShr(*State.MIs[0], GIMatchData_info);}()) {
3754 return false;
3755 }
3756 // Apply Patterns
3757 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3758 return true;
3759 }
3760 case GICXXCustomAction_GICombiner102:{
3761 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3762 // Match Patterns
3763 if(![&](){return Helper.matchBitfieldExtractFromShrAnd(*State.MIs[0], GIMatchData_info);}()) {
3764 return false;
3765 }
3766 // Apply Patterns
3767 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3768 return true;
3769 }
3770 case GICXXCustomAction_GICombiner103:{
3771 APInt GIMatchData_matchinfo;
3772 // Match Patterns
3773 if(![&](){return Helper.matchConstantFoldBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3774 return false;
3775 }
3776 // Apply Patterns
3777 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3778 return true;
3779 }
3780 case GICXXCustomAction_GICombiner104:{
3781 ConstantFP* GIMatchData_matchinfo;
3782 // Match Patterns
3783 if(![&](){return Helper.matchConstantFoldFPBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3784 return false;
3785 }
3786 // Apply Patterns
3787 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3788 return true;
3789 }
3790 case GICXXCustomAction_GICombiner105:{
3791 ConstantFP* GIMatchData_matchinfo;
3792 // Match Patterns
3793 if(![&](){return Helper.matchConstantFoldFMA(*State.MIs[0], GIMatchData_matchinfo);}()) {
3794 return false;
3795 }
3796 // Apply Patterns
3797 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3798 return true;
3799 }
3800 case GICXXCustomAction_GICombiner106:{
3801 APInt GIMatchData_matchinfo;
3802 // Match Patterns
3803 if(![&](){return Helper.matchConstantFoldCastOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3804 return false;
3805 }
3806 // Apply Patterns
3807 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3808 return true;
3809 }
3810 case GICXXCustomAction_GICombiner107:{
3811 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3812 // Match Patterns
3813 if(![&](){return Helper.matchConstantFoldUnaryIntOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3814 return false;
3815 }
3816 // Apply Patterns
3817 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3818 return true;
3819 }
3820 case GICXXCustomAction_GICombiner108:{
3821 // Match Patterns
3822 if(![&](){return Helper.matchUMulHToLShr(*State.MIs[0]);}()) {
3823 return false;
3824 }
3825 // Apply Patterns
3826 Helper.applyUMulHToLShr(*State.MIs[0]);
3827 return true;
3828 }
3829 case GICXXCustomAction_GICombiner109:{
3830 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3831 // Match Patterns
3832 if(![&](){return Helper.matchRedundantNegOperands(*State.MIs[0], GIMatchData_matchinfo);}()) {
3833 return false;
3834 }
3835 // Apply Patterns
3836 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3837 return true;
3838 }
3839 case GICXXCustomAction_GICombiner110:{
3840 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3841 // Match Patterns
3842 if(![&](){return Helper.matchAndOrDisjointMask(*State.MIs[0], GIMatchData_info);}()) {
3843 return false;
3844 }
3845 // Apply Patterns
3846 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_info);
3847 return true;
3848 }
3849 case GICXXCustomAction_GICombiner111:{
3850 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3851 // Match Patterns
3852 if(![&](){return Helper.matchCombineFAddFMulToFMadOrFMA(*State.MIs[0],
3853 GIMatchData_info);}()) {
3854 return false;
3855 }
3856 // Apply Patterns
3857 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3858 return true;
3859 }
3860 case GICXXCustomAction_GICombiner112:{
3861 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3862 // Match Patterns
3863 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMA(*State.MIs[0],
3864 GIMatchData_info);}()) {
3865 return false;
3866 }
3867 // Apply Patterns
3868 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3869 return true;
3870 }
3871 case GICXXCustomAction_GICombiner113:{
3872 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3873 // Match Patterns
3874 if(![&](){return Helper.matchCombineFAddFMAFMulToFMadOrFMA(*State.MIs[0],
3875 GIMatchData_info);}()) {
3876 return false;
3877 }
3878 // Apply Patterns
3879 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3880 return true;
3881 }
3882 case GICXXCustomAction_GICombiner114:{
3883 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3884 // Match Patterns
3885 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMAAggressive(
3886 *State.MIs[0], GIMatchData_info);}()) {
3887 return false;
3888 }
3889 // Apply Patterns
3890 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3891 return true;
3892 }
3893 case GICXXCustomAction_GICombiner115:{
3894 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3895 // Match Patterns
3896 if(![&](){return Helper.matchCombineFSubFMulToFMadOrFMA(*State.MIs[0],
3897 GIMatchData_info);}()) {
3898 return false;
3899 }
3900 // Apply Patterns
3901 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3902 return true;
3903 }
3904 case GICXXCustomAction_GICombiner116:{
3905 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3906 // Match Patterns
3907 if(![&](){return Helper.matchCombineFSubFNegFMulToFMadOrFMA(*State.MIs[0],
3908 GIMatchData_info);}()) {
3909 return false;
3910 }
3911 // Apply Patterns
3912 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3913 return true;
3914 }
3915 case GICXXCustomAction_GICombiner117:{
3916 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3917 // Match Patterns
3918 if(![&](){return Helper.matchCombineFSubFpExtFMulToFMadOrFMA(*State.MIs[0],
3919 GIMatchData_info);}()) {
3920 return false;
3921 }
3922 // Apply Patterns
3923 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3924 return true;
3925 }
3926 case GICXXCustomAction_GICombiner118:{
3927 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3928 // Match Patterns
3929 if(![&](){return Helper.matchCombineFSubFpExtFNegFMulToFMadOrFMA(
3930 *State.MIs[0], GIMatchData_info);}()) {
3931 return false;
3932 }
3933 // Apply Patterns
3934 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3935 return true;
3936 }
3937 case GICXXCustomAction_GICombiner119:{
3938 unsigned GIMatchData_select_op_no;
3939 // Match Patterns
3940 if(![&](){return Helper.matchFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);}()) {
3941 return false;
3942 }
3943 // Apply Patterns
3944 Helper.applyFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);
3945 return true;
3946 }
3947 case GICXXCustomAction_GICombiner120:{
3948 // Match Patterns
3949 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(State.MIs[0]->getOperand(2),
3950 /*OrNegative=*/true);}()) {
3951 return false;
3952 }
3953 // Apply Patterns
3954 Helper.applySimplifySRemByPow2(*State.MIs[0]);
3955 return true;
3956 }
3957 case GICXXCustomAction_GICombiner121:{
3958 // Match Patterns
3959 if(![&](){return Helper.matchUDivOrURemByConst(*State.MIs[0]);}()) {
3960 return false;
3961 }
3962 // Apply Patterns
3963 Helper.applyUDivOrURemByConst(*State.MIs[0]);
3964 return true;
3965 }
3966 case GICXXCustomAction_GICombiner122:{
3967 // Match Patterns
3968 if(![&](){return Helper.matchSDivOrSRemByConst(*State.MIs[0]);}()) {
3969 return false;
3970 }
3971 // Apply Patterns
3972 Helper.applySDivOrSRemByConst(*State.MIs[0]);
3973 return true;
3974 }
3975 case GICXXCustomAction_GICombiner123:{
3976 // Match Patterns
3977 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/false);}()) {
3978 return false;
3979 }
3980 // Apply Patterns
3981 Helper.applyUDivByPow2(*State.MIs[0]);
3982 return true;
3983 }
3984 case GICXXCustomAction_GICombiner124:{
3985 // Match Patterns
3986 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/true);}()) {
3987 return false;
3988 }
3989 // Apply Patterns
3990 Helper.applySDivByPow2(*State.MIs[0]);
3991 return true;
3992 }
3993 case GICXXCustomAction_GICombiner125:{
3994 SmallVector<MachineInstr *> GIMatchData_matchinfo;
3995 // Match Patterns
3996 if(![&](){return Helper.matchRepeatedFPDivisor(*State.MIs[0], GIMatchData_matchinfo);}()) {
3997 return false;
3998 }
3999 // Apply Patterns
4000 Helper.applyRepeatedFPDivisor(GIMatchData_matchinfo);
4001 return true;
4002 }
4003 case GICXXCustomAction_GICombiner126:{
4004 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4005 // Match Patterns
4006 if(![&](){return Helper.matchSubAddSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4007 return false;
4008 }
4009 // Apply Patterns
4010 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4011 return true;
4012 }
4013 case GICXXCustomAction_GICombiner127:{
4014 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4015 // Match Patterns
4016 if(![&](){return Helper.matchSimplifySelectToMinMax(*State.MIs[0], GIMatchData_info);}()) {
4017 return false;
4018 }
4019 // Apply Patterns
4020 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4021 return true;
4022 }
4023 case GICXXCustomAction_GICombiner128:{
4024 Register GIMatchData_matchinfo;
4025 // Match Patterns
4026 if(![&](){return Helper.matchFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4027 return false;
4028 }
4029 // Apply Patterns
4030 Helper.applyFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);
4031 return true;
4032 }
4033 case GICXXCustomAction_GICombiner129:{
4034 // Match Patterns
4035 if(![&](){return Helper.matchCommuteConstantToRHS(*State.MIs[0]);}()) {
4036 return false;
4037 }
4038 // Apply Patterns
4039 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
4040 return true;
4041 }
4042 case GICXXCustomAction_GICombiner130:{
4043 // Match Patterns
4044 if(![&](){return Helper.matchCommuteFPConstantToRHS(*State.MIs[0]);}()) {
4045 return false;
4046 }
4047 // Apply Patterns
4048 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
4049 return true;
4050 }
4051 case GICXXCustomAction_GICombiner131:{
4052 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4053 // Match Patterns
4054 if(![&](){return Helper.matchAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
4055 return false;
4056 }
4057 // Apply Patterns
4058 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4059 return true;
4060 }
4061 case GICXXCustomAction_GICombiner132:{
4062 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4063 // Match Patterns
4064 if(![&](){return Helper.matchOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
4065 return false;
4066 }
4067 // Apply Patterns
4068 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4069 return true;
4070 }
4071 case GICXXCustomAction_GICombiner133:{
4072 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4073 // Match Patterns
4074 if(![&](){return Helper.matchSimplifyNegMinMax(*State.MIs[0], GIMatchData_matchinfo);}()) {
4075 return false;
4076 }
4077 // Apply Patterns
4078 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4079 return true;
4080 }
4081 case GICXXCustomAction_GICombiner134:{
4082 SmallVector<Register> GIMatchData_matchinfo;
4083 // Match Patterns
4084 if(![&](){return Helper.matchCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);}()) {
4085 return false;
4086 }
4087 // Apply Patterns
4088 Helper.applyCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);
4089 return true;
4090 }
4091 case GICXXCustomAction_GICombiner135:{
4092 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4093 // Match Patterns
4094 if(![&](){return Helper.matchSextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4095 return false;
4096 }
4097 // Apply Patterns
4098 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4099 return true;
4100 }
4101 case GICXXCustomAction_GICombiner136:{
4102 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4103 // Match Patterns
4104 if(![&](){return Helper.matchZextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4105 return false;
4106 }
4107 // Apply Patterns
4108 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4109 return true;
4110 }
4111 case GICXXCustomAction_GICombiner137:{
4112 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4113 // Match Patterns
4114 if(![&](){return Helper.matchNonNegZext(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4115 return false;
4116 }
4117 // Apply Patterns
4118 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4119 return true;
4120 }
4121 case GICXXCustomAction_GICombiner138:{
4122 SmallVector<Register> GIMatchData_matchinfo;
4123 // Match Patterns
4124 if(![&](){return Helper.matchCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);}()) {
4125 return false;
4126 }
4127 // Apply Patterns
4128 Helper.applyCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);
4129 return true;
4130 }
4131 case GICXXCustomAction_GICombiner139:{
4132 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4133 // Match Patterns
4134 if(![&](){return Helper.matchShuffleUndefRHS(*State.MIs[0], GIMatchData_matchinfo);}()) {
4135 return false;
4136 }
4137 // Apply Patterns
4138 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4139 return true;
4140 }
4141 case GICXXCustomAction_GICombiner140:{
4142 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4143 // Match Patterns
4144 if(![&](){return Helper.matchShuffleDisjointMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
4145 return false;
4146 }
4147 // Apply Patterns
4148 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4149 return true;
4150 }
4151 case GICXXCustomAction_GICombiner141:{
4152 Register GIMatchData_matchinfo;
4153 // Match Patterns
4154 if(![&](){return Helper.matchUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);}()) {
4155 return false;
4156 }
4157 // Apply Patterns
4158 Helper.applyUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);
4159 return true;
4160 }
4161 case GICXXCustomAction_GICombiner142:{
4162 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4163 // Match Patterns
4164 if(![&](){return Helper.matchUnmergeValuesAnyExtBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
4165 return false;
4166 }
4167 // Apply Patterns
4168 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4169 return true;
4170 }
4171 case GICXXCustomAction_GICombiner143:{
4172 SmallVector<Register> GIMatchData_info;
4173 // Match Patterns
4174 if(![&](){return Helper.matchCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);}()) {
4175 return false;
4176 }
4177 // Apply Patterns
4178 Helper.applyCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);
4179 return true;
4180 }
4181 case GICXXCustomAction_GICombiner144:{
4182 Register GIMatchData_src;
4183 // Match Patterns
4184 if(![&](){// Check if first source comes from G_UNMERGE_VALUES.
4185 Register FirstMergeSrc = getRemainingOperands(*State.MIs[0], 1)[0].getReg();
4186 MachineInstr *UnmergeMI = MRI.getVRegDef(FirstMergeSrc);
4187 if (!UnmergeMI || UnmergeMI->getOpcode() != TargetOpcode::G_UNMERGE_VALUES)
4188 return false;
4189
4190 // Check counts match.
4191 unsigned NumMergeSrcs = getRemainingOperands(*State.MIs[0], 1).size();
4192 unsigned NumUnmergeDefs = UnmergeMI->getNumDefs();
4193 if (NumMergeSrcs != NumUnmergeDefs)
4194 return false;
4195
4196 // Verify all merge sources match unmerge defs in order.
4197 for (unsigned I = 0; I < NumMergeSrcs; ++I) {
4198 Register MergeSrc = getRemainingOperands(*State.MIs[0], 1)[I].getReg();
4199 Register UnmergeDef = UnmergeMI->getOperand(I).getReg();
4200
4201 if (MergeSrc != UnmergeDef)
4202 return false;
4203
4204 if (!MRI.hasOneNonDBGUse(MergeSrc))
4205 return false;
4206 }
4207
4208 // Check size compatibility.
4209 GIMatchData_src = UnmergeMI->getOperand(NumUnmergeDefs).getReg();
4210 LLT SrcTy = MRI.getType(GIMatchData_src);
4211 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
4212 if (SrcTy.getSizeInBits() != DstTy.getSizeInBits())
4213 return false;
4214
4215 // Check bitcast legality.
4216 if (SrcTy != DstTy) {
4217 std::array<LLT, 2> Types = {{DstTy, SrcTy}};
4218 LegalityQuery Query(TargetOpcode::G_BITCAST, Types);
4219 if (!Helper.isLegalOrBeforeLegalizer(Query))
4220 return false;
4221 }
4222
4223 return true;}()) {
4224 return false;
4225 }
4226 // Apply Patterns
4227 LLT SrcTy = MRI.getType(GIMatchData_src);
4228 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
4229
4230 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
4231
4232 if (SrcTy == DstTy) {
4233 Helper.replaceRegWith(MRI, State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
4234 } else {
4235 Helper.getBuilder().buildBitcast(State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
4236 }
4237
4238 State.MIs[0]->eraseFromParent();
4239 return true;
4240 }
4241 case GICXXCustomAction_GICombiner145:{
4242 SmallVector<APInt, 8> GIMatchData_info;
4243 // Match Patterns
4244 if(![&](){return Helper.matchCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);}()) {
4245 return false;
4246 }
4247 // Apply Patterns
4248 Helper.applyCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);
4249 return true;
4250 }
4251 case GICXXCustomAction_GICombiner146:{
4252 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4253 // Match Patterns
4254 if(![&](){return Helper.matchCombineUnmergeUndef(*State.MIs[0], GIMatchData_info);}()) {
4255 return false;
4256 }
4257 // Apply Patterns
4258 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4259 return true;
4260 }
4261 case GICXXCustomAction_GICombiner147:{
4262 // Match Patterns
4263 if(![&](){return Helper.matchCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);}()) {
4264 return false;
4265 }
4266 // Apply Patterns
4267 Helper.applyCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);
4268 return true;
4269 }
4270 case GICXXCustomAction_GICombiner148:{
4271 // Match Patterns
4272 if(![&](){return Helper.matchCombineUnmergeZExtToZExt(*State.MIs[0]);}()) {
4273 return false;
4274 }
4275 // Apply Patterns
4276 Helper.applyCombineUnmergeZExtToZExt(*State.MIs[0]);
4277 return true;
4278 }
4279 case GICXXCustomAction_GICombiner149:{
4280 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4281 // Match Patterns
4282 if(![&](){return Helper.matchMergeXAndUndef(*State.MIs[0], GIMatchData_matchinfo);}()) {
4283 return false;
4284 }
4285 // Apply Patterns
4286 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4287 return true;
4288 }
4289 case GICXXCustomAction_GICombiner150:{
4290 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4291 // Match Patterns
4292 if(![&](){return Helper.matchMergeXAndZero(*State.MIs[0], GIMatchData_matchinfo);}()) {
4293 return false;
4294 }
4295 // Apply Patterns
4296 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4297 return true;
4298 }
4299 case GICXXCustomAction_GICombiner151:{
4300 Register GIMatchData_unmergeSrc;
4301 // Match Patterns
4302 if(![&](){return Helper.matchCombineBuildUnmerge(*State.MIs[0], MRI, GIMatchData_unmergeSrc);}()) {
4303 return false;
4304 }
4305 // Apply Patterns
4306 Helper.applyCombineBuildUnmerge(*State.MIs[0], MRI, B, GIMatchData_unmergeSrc);
4307 return true;
4308 }
4309 case GICXXCustomAction_GICombiner152:{
4310 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4311 // Match Patterns
4312 if(![&](){return Helper.matchAddOverflow(*State.MIs[0], GIMatchData_matchinfo);}()) {
4313 return false;
4314 }
4315 // Apply Patterns
4316 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4317 return true;
4318 }
4319 case GICXXCustomAction_GICombiner153:{
4320 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4321 // Match Patterns
4322 if(![&](){return Helper.matchSuboCarryOut(*State.MIs[0], GIMatchData_matchinfo);}()) {
4323 return false;
4324 }
4325 // Apply Patterns
4326 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4327 return true;
4328 }
4329 case GICXXCustomAction_GICombiner154:{
4330 Register GIMatchData_matchinfo;
4331 // Match Patterns
4332 if(![&](){return Helper.matchTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);}()) {
4333 return false;
4334 }
4335 // Apply Patterns
4336 Helper.applyTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);
4337 return true;
4338 }
4339 case GICXXCustomAction_GICombiner155:{
4340 Register GIMatchData_matchinfo;
4341 // Match Patterns
4342 if(![&](){return Helper.matchTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);}()) {
4343 return false;
4344 }
4345 // Apply Patterns
4346 Helper.applyTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);
4347 return true;
4348 }
4349 case GICXXCustomAction_GICombiner156:{
4350 LshrOfTruncOfLshr GIMatchData_matchinfo;
4351 // Match Patterns
4352 if(![&](){return Helper.matchLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo, *State.MIs[2]);}()) {
4353 return false;
4354 }
4355 // Apply Patterns
4356 Helper.applyLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo);
4357 return true;
4358 }
4359 case GICXXCustomAction_GICombiner157:{
4360 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4361 // Match Patterns
4362 if(![&](){return Helper.matchCtls(*State.MIs[0], GIMatchData_matchinfo);}()) {
4363 return false;
4364 }
4365 // Apply Patterns
4366 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4367 return true;
4368 }
4369 case GICXXCustomAction_GICombiner158:{
4370 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4371 // Match Patterns
4372 if(![&](){return Helper.matchBinopWithNeg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4373 return false;
4374 }
4375 // Apply Patterns
4376 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4377 return true;
4378 }
4379 case GICXXCustomAction_GICombiner159:{
4380 SmallVector<Register> GIMatchData_matchinfo;
4381 // Match Patterns
4382 if(![&](){return Helper.matchCombineShuffleVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
4383 return false;
4384 }
4385 // Apply Patterns
4386 Helper.applyCombineShuffleVector(*State.MIs[0], GIMatchData_matchinfo);
4387 return true;
4388 }
4389 case GICXXCustomAction_GICombiner160:{
4390 Register GIMatchData_matchinfo;
4391 // Match Patterns
4392 if(![&](){return matchICmpRedundantTrunc(*State.MIs[0], MRI, Helper.getValueTracking(), GIMatchData_matchinfo);}()) {
4393 return false;
4394 }
4395 // Apply Patterns
4396 applyICmpRedundantTrunc(*State.MIs[0], MRI, B, Observer, GIMatchData_matchinfo);
4397 return true;
4398 }
4399 case GICXXCustomAction_GICombiner161:{
4400 std::pair<uint64_t, uint64_t> GIMatchData_matchinfo;
4401 // Match Patterns
4402 if(![&](){return matchFoldGlobalOffset(*State.MIs[0], MRI, GIMatchData_matchinfo);}()) {
4403 return false;
4404 }
4405 // Apply Patterns
4406 applyFoldGlobalOffset(*State.MIs[0], MRI, B, Observer, GIMatchData_matchinfo);
4407 return true;
4408 }
4409 case GICXXCustomAction_GICombiner162:{
4410 std::tuple<Register, Register, bool> GIMatchData_matchinfo;
4411 // Match Patterns
4412 if(![&](){return matchExtAddvToDotAddv(*State.MIs[0], MRI, STI, GIMatchData_matchinfo);}()) {
4413 return false;
4414 }
4415 // Apply Patterns
4416 applyExtAddvToDotAddv(*State.MIs[0], MRI, B, Observer, STI, GIMatchData_matchinfo);
4417 return true;
4418 }
4419 case GICXXCustomAction_GICombiner163:{
4420 std::pair<Register, bool> GIMatchData_matchinfo;
4421 // Match Patterns
4422 if(![&](){return matchExtUaddvToUaddlv(*State.MIs[0], MRI, GIMatchData_matchinfo);}()) {
4423 return false;
4424 }
4425 // Apply Patterns
4426 applyExtUaddvToUaddlv(*State.MIs[0], MRI, B, Observer, GIMatchData_matchinfo);
4427 return true;
4428 }
4429 case GICXXCustomAction_GICombiner164:{
4430 // Match Patterns
4431 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());}()) {
4432 return false;
4433 }
4434 // Apply Patterns
4435 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());
4436 return true;
4437 }
4438 case GICXXCustomAction_GICombiner165:{
4439 std::pair<Register, Register> GIMatchData_matchinfo;
4440 // Match Patterns
4441 if(![&](){return matchSimplifyUADDO(*State.MIs[0], MRI, GIMatchData_matchinfo);}()) {
4442 return false;
4443 }
4444 // Apply Patterns
4445 applySimplifyUADDO(*State.MIs[0], MRI, B, Observer, Helper,
4446 GIMatchData_matchinfo);
4447 return true;
4448 }
4449 case GICXXCustomAction_GICombiner166:{
4450 MemCpyFamilyLoweringInfo GIMatchData_matchinfo;
4451 // Match Patterns
4452 if(![&](){return Helper.matchCombineMemCpyFamily(*State.MIs[0], GIMatchData_matchinfo);}()) {
4453 return false;
4454 }
4455 // Apply Patterns
4456 Helper.applyCombineMemCpyFamily(*State.MIs[0], GIMatchData_matchinfo);
4457 return true;
4458 }
4459 case GICXXCustomAction_GICombiner167:{
4460 MemCpyFamilyLoweringInfo GIMatchData_matchinfo;
4461 // Match Patterns
4462 if(![&](){return Helper.matchCombineMemCpyFamily(*State.MIs[0], GIMatchData_matchinfo,
4463 CInfo.EnableOpt ? 0 : 32);}()) {
4464 return false;
4465 }
4466 // Apply Patterns
4467 Helper.applyCombineMemCpyFamily(*State.MIs[0], GIMatchData_matchinfo);
4468 return true;
4469 }
4470 case GICXXCustomAction_GICombiner168:{
4471 // Match Patterns
4472 if(![&](){return llvm::AArch64GISelUtils::matchEmitBZero(*State.MIs[0], MRI,
4473 Libcalls,
4474 CInfo.EnableMinSize);}()) {
4475 return false;
4476 }
4477 // Apply Patterns
4478 llvm::AArch64GISelUtils::applyEmitBZero(*State.MIs[0], B);
4479 return true;
4480 }
4481 }
4482 llvm_unreachable("Unknown Apply Action");
4483}
4484#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
4485#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((Val) >> 8)
4486#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24)
4487#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)
4488#else
4489#define GIMT_Encode2(Val) uint8_t((Val) >> 8), uint8_t(Val)
4490#define GIMT_Encode4(Val) uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
4491#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)
4492#endif
4493const uint8_t *AArch64PreLegalizerCombinerImpl::getMatchTable() const {
4494 constexpr static uint8_t MatchTable0[] = {
4495 /* 0 */ GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(20), GIMT_Encode2(321), /*)*//*default:*//*Label 120*/ GIMT_Encode4(10491),
4496 /* 10 */ /*TargetOpcode::COPY*//*Label 0*/ GIMT_Encode4(1214), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4497 /* 150 */ /*TargetOpcode::G_ADD*//*Label 1*/ GIMT_Encode4(1226),
4498 /* 154 */ /*TargetOpcode::G_SUB*//*Label 2*/ GIMT_Encode4(2017),
4499 /* 158 */ /*TargetOpcode::G_MUL*//*Label 3*/ GIMT_Encode4(3056),
4500 /* 162 */ /*TargetOpcode::G_SDIV*//*Label 4*/ GIMT_Encode4(3320),
4501 /* 166 */ /*TargetOpcode::G_UDIV*//*Label 5*/ GIMT_Encode4(3422),
4502 /* 170 */ /*TargetOpcode::G_SREM*//*Label 6*/ GIMT_Encode4(3535),
4503 /* 174 */ /*TargetOpcode::G_UREM*//*Label 7*/ GIMT_Encode4(3631), GIMT_Encode4(0), GIMT_Encode4(0),
4504 /* 186 */ /*TargetOpcode::G_AND*//*Label 8*/ GIMT_Encode4(3738),
4505 /* 190 */ /*TargetOpcode::G_OR*//*Label 9*/ GIMT_Encode4(4165),
4506 /* 194 */ /*TargetOpcode::G_XOR*//*Label 10*/ GIMT_Encode4(4880), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4507 /* 226 */ /*TargetOpcode::G_PHI*//*Label 11*/ GIMT_Encode4(5091), GIMT_Encode4(0),
4508 /* 234 */ /*TargetOpcode::G_GLOBAL_VALUE*//*Label 12*/ GIMT_Encode4(5103), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4509 /* 250 */ /*TargetOpcode::G_UNMERGE_VALUES*//*Label 13*/ GIMT_Encode4(5115), GIMT_Encode4(0),
4510 /* 258 */ /*TargetOpcode::G_MERGE_VALUES*//*Label 14*/ GIMT_Encode4(5182),
4511 /* 262 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 15*/ GIMT_Encode4(5259),
4512 /* 266 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 16*/ GIMT_Encode4(5324),
4513 /* 270 */ /*TargetOpcode::G_CONCAT_VECTORS*//*Label 17*/ GIMT_Encode4(5336),
4514 /* 274 */ /*TargetOpcode::G_PTRTOINT*//*Label 18*/ GIMT_Encode4(5348),
4515 /* 278 */ /*TargetOpcode::G_INTTOPTR*//*Label 19*/ GIMT_Encode4(5391),
4516 /* 282 */ /*TargetOpcode::G_BITCAST*//*Label 20*/ GIMT_Encode4(5424),
4517 /* 286 */ /*TargetOpcode::G_FREEZE*//*Label 21*/ GIMT_Encode4(5499), GIMT_Encode4(0), GIMT_Encode4(0),
4518 /* 298 */ /*TargetOpcode::G_INTRINSIC_TRUNC*//*Label 22*/ GIMT_Encode4(5563),
4519 /* 302 */ /*TargetOpcode::G_INTRINSIC_ROUND*//*Label 23*/ GIMT_Encode4(5585), GIMT_Encode4(0), GIMT_Encode4(0),
4520 /* 314 */ /*TargetOpcode::G_INTRINSIC_ROUNDEVEN*//*Label 24*/ GIMT_Encode4(5607), GIMT_Encode4(0), GIMT_Encode4(0),
4521 /* 326 */ /*TargetOpcode::G_LOAD*//*Label 25*/ GIMT_Encode4(5629),
4522 /* 330 */ /*TargetOpcode::G_SEXTLOAD*//*Label 26*/ GIMT_Encode4(5641),
4523 /* 334 */ /*TargetOpcode::G_ZEXTLOAD*//*Label 27*/ GIMT_Encode4(5653), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4524 /* 354 */ /*TargetOpcode::G_STORE*//*Label 28*/ GIMT_Encode4(5665), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4525 /* 502 */ /*TargetOpcode::G_ANYEXT*//*Label 29*/ GIMT_Encode4(5677),
4526 /* 506 */ /*TargetOpcode::G_TRUNC*//*Label 30*/ GIMT_Encode4(5805), GIMT_Encode4(0), GIMT_Encode4(0),
4527 /* 518 */ /*TargetOpcode::G_TRUNC_USAT_U*//*Label 31*/ GIMT_Encode4(6217), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4528 /* 538 */ /*TargetOpcode::G_SEXT*//*Label 32*/ GIMT_Encode4(6250),
4529 /* 542 */ /*TargetOpcode::G_SEXT_INREG*//*Label 33*/ GIMT_Encode4(6325),
4530 /* 546 */ /*TargetOpcode::G_ZEXT*//*Label 34*/ GIMT_Encode4(6391),
4531 /* 550 */ /*TargetOpcode::G_SHL*//*Label 35*/ GIMT_Encode4(6521),
4532 /* 554 */ /*TargetOpcode::G_LSHR*//*Label 36*/ GIMT_Encode4(6719),
4533 /* 558 */ /*TargetOpcode::G_ASHR*//*Label 37*/ GIMT_Encode4(7066),
4534 /* 562 */ /*TargetOpcode::G_FSHL*//*Label 38*/ GIMT_Encode4(7395),
4535 /* 566 */ /*TargetOpcode::G_FSHR*//*Label 39*/ GIMT_Encode4(7438),
4536 /* 570 */ /*TargetOpcode::G_ROTR*//*Label 40*/ GIMT_Encode4(7481),
4537 /* 574 */ /*TargetOpcode::G_ROTL*//*Label 41*/ GIMT_Encode4(7505),
4538 /* 578 */ /*TargetOpcode::G_ICMP*//*Label 42*/ GIMT_Encode4(7529),
4539 /* 582 */ /*TargetOpcode::G_FCMP*//*Label 43*/ GIMT_Encode4(7585), GIMT_Encode4(0), GIMT_Encode4(0),
4540 /* 594 */ /*TargetOpcode::G_SELECT*//*Label 44*/ GIMT_Encode4(7597),
4541 /* 598 */ /*TargetOpcode::G_UADDO*//*Label 45*/ GIMT_Encode4(7857),
4542 /* 602 */ /*TargetOpcode::G_UADDE*//*Label 46*/ GIMT_Encode4(7891),
4543 /* 606 */ /*TargetOpcode::G_USUBO*//*Label 47*/ GIMT_Encode4(7903),
4544 /* 610 */ /*TargetOpcode::G_USUBE*//*Label 48*/ GIMT_Encode4(7915),
4545 /* 614 */ /*TargetOpcode::G_SADDO*//*Label 49*/ GIMT_Encode4(7927),
4546 /* 618 */ /*TargetOpcode::G_SADDE*//*Label 50*/ GIMT_Encode4(7950),
4547 /* 622 */ /*TargetOpcode::G_SSUBO*//*Label 51*/ GIMT_Encode4(7962),
4548 /* 626 */ /*TargetOpcode::G_SSUBE*//*Label 52*/ GIMT_Encode4(7974),
4549 /* 630 */ /*TargetOpcode::G_UMULO*//*Label 53*/ GIMT_Encode4(7986),
4550 /* 634 */ /*TargetOpcode::G_SMULO*//*Label 54*/ GIMT_Encode4(8020),
4551 /* 638 */ /*TargetOpcode::G_UMULH*//*Label 55*/ GIMT_Encode4(8054),
4552 /* 642 */ /*TargetOpcode::G_SMULH*//*Label 56*/ GIMT_Encode4(8077),
4553 /* 646 */ /*TargetOpcode::G_UADDSAT*//*Label 57*/ GIMT_Encode4(8089),
4554 /* 650 */ /*TargetOpcode::G_SADDSAT*//*Label 58*/ GIMT_Encode4(8101), GIMT_Encode4(0), GIMT_Encode4(0),
4555 /* 662 */ /*TargetOpcode::G_USHLSAT*//*Label 59*/ GIMT_Encode4(8113),
4556 /* 666 */ /*TargetOpcode::G_SSHLSAT*//*Label 60*/ GIMT_Encode4(8136),
4557 /* 670 */ /*TargetOpcode::G_SMULFIX*//*Label 61*/ GIMT_Encode4(8159),
4558 /* 674 */ /*TargetOpcode::G_UMULFIX*//*Label 62*/ GIMT_Encode4(8171),
4559 /* 678 */ /*TargetOpcode::G_SMULFIXSAT*//*Label 63*/ GIMT_Encode4(8183),
4560 /* 682 */ /*TargetOpcode::G_UMULFIXSAT*//*Label 64*/ GIMT_Encode4(8195), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4561 /* 702 */ /*TargetOpcode::G_FADD*//*Label 65*/ GIMT_Encode4(8207),
4562 /* 706 */ /*TargetOpcode::G_FSUB*//*Label 66*/ GIMT_Encode4(8348),
4563 /* 710 */ /*TargetOpcode::G_FMUL*//*Label 67*/ GIMT_Encode4(8437),
4564 /* 714 */ /*TargetOpcode::G_FMA*//*Label 68*/ GIMT_Encode4(8525),
4565 /* 718 */ /*TargetOpcode::G_FMAD*//*Label 69*/ GIMT_Encode4(8548),
4566 /* 722 */ /*TargetOpcode::G_FDIV*//*Label 70*/ GIMT_Encode4(8571),
4567 /* 726 */ /*TargetOpcode::G_FREM*//*Label 71*/ GIMT_Encode4(8616), GIMT_Encode4(0), GIMT_Encode4(0),
4568 /* 738 */ /*TargetOpcode::G_FPOWI*//*Label 72*/ GIMT_Encode4(8639), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4569 /* 758 */ /*TargetOpcode::G_FLOG2*//*Label 73*/ GIMT_Encode4(8661), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4570 /* 774 */ /*TargetOpcode::G_FNEG*//*Label 74*/ GIMT_Encode4(8683),
4571 /* 778 */ /*TargetOpcode::G_FPEXT*//*Label 75*/ GIMT_Encode4(8734),
4572 /* 782 */ /*TargetOpcode::G_FPTRUNC*//*Label 76*/ GIMT_Encode4(8756),
4573 /* 786 */ /*TargetOpcode::G_FPTOSI*//*Label 77*/ GIMT_Encode4(8799),
4574 /* 790 */ /*TargetOpcode::G_FPTOUI*//*Label 78*/ GIMT_Encode4(8821),
4575 /* 794 */ /*TargetOpcode::G_SITOFP*//*Label 79*/ GIMT_Encode4(8843),
4576 /* 798 */ /*TargetOpcode::G_UITOFP*//*Label 80*/ GIMT_Encode4(8870), GIMT_Encode4(0), GIMT_Encode4(0),
4577 /* 810 */ /*TargetOpcode::G_FABS*//*Label 81*/ GIMT_Encode4(8897),
4578 /* 814 */ /*TargetOpcode::G_FCOPYSIGN*//*Label 82*/ GIMT_Encode4(8976), GIMT_Encode4(0),
4579 /* 822 */ /*TargetOpcode::G_FCANONICALIZE*//*Label 83*/ GIMT_Encode4(8988),
4580 /* 826 */ /*TargetOpcode::G_FMINNUM*//*Label 84*/ GIMT_Encode4(9018),
4581 /* 830 */ /*TargetOpcode::G_FMAXNUM*//*Label 85*/ GIMT_Encode4(9063),
4582 /* 834 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 86*/ GIMT_Encode4(9108),
4583 /* 838 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 87*/ GIMT_Encode4(9120),
4584 /* 842 */ /*TargetOpcode::G_FMINIMUM*//*Label 88*/ GIMT_Encode4(9132),
4585 /* 846 */ /*TargetOpcode::G_FMAXIMUM*//*Label 89*/ GIMT_Encode4(9177),
4586 /* 850 */ /*TargetOpcode::G_FMINIMUMNUM*//*Label 90*/ GIMT_Encode4(9222),
4587 /* 854 */ /*TargetOpcode::G_FMAXIMUMNUM*//*Label 91*/ GIMT_Encode4(9234), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4588 /* 890 */ /*TargetOpcode::G_PTR_ADD*//*Label 92*/ GIMT_Encode4(9246), GIMT_Encode4(0),
4589 /* 898 */ /*TargetOpcode::G_SMIN*//*Label 93*/ GIMT_Encode4(9336),
4590 /* 902 */ /*TargetOpcode::G_SMAX*//*Label 94*/ GIMT_Encode4(9370),
4591 /* 906 */ /*TargetOpcode::G_UMIN*//*Label 95*/ GIMT_Encode4(9404),
4592 /* 910 */ /*TargetOpcode::G_UMAX*//*Label 96*/ GIMT_Encode4(9438),
4593 /* 914 */ /*TargetOpcode::G_ABS*//*Label 97*/ GIMT_Encode4(9472), GIMT_Encode4(0), GIMT_Encode4(0),
4594 /* 926 */ /*TargetOpcode::G_BR*//*Label 98*/ GIMT_Encode4(9495), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4595 /* 946 */ /*TargetOpcode::G_INSERT_VECTOR_ELT*//*Label 99*/ GIMT_Encode4(9507),
4596 /* 950 */ /*TargetOpcode::G_EXTRACT_VECTOR_ELT*//*Label 100*/ GIMT_Encode4(9637),
4597 /* 954 */ /*TargetOpcode::G_SHUFFLE_VECTOR*//*Label 101*/ GIMT_Encode4(10014), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4598 /* 970 */ /*TargetOpcode::G_CTTZ*//*Label 102*/ GIMT_Encode4(10091),
4599 /* 974 */ /*TargetOpcode::G_CTTZ_ZERO_POISON*//*Label 103*/ GIMT_Encode4(10103),
4600 /* 978 */ /*TargetOpcode::G_CTLZ*//*Label 104*/ GIMT_Encode4(10115),
4601 /* 982 */ /*TargetOpcode::G_CTLZ_ZERO_POISON*//*Label 105*/ GIMT_Encode4(10138), GIMT_Encode4(0),
4602 /* 990 */ /*TargetOpcode::G_CTPOP*//*Label 106*/ GIMT_Encode4(10161),
4603 /* 994 */ /*TargetOpcode::G_BSWAP*//*Label 107*/ GIMT_Encode4(10173),
4604 /* 998 */ /*TargetOpcode::G_BITREVERSE*//*Label 108*/ GIMT_Encode4(10185), GIMT_Encode4(0),
4605 /* 1006 */ /*TargetOpcode::G_FCEIL*//*Label 109*/ GIMT_Encode4(10285), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4606 /* 1054 */ /*TargetOpcode::G_FSQRT*//*Label 110*/ GIMT_Encode4(10307),
4607 /* 1058 */ /*TargetOpcode::G_FFLOOR*//*Label 111*/ GIMT_Encode4(10329),
4608 /* 1062 */ /*TargetOpcode::G_FRINT*//*Label 112*/ GIMT_Encode4(10351),
4609 /* 1066 */ /*TargetOpcode::G_FNEARBYINT*//*Label 113*/ GIMT_Encode4(10373), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4610 /* 1142 */ /*TargetOpcode::G_MEMCPY*//*Label 114*/ GIMT_Encode4(10395),
4611 /* 1146 */ /*TargetOpcode::G_MEMCPY_INLINE*//*Label 115*/ GIMT_Encode4(10407),
4612 /* 1150 */ /*TargetOpcode::G_MEMMOVE*//*Label 116*/ GIMT_Encode4(10419),
4613 /* 1154 */ /*TargetOpcode::G_MEMSET*//*Label 117*/ GIMT_Encode4(10431), GIMT_Encode4(0),
4614 /* 1162 */ /*TargetOpcode::G_MEMSET_INLINE*//*Label 118*/ GIMT_Encode4(10454), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4615 /* 1210 */ /*TargetOpcode::G_VECREDUCE_ADD*//*Label 119*/ GIMT_Encode4(10466),
4616 /* 1214 */ // Label 0: @1214
4617 /* 1214 */ GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(1225), // Rule ID 19 //
4618 /* 1219 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
4619 /* 1222 */ // MIs[0] d
4620 /* 1222 */ // No operand predicates
4621 /* 1222 */ // MIs[0] s
4622 /* 1222 */ // No operand predicates
4623 /* 1222 */ // Combiner Rule #19: copy_prop
4624 /* 1222 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
4625 /* 1225 */ // Label 121: @1225
4626 /* 1225 */ GIM_Reject,
4627 /* 1226 */ // Label 1: @1226
4628 /* 1226 */ GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(1237), // Rule ID 22 //
4629 /* 1231 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
4630 /* 1234 */ // Combiner Rule #22: add_p2i_to_ptradd; wip_match_opcode 'G_ADD'
4631 /* 1234 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
4632 /* 1237 */ // Label 122: @1237
4633 /* 1237 */ GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(1248), // Rule ID 100 //
4634 /* 1242 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
4635 /* 1245 */ // Combiner Rule #84: propagate_undef_any_op; wip_match_opcode 'G_ADD'
4636 /* 1245 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
4637 /* 1248 */ // Label 123: @1248
4638 /* 1248 */ GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(1259), // Rule ID 152 //
4639 /* 1253 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
4640 /* 1256 */ // Combiner Rule #112: simplify_add_to_sub; wip_match_opcode 'G_ADD'
4641 /* 1256 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner53),
4642 /* 1259 */ // Label 124: @1259
4643 /* 1259 */ GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(1270), // Rule ID 256 //
4644 /* 1264 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
4645 /* 1267 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_ADD'
4646 /* 1267 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4647 /* 1270 */ // Label 125: @1270
4648 /* 1270 */ GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(1281), // Rule ID 316 //
4649 /* 1275 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
4650 /* 1278 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_ADD'
4651 /* 1278 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
4652 /* 1281 */ // Label 126: @1281
4653 /* 1281 */ GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(1292), // Rule ID 353 //
4654 /* 1286 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
4655 /* 1289 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_ADD'
4656 /* 1289 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
4657 /* 1292 */ // Label 127: @1292
4658 /* 1292 */ GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(1380), // Rule ID 419 //
4659 /* 1297 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule252Enabled),
4660 /* 1300 */ // MIs[0] dst
4661 /* 1300 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4662 /* 1304 */ // MIs[0] __add_shift_match_0.shl_neg
4663 /* 1304 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4664 /* 1308 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
4665 /* 1312 */ // MIs[1] __add_shift_match_0.neg_y
4666 /* 1312 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4667 /* 1316 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4668 /* 1320 */ // MIs[2] __add_shift_match_0.zero
4669 /* 1320 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
4670 /* 1324 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4671 /* 1328 */ // MIs[3] Operand 1
4672 /* 1328 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
4673 /* 1339 */ // MIs[2] y
4674 /* 1339 */ // No operand predicates
4675 /* 1339 */ // MIs[1] n
4676 /* 1339 */ // No operand predicates
4677 /* 1339 */ // MIs[0] x
4678 /* 1339 */ // No operand predicates
4679 /* 1339 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner18),
4680 /* 1343 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4681 /* 1345 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4682 /* 1348 */ // Combiner Rule #252: add_shift @ [__add_shift_match_0[1]]
4683 /* 1348 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
4684 /* 1351 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4685 /* 1356 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
4686 /* 1360 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
4687 /* 1364 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4688 /* 1368 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4689 /* 1372 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // x
4690 /* 1376 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4691 /* 1379 */ GIR_EraseRootFromParent_Done,
4692 /* 1380 */ // Label 128: @1380
4693 /* 1380 */ GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(1468), // Rule ID 418 //
4694 /* 1385 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule252Enabled),
4695 /* 1388 */ // MIs[0] dst
4696 /* 1388 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4697 /* 1392 */ // MIs[0] x
4698 /* 1392 */ // No operand predicates
4699 /* 1392 */ // MIs[0] __add_shift_match_0.shl_neg
4700 /* 1392 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4701 /* 1396 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
4702 /* 1400 */ // MIs[1] __add_shift_match_0.neg_y
4703 /* 1400 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4704 /* 1404 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4705 /* 1408 */ // MIs[2] __add_shift_match_0.zero
4706 /* 1408 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
4707 /* 1412 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4708 /* 1416 */ // MIs[3] Operand 1
4709 /* 1416 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
4710 /* 1427 */ // MIs[2] y
4711 /* 1427 */ // No operand predicates
4712 /* 1427 */ // MIs[1] n
4713 /* 1427 */ // No operand predicates
4714 /* 1427 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner17),
4715 /* 1431 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4716 /* 1433 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4717 /* 1436 */ // Combiner Rule #252: add_shift @ [__add_shift_match_0[0]]
4718 /* 1436 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
4719 /* 1439 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4720 /* 1444 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
4721 /* 1448 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
4722 /* 1452 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4723 /* 1456 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4724 /* 1460 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // x
4725 /* 1464 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4726 /* 1467 */ GIR_EraseRootFromParent_Done,
4727 /* 1468 */ // Label 129: @1468
4728 /* 1468 */ GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(1502), // Rule ID 2 //
4729 /* 1473 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
4730 /* 1476 */ // MIs[0] root
4731 /* 1476 */ // No operand predicates
4732 /* 1476 */ // MIs[0] sub
4733 /* 1476 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4734 /* 1480 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4735 /* 1484 */ // MIs[1] Operand 1
4736 /* 1484 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
4737 /* 1488 */ // MIs[1] A
4738 /* 1488 */ // No operand predicates
4739 /* 1488 */ // MIs[0] B
4740 /* 1488 */ // No operand predicates
4741 /* 1488 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4742 /* 1490 */ // Combiner Rule #2: ZeroMinusAPlusB
4743 /* 1490 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4744 /* 1493 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4745 /* 1495 */ GIR_RootToRootCopy, /*OpIdx*/2, // B
4746 /* 1497 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // A
4747 /* 1501 */ GIR_EraseRootFromParent_Done,
4748 /* 1502 */ // Label 130: @1502
4749 /* 1502 */ GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(1539), // Rule ID 18 //
4750 /* 1507 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
4751 /* 1510 */ // MIs[0] root
4752 /* 1510 */ // No operand predicates
4753 /* 1510 */ // MIs[0] sub
4754 /* 1510 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4755 /* 1514 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4756 /* 1518 */ // MIs[1] A
4757 /* 1518 */ // No operand predicates
4758 /* 1518 */ // MIs[1] c1
4759 /* 1518 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4760 /* 1522 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4761 /* 1526 */ // MIs[2] imm1
4762 /* 1526 */ // No operand predicates
4763 /* 1526 */ // MIs[0] c2
4764 /* 1526 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4765 /* 1530 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4766 /* 1534 */ // MIs[3] imm2
4767 /* 1534 */ // No operand predicates
4768 /* 1534 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4769 /* 1536 */ // Combiner Rule #18: AMinusC1PlusC2
4770 /* 1536 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
4771 /* 1539 */ // Label 131: @1539
4772 /* 1539 */ GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(1573), // Rule ID 5 //
4773 /* 1544 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
4774 /* 1547 */ // MIs[0] root
4775 /* 1547 */ // No operand predicates
4776 /* 1547 */ // MIs[0] sub
4777 /* 1547 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4778 /* 1551 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4779 /* 1555 */ // MIs[1] B
4780 /* 1555 */ // No operand predicates
4781 /* 1555 */ // MIs[1] A
4782 /* 1555 */ // No operand predicates
4783 /* 1555 */ // MIs[0] A
4784 /* 1555 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
4785 /* 1560 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4786 /* 1565 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4787 /* 1567 */ // Combiner Rule #5: BMinusAPlusA
4788 /* 1567 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4789 /* 1572 */ GIR_EraseRootFromParent_Done,
4790 /* 1573 */ // Label 132: @1573
4791 /* 1573 */ GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(1607), // Rule ID 140 //
4792 /* 1578 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
4793 /* 1581 */ // MIs[0] dst
4794 /* 1581 */ // No operand predicates
4795 /* 1581 */ // MIs[0] __add_sub_reg_match_0.tmp
4796 /* 1581 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4797 /* 1585 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4798 /* 1589 */ // MIs[1] src
4799 /* 1589 */ // No operand predicates
4800 /* 1589 */ // MIs[1] __add_sub_reg_match_0.x
4801 /* 1589 */ // No operand predicates
4802 /* 1589 */ // MIs[0] __add_sub_reg_match_0.x
4803 /* 1589 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
4804 /* 1594 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4805 /* 1599 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4806 /* 1601 */ // Combiner Rule #101: add_sub_reg @ [__add_sub_reg_match_0[1]]
4807 /* 1601 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4808 /* 1606 */ GIR_EraseRootFromParent_Done,
4809 /* 1607 */ // Label 133: @1607
4810 /* 1607 */ GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(1652), // Rule ID 7 //
4811 /* 1612 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
4812 /* 1615 */ // MIs[0] root
4813 /* 1615 */ // No operand predicates
4814 /* 1615 */ // MIs[0] sub1
4815 /* 1615 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4816 /* 1619 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4817 /* 1623 */ // MIs[1] A
4818 /* 1623 */ // No operand predicates
4819 /* 1623 */ // MIs[1] B
4820 /* 1623 */ // No operand predicates
4821 /* 1623 */ // MIs[0] sub2
4822 /* 1623 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4823 /* 1627 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4824 /* 1631 */ // MIs[2] B
4825 /* 1631 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
4826 /* 1636 */ // MIs[2] C
4827 /* 1636 */ // No operand predicates
4828 /* 1636 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4829 /* 1638 */ // Combiner Rule #7: AMinusBPlusBMinusC
4830 /* 1638 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4831 /* 1641 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4832 /* 1643 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
4833 /* 1647 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
4834 /* 1651 */ GIR_EraseRootFromParent_Done,
4835 /* 1652 */ // Label 134: @1652
4836 /* 1652 */ GIM_Try, /*On fail goto*//*Label 135*/ GIMT_Encode4(1697), // Rule ID 6 //
4837 /* 1657 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
4838 /* 1660 */ // MIs[0] root
4839 /* 1660 */ // No operand predicates
4840 /* 1660 */ // MIs[0] sub1
4841 /* 1660 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4842 /* 1664 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4843 /* 1668 */ // MIs[1] A
4844 /* 1668 */ // No operand predicates
4845 /* 1668 */ // MIs[1] B
4846 /* 1668 */ // No operand predicates
4847 /* 1668 */ // MIs[0] sub2
4848 /* 1668 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4849 /* 1672 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4850 /* 1676 */ // MIs[2] C
4851 /* 1676 */ // No operand predicates
4852 /* 1676 */ // MIs[2] A
4853 /* 1676 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
4854 /* 1681 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4855 /* 1683 */ // Combiner Rule #6: AMinusBPlusCMinusA
4856 /* 1683 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4857 /* 1686 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4858 /* 1688 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
4859 /* 1692 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
4860 /* 1696 */ GIR_EraseRootFromParent_Done,
4861 /* 1697 */ // Label 135: @1697
4862 /* 1697 */ GIM_Try, /*On fail goto*//*Label 136*/ GIMT_Encode4(1726), // Rule ID 446 //
4863 /* 1702 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule274Enabled),
4864 /* 1705 */ // MIs[0] dst
4865 /* 1705 */ // No operand predicates
4866 /* 1705 */ // MIs[0] ext1
4867 /* 1705 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4868 /* 1709 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
4869 /* 1713 */ // MIs[1] src1
4870 /* 1713 */ // No operand predicates
4871 /* 1713 */ // MIs[0] ext2
4872 /* 1713 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4873 /* 1717 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
4874 /* 1721 */ // MIs[2] src2
4875 /* 1721 */ // No operand predicates
4876 /* 1721 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4877 /* 1723 */ // Combiner Rule #274: push_add_through_sext
4878 /* 1723 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner164),
4879 /* 1726 */ // Label 136: @1726
4880 /* 1726 */ GIM_Try, /*On fail goto*//*Label 137*/ GIMT_Encode4(1761), // Rule ID 45 //
4881 /* 1731 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
4882 /* 1734 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
4883 /* 1740 */ // MIs[0] root
4884 /* 1740 */ // No operand predicates
4885 /* 1740 */ // MIs[0] left
4886 /* 1740 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4887 /* 1744 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
4888 /* 1748 */ // MIs[1] imm1
4889 /* 1748 */ // No operand predicates
4890 /* 1748 */ // MIs[0] right
4891 /* 1748 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4892 /* 1752 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_VSCALE),
4893 /* 1756 */ // MIs[2] imm2
4894 /* 1756 */ // No operand predicates
4895 /* 1756 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4896 /* 1758 */ // Combiner Rule #43: add_of_vscale
4897 /* 1758 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
4898 /* 1761 */ // Label 137: @1761
4899 /* 1761 */ GIM_Try, /*On fail goto*//*Label 138*/ GIMT_Encode4(1790), // Rule ID 443 //
4900 /* 1766 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule271Enabled),
4901 /* 1769 */ // MIs[0] dst
4902 /* 1769 */ // No operand predicates
4903 /* 1769 */ // MIs[0] ext1
4904 /* 1769 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4905 /* 1773 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
4906 /* 1777 */ // MIs[1] src1
4907 /* 1777 */ // No operand predicates
4908 /* 1777 */ // MIs[0] ext2
4909 /* 1777 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4910 /* 1781 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
4911 /* 1785 */ // MIs[2] src2
4912 /* 1785 */ // No operand predicates
4913 /* 1785 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4914 /* 1787 */ // Combiner Rule #271: push_add_through_zext
4915 /* 1787 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner164),
4916 /* 1790 */ // Label 138: @1790
4917 /* 1790 */ GIM_Try, /*On fail goto*//*Label 139*/ GIMT_Encode4(1824), // Rule ID 3 //
4918 /* 1795 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
4919 /* 1798 */ // MIs[0] root
4920 /* 1798 */ // No operand predicates
4921 /* 1798 */ // MIs[0] A
4922 /* 1798 */ // No operand predicates
4923 /* 1798 */ // MIs[0] sub
4924 /* 1798 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4925 /* 1802 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4926 /* 1806 */ // MIs[1] Operand 1
4927 /* 1806 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
4928 /* 1810 */ // MIs[1] B
4929 /* 1810 */ // No operand predicates
4930 /* 1810 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4931 /* 1812 */ // Combiner Rule #3: APlusZeroMinusB
4932 /* 1812 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4933 /* 1815 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4934 /* 1817 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
4935 /* 1819 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
4936 /* 1823 */ GIR_EraseRootFromParent_Done,
4937 /* 1824 */ // Label 139: @1824
4938 /* 1824 */ GIM_Try, /*On fail goto*//*Label 140*/ GIMT_Encode4(1858), // Rule ID 4 //
4939 /* 1829 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
4940 /* 1832 */ // MIs[0] root
4941 /* 1832 */ // No operand predicates
4942 /* 1832 */ // MIs[0] A
4943 /* 1832 */ // No operand predicates
4944 /* 1832 */ // MIs[0] sub
4945 /* 1832 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4946 /* 1836 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4947 /* 1840 */ // MIs[1] B
4948 /* 1840 */ // No operand predicates
4949 /* 1840 */ // MIs[1] A
4950 /* 1840 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4951 /* 1845 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4952 /* 1850 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4953 /* 1852 */ // Combiner Rule #4: APlusBMinusB
4954 /* 1852 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4955 /* 1857 */ GIR_EraseRootFromParent_Done,
4956 /* 1858 */ // Label 140: @1858
4957 /* 1858 */ GIM_Try, /*On fail goto*//*Label 141*/ GIMT_Encode4(1892), // Rule ID 139 //
4958 /* 1863 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
4959 /* 1866 */ // MIs[0] dst
4960 /* 1866 */ // No operand predicates
4961 /* 1866 */ // MIs[0] __add_sub_reg_match_0.x
4962 /* 1866 */ // No operand predicates
4963 /* 1866 */ // MIs[0] __add_sub_reg_match_0.tmp
4964 /* 1866 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4965 /* 1870 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4966 /* 1874 */ // MIs[1] src
4967 /* 1874 */ // No operand predicates
4968 /* 1874 */ // MIs[1] __add_sub_reg_match_0.x
4969 /* 1874 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4970 /* 1879 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4971 /* 1884 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4972 /* 1886 */ // Combiner Rule #101: add_sub_reg @ [__add_sub_reg_match_0[0]]
4973 /* 1886 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4974 /* 1891 */ GIR_EraseRootFromParent_Done,
4975 /* 1892 */ // Label 141: @1892
4976 /* 1892 */ GIM_Try, /*On fail goto*//*Label 142*/ GIMT_Encode4(1937), // Rule ID 8 //
4977 /* 1897 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
4978 /* 1900 */ // MIs[0] root
4979 /* 1900 */ // No operand predicates
4980 /* 1900 */ // MIs[0] A
4981 /* 1900 */ // No operand predicates
4982 /* 1900 */ // MIs[0] sub1
4983 /* 1900 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4984 /* 1904 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4985 /* 1908 */ // MIs[1] B
4986 /* 1908 */ // No operand predicates
4987 /* 1908 */ // MIs[1] add1
4988 /* 1908 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4989 /* 1912 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4990 /* 1916 */ // MIs[2] A
4991 /* 1916 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
4992 /* 1921 */ // MIs[2] C
4993 /* 1921 */ // No operand predicates
4994 /* 1921 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4995 /* 1923 */ // Combiner Rule #8: APlusBMinusAplusC
4996 /* 1923 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4997 /* 1926 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4998 /* 1928 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
4999 /* 1932 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
5000 /* 1936 */ GIR_EraseRootFromParent_Done,
5001 /* 1937 */ // Label 142: @1937
5002 /* 1937 */ GIM_Try, /*On fail goto*//*Label 143*/ GIMT_Encode4(1982), // Rule ID 10 //
5003 /* 1942 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
5004 /* 1945 */ // MIs[0] root
5005 /* 1945 */ // No operand predicates
5006 /* 1945 */ // MIs[0] A
5007 /* 1945 */ // No operand predicates
5008 /* 1945 */ // MIs[0] sub1
5009 /* 1945 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5010 /* 1949 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5011 /* 1953 */ // MIs[1] B
5012 /* 1953 */ // No operand predicates
5013 /* 1953 */ // MIs[1] add1
5014 /* 1953 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5015 /* 1957 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
5016 /* 1961 */ // MIs[2] C
5017 /* 1961 */ // No operand predicates
5018 /* 1961 */ // MIs[2] A
5019 /* 1961 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5020 /* 1966 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5021 /* 1968 */ // Combiner Rule #10: APlusBMinusCPlusA
5022 /* 1968 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5023 /* 1971 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5024 /* 1973 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
5025 /* 1977 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
5026 /* 1981 */ GIR_EraseRootFromParent_Done,
5027 /* 1982 */ // Label 143: @1982
5028 /* 1982 */ GIM_Try, /*On fail goto*//*Label 144*/ GIMT_Encode4(2005), // Rule ID 111 //
5029 /* 1987 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
5030 /* 1990 */ // MIs[0] dst
5031 /* 1990 */ // No operand predicates
5032 /* 1990 */ // MIs[0] lhs
5033 /* 1990 */ // No operand predicates
5034 /* 1990 */ // MIs[0] Operand 2
5035 /* 1990 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5036 /* 1994 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5037 /* 1999 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[1]]
5038 /* 1999 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5039 /* 2004 */ GIR_EraseRootFromParent_Done,
5040 /* 2005 */ // Label 144: @2005
5041 /* 2005 */ GIM_Try, /*On fail goto*//*Label 145*/ GIMT_Encode4(2016), // Rule ID 160 //
5042 /* 2010 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule116Enabled),
5043 /* 2013 */ // MIs[0] root
5044 /* 2013 */ // No operand predicates
5045 /* 2013 */ // MIs[0] src1
5046 /* 2013 */ // No operand predicates
5047 /* 2013 */ // MIs[0] src2
5048 /* 2013 */ // No operand predicates
5049 /* 2013 */ // Combiner Rule #116: reassoc_comm_binops
5050 /* 2013 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner57),
5051 /* 2016 */ // Label 145: @2016
5052 /* 2016 */ GIM_Reject,
5053 /* 2017 */ // Label 2: @2017
5054 /* 2017 */ GIM_Try, /*On fail goto*//*Label 146*/ GIMT_Encode4(2028), // Rule ID 101 //
5055 /* 2022 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
5056 /* 2025 */ // Combiner Rule #84: propagate_undef_any_op; wip_match_opcode 'G_SUB'
5057 /* 2025 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
5058 /* 2028 */ // Label 146: @2028
5059 /* 2028 */ GIM_Try, /*On fail goto*//*Label 147*/ GIMT_Encode4(2039), // Rule ID 264 //
5060 /* 2033 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
5061 /* 2036 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_SUB'
5062 /* 2036 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5063 /* 2039 */ // Label 147: @2039
5064 /* 2039 */ GIM_Try, /*On fail goto*//*Label 148*/ GIMT_Encode4(2050), // Rule ID 317 //
5065 /* 2044 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
5066 /* 2047 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_SUB'
5067 /* 2047 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
5068 /* 2050 */ // Label 148: @2050
5069 /* 2050 */ GIM_Try, /*On fail goto*//*Label 149*/ GIMT_Encode4(2061), // Rule ID 350 //
5070 /* 2055 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
5071 /* 2058 */ // Combiner Rule #213: sub_add_reg; wip_match_opcode 'G_SUB'
5072 /* 2058 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner126),
5073 /* 2061 */ // Label 149: @2061
5074 /* 2061 */ GIM_Try, /*On fail goto*//*Label 150*/ GIMT_Encode4(2072), // Rule ID 388 //
5075 /* 2066 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule224Enabled),
5076 /* 2069 */ // Combiner Rule #224: simplify_neg_minmax; wip_match_opcode 'G_SUB'
5077 /* 2069 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
5078 /* 2072 */ // Label 150: @2072
5079 /* 2072 */ GIM_Try, /*On fail goto*//*Label 151*/ GIMT_Encode4(2149), // Rule ID 420 //
5080 /* 2077 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule253Enabled),
5081 /* 2080 */ // MIs[0] dst
5082 /* 2080 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5083 /* 2084 */ // MIs[0] sub1
5084 /* 2084 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5085 /* 2088 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5086 /* 2092 */ // MIs[1] a
5087 /* 2092 */ // No operand predicates
5088 /* 2092 */ // MIs[1] b
5089 /* 2092 */ // No operand predicates
5090 /* 2092 */ // MIs[0] Operand 2
5091 /* 2092 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
5092 /* 2096 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
5093 /* 2100 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5094 /* 2102 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5095 /* 2105 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
5096 /* 2115 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5097 /* 2118 */ // Combiner Rule #253: sub_one_from_sub
5098 /* 2118 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
5099 /* 2121 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5100 /* 2126 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // b
5101 /* 2130 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5102 /* 2133 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5103 /* 2137 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
5104 /* 2141 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5105 /* 2144 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
5106 /* 2148 */ GIR_EraseRootFromParent_Done,
5107 /* 2149 */ // Label 151: @2149
5108 /* 2149 */ GIM_Try, /*On fail goto*//*Label 152*/ GIMT_Encode4(2243), // Rule ID 426 //
5109 /* 2154 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule257Enabled),
5110 /* 2157 */ // MIs[0] root
5111 /* 2157 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5112 /* 2161 */ // MIs[0] Operand 1
5113 /* 2161 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5114 /* 2165 */ // MIs[0] max
5115 /* 2165 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5116 /* 2169 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SMAX),
5117 /* 2173 */ // MIs[1] A
5118 /* 2173 */ // No operand predicates
5119 /* 2173 */ // MIs[1] sub
5120 /* 2173 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5121 /* 2177 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5122 /* 2181 */ // MIs[2] Operand 1
5123 /* 2181 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/1, 0,
5124 /* 2185 */ // MIs[2] A
5125 /* 2185 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5126 /* 2190 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner19),
5127 /* 2194 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5128 /* 2196 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5129 /* 2199 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5130 /* 2209 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5131 /* 2212 */ // Combiner Rule #257: SubSmaxSub
5132 /* 2212 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5133 /* 2215 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5134 /* 2220 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5135 /* 2223 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5136 /* 2227 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMIN),
5137 /* 2231 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5138 /* 2235 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // A
5139 /* 2239 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5140 /* 2242 */ GIR_EraseRootFromParent_Done,
5141 /* 2243 */ // Label 152: @2243
5142 /* 2243 */ GIM_Try, /*On fail goto*//*Label 153*/ GIMT_Encode4(2337), // Rule ID 427 //
5143 /* 2248 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule258Enabled),
5144 /* 2251 */ // MIs[0] root
5145 /* 2251 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5146 /* 2255 */ // MIs[0] Operand 1
5147 /* 2255 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5148 /* 2259 */ // MIs[0] max
5149 /* 2259 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5150 /* 2263 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMAX),
5151 /* 2267 */ // MIs[1] A
5152 /* 2267 */ // No operand predicates
5153 /* 2267 */ // MIs[1] sub
5154 /* 2267 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5155 /* 2271 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5156 /* 2275 */ // MIs[2] Operand 1
5157 /* 2275 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/1, 0,
5158 /* 2279 */ // MIs[2] A
5159 /* 2279 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5160 /* 2284 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner19),
5161 /* 2288 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5162 /* 2290 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5163 /* 2293 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5164 /* 2303 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5165 /* 2306 */ // Combiner Rule #258: SubUmaxSub
5166 /* 2306 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5167 /* 2309 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5168 /* 2314 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5169 /* 2317 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5170 /* 2321 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMIN),
5171 /* 2325 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5172 /* 2329 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // A
5173 /* 2333 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5174 /* 2336 */ GIR_EraseRootFromParent_Done,
5175 /* 2337 */ // Label 153: @2337
5176 /* 2337 */ GIM_Try, /*On fail goto*//*Label 154*/ GIMT_Encode4(2377), // Rule ID 424 //
5177 /* 2342 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule255Enabled),
5178 /* 2345 */ // MIs[0] root
5179 /* 2345 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5180 /* 2349 */ // MIs[0] Operand 1
5181 /* 2349 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 255,
5182 /* 2353 */ // MIs[0] op1
5183 /* 2353 */ // No operand predicates
5184 /* 2353 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5185 /* 2356 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(18446744073709551615u),
5186 /* 2366 */ // Combiner Rule #255: sub_minus_one
5187 /* 2366 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
5188 /* 2369 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5189 /* 2371 */ GIR_RootToRootCopy, /*OpIdx*/2, // op1
5190 /* 2373 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5191 /* 2376 */ GIR_EraseRootFromParent_Done,
5192 /* 2377 */ // Label 154: @2377
5193 /* 2377 */ GIM_Try, /*On fail goto*//*Label 155*/ GIMT_Encode4(2477), // Rule ID 425 //
5194 /* 2382 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule256Enabled),
5195 /* 2385 */ // MIs[0] d
5196 /* 2385 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5197 /* 2389 */ // MIs[0] a
5198 /* 2389 */ // No operand predicates
5199 /* 2389 */ // MIs[0] mul
5200 /* 2389 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5201 /* 2393 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
5202 /* 2397 */ // MIs[1] x
5203 /* 2397 */ // No operand predicates
5204 /* 2397 */ // MIs[1] c
5205 /* 2397 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5206 /* 2401 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5207 /* 2405 */ // MIs[2] imm
5208 /* 2405 */ // No operand predicates
5209 /* 2405 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
5210 /* 2409 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5211 /* 2411 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
5212 /* 2414 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5213 /* 2417 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5214 /* 2427 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5215 /* 2430 */ // Combiner Rule #256: sub_of_mul_const
5216 /* 2430 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5217 /* 2433 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5218 /* 2438 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5219 /* 2441 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // c
5220 /* 2445 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MUL),
5221 /* 2449 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5222 /* 2454 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
5223 /* 2458 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5224 /* 2461 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5225 /* 2465 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // d
5226 /* 2469 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // a
5227 /* 2473 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5228 /* 2476 */ GIR_EraseRootFromParent_Done,
5229 /* 2477 */ // Label 155: @2477
5230 /* 2477 */ GIM_Try, /*On fail goto*//*Label 156*/ GIMT_Encode4(2538), // Rule ID 9 //
5231 /* 2482 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
5232 /* 2485 */ // MIs[0] root
5233 /* 2485 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5234 /* 2489 */ // MIs[0] A
5235 /* 2489 */ // No operand predicates
5236 /* 2489 */ // MIs[0] sub1
5237 /* 2489 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5238 /* 2493 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5239 /* 2497 */ // MIs[1] B
5240 /* 2497 */ // No operand predicates
5241 /* 2497 */ // MIs[1] C
5242 /* 2497 */ // No operand predicates
5243 /* 2497 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
5244 /* 2501 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5245 /* 2503 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5246 /* 2506 */ // Combiner Rule #9: AMinusBMinusC
5247 /* 2506 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5248 /* 2509 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5249 /* 2514 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // C
5250 /* 2518 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
5251 /* 2522 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5252 /* 2526 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5253 /* 2530 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // A
5254 /* 2534 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5255 /* 2537 */ GIR_EraseRootFromParent_Done,
5256 /* 2538 */ // Label 156: @2538
5257 /* 2538 */ GIM_Try, /*On fail goto*//*Label 157*/ GIMT_Encode4(2583), // Rule ID 0 //
5258 /* 2543 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
5259 /* 2546 */ // MIs[0] root
5260 /* 2546 */ // No operand predicates
5261 /* 2546 */ // MIs[0] add1
5262 /* 2546 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5263 /* 2550 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5264 /* 2554 */ // MIs[1] A
5265 /* 2554 */ // No operand predicates
5266 /* 2554 */ // MIs[1] sub1
5267 /* 2554 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5268 /* 2558 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5269 /* 2562 */ // MIs[2] B
5270 /* 2562 */ // No operand predicates
5271 /* 2562 */ // MIs[2] C
5272 /* 2562 */ // No operand predicates
5273 /* 2562 */ // MIs[0] B
5274 /* 2562 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
5275 /* 2567 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5276 /* 2569 */ // Combiner Rule #0: APlusBMinusCMinusB
5277 /* 2569 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5278 /* 2572 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5279 /* 2574 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5280 /* 2578 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
5281 /* 2582 */ GIR_EraseRootFromParent_Done,
5282 /* 2583 */ // Label 157: @2583
5283 /* 2583 */ GIM_Try, /*On fail goto*//*Label 158*/ GIMT_Encode4(2620), // Rule ID 14 //
5284 /* 2588 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
5285 /* 2591 */ // MIs[0] root
5286 /* 2591 */ // No operand predicates
5287 /* 2591 */ // MIs[0] add
5288 /* 2591 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5289 /* 2595 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5290 /* 2599 */ // MIs[1] A
5291 /* 2599 */ // No operand predicates
5292 /* 2599 */ // MIs[1] c1
5293 /* 2599 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5294 /* 2603 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5295 /* 2607 */ // MIs[2] imm1
5296 /* 2607 */ // No operand predicates
5297 /* 2607 */ // MIs[0] c2
5298 /* 2607 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5299 /* 2611 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5300 /* 2615 */ // MIs[3] imm2
5301 /* 2615 */ // No operand predicates
5302 /* 2615 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5303 /* 2617 */ // Combiner Rule #14: APlusC1MinusC2
5304 /* 2617 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
5305 /* 2620 */ // Label 158: @2620
5306 /* 2620 */ GIM_Try, /*On fail goto*//*Label 159*/ GIMT_Encode4(2657), // Rule ID 17 //
5307 /* 2625 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
5308 /* 2628 */ // MIs[0] root
5309 /* 2628 */ // No operand predicates
5310 /* 2628 */ // MIs[0] sub1
5311 /* 2628 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5312 /* 2632 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5313 /* 2636 */ // MIs[1] c1
5314 /* 2636 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5315 /* 2640 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5316 /* 2644 */ // MIs[2] imm1
5317 /* 2644 */ // No operand predicates
5318 /* 2644 */ // MIs[1] A
5319 /* 2644 */ // No operand predicates
5320 /* 2644 */ // MIs[0] c2
5321 /* 2644 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5322 /* 2648 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5323 /* 2652 */ // MIs[3] imm2
5324 /* 2652 */ // No operand predicates
5325 /* 2652 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5326 /* 2654 */ // Combiner Rule #17: C1Minus2MinusC2
5327 /* 2654 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
5328 /* 2657 */ // Label 159: @2657
5329 /* 2657 */ GIM_Try, /*On fail goto*//*Label 160*/ GIMT_Encode4(2702), // Rule ID 1 //
5330 /* 2662 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
5331 /* 2665 */ // MIs[0] root
5332 /* 2665 */ // No operand predicates
5333 /* 2665 */ // MIs[0] sub2
5334 /* 2665 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5335 /* 2669 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5336 /* 2673 */ // MIs[1] A
5337 /* 2673 */ // No operand predicates
5338 /* 2673 */ // MIs[1] sub1
5339 /* 2673 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5340 /* 2677 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5341 /* 2681 */ // MIs[2] B
5342 /* 2681 */ // No operand predicates
5343 /* 2681 */ // MIs[2] C
5344 /* 2681 */ // No operand predicates
5345 /* 2681 */ // MIs[0] C
5346 /* 2681 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/2,
5347 /* 2686 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5348 /* 2688 */ // Combiner Rule #1: AMinusBMinusCMinusC
5349 /* 2688 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5350 /* 2691 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5351 /* 2693 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5352 /* 2697 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // B
5353 /* 2701 */ GIR_EraseRootFromParent_Done,
5354 /* 2702 */ // Label 160: @2702
5355 /* 2702 */ GIM_Try, /*On fail goto*//*Label 161*/ GIMT_Encode4(2739), // Rule ID 16 //
5356 /* 2707 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
5357 /* 2710 */ // MIs[0] root
5358 /* 2710 */ // No operand predicates
5359 /* 2710 */ // MIs[0] sub1
5360 /* 2710 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5361 /* 2714 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5362 /* 2718 */ // MIs[1] A
5363 /* 2718 */ // No operand predicates
5364 /* 2718 */ // MIs[1] c1
5365 /* 2718 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5366 /* 2722 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5367 /* 2726 */ // MIs[2] imm1
5368 /* 2726 */ // No operand predicates
5369 /* 2726 */ // MIs[0] c2
5370 /* 2726 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5371 /* 2730 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5372 /* 2734 */ // MIs[3] imm2
5373 /* 2734 */ // No operand predicates
5374 /* 2734 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5375 /* 2736 */ // Combiner Rule #16: AMinusC1MinusC2
5376 /* 2736 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
5377 /* 2739 */ // Label 161: @2739
5378 /* 2739 */ GIM_Try, /*On fail goto*//*Label 162*/ GIMT_Encode4(2768), // Rule ID 445 //
5379 /* 2744 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule273Enabled),
5380 /* 2747 */ // MIs[0] dst
5381 /* 2747 */ // No operand predicates
5382 /* 2747 */ // MIs[0] ext1
5383 /* 2747 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5384 /* 2751 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
5385 /* 2755 */ // MIs[1] src1
5386 /* 2755 */ // No operand predicates
5387 /* 2755 */ // MIs[0] ext2
5388 /* 2755 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5389 /* 2759 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
5390 /* 2763 */ // MIs[2] src2
5391 /* 2763 */ // No operand predicates
5392 /* 2763 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5393 /* 2765 */ // Combiner Rule #273: push_sub_through_sext
5394 /* 2765 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner164),
5395 /* 2768 */ // Label 162: @2768
5396 /* 2768 */ GIM_Try, /*On fail goto*//*Label 163*/ GIMT_Encode4(2797), // Rule ID 442 //
5397 /* 2773 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule270Enabled),
5398 /* 2776 */ // MIs[0] dst
5399 /* 2776 */ // No operand predicates
5400 /* 2776 */ // MIs[0] ext1
5401 /* 2776 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5402 /* 2780 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
5403 /* 2784 */ // MIs[1] src1
5404 /* 2784 */ // No operand predicates
5405 /* 2784 */ // MIs[0] ext2
5406 /* 2784 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5407 /* 2788 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
5408 /* 2792 */ // MIs[2] src2
5409 /* 2792 */ // No operand predicates
5410 /* 2792 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5411 /* 2794 */ // Combiner Rule #270: push_sub_through_zext
5412 /* 2794 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner164),
5413 /* 2797 */ // Label 163: @2797
5414 /* 2797 */ GIM_Try, /*On fail goto*//*Label 164*/ GIMT_Encode4(2840), // Rule ID 170 //
5415 /* 2802 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
5416 /* 2805 */ // MIs[0] dst
5417 /* 2805 */ // No operand predicates
5418 /* 2805 */ // MIs[0] Operand 1
5419 /* 2805 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5420 /* 2809 */ // MIs[0] and
5421 /* 2809 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5422 /* 2813 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5423 /* 2817 */ // MIs[1] x
5424 /* 2817 */ // No operand predicates
5425 /* 2817 */ // MIs[1] Operand 2
5426 /* 2817 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
5427 /* 2821 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner11),
5428 /* 2825 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5429 /* 2827 */ // Combiner Rule #126: neg_and_one_to_sext_inreg
5430 /* 2827 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
5431 /* 2830 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5432 /* 2832 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
5433 /* 2836 */ GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
5434 /* 2839 */ GIR_EraseRootFromParent_Done,
5435 /* 2840 */ // Label 164: @2840
5436 /* 2840 */ GIM_Try, /*On fail goto*//*Label 165*/ GIMT_Encode4(2877), // Rule ID 15 //
5437 /* 2845 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
5438 /* 2848 */ // MIs[0] root
5439 /* 2848 */ // No operand predicates
5440 /* 2848 */ // MIs[0] c2
5441 /* 2848 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5442 /* 2852 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5443 /* 2856 */ // MIs[1] imm2
5444 /* 2856 */ // No operand predicates
5445 /* 2856 */ // MIs[0] add
5446 /* 2856 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5447 /* 2860 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
5448 /* 2864 */ // MIs[2] A
5449 /* 2864 */ // No operand predicates
5450 /* 2864 */ // MIs[2] c1
5451 /* 2864 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5452 /* 2868 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5453 /* 2872 */ // MIs[3] imm1
5454 /* 2872 */ // No operand predicates
5455 /* 2872 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5456 /* 2874 */ // Combiner Rule #15: C2MinusAPlusC1
5457 /* 2874 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
5458 /* 2877 */ // Label 165: @2877
5459 /* 2877 */ GIM_Try, /*On fail goto*//*Label 166*/ GIMT_Encode4(2916), // Rule ID 122 //
5460 /* 2882 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
5461 /* 2885 */ // MIs[0] dst
5462 /* 2885 */ // No operand predicates
5463 /* 2885 */ // MIs[0] x
5464 /* 2885 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
5465 /* 2889 */ // MIs[0] x
5466 /* 2889 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5467 /* 2894 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5468 /* 2897 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5469 /* 2907 */ // Combiner Rule #92: same_val_zero @ [__same_val_zero_match_0[0]]
5470 /* 2907 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5471 /* 2910 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5472 /* 2912 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5473 /* 2915 */ GIR_EraseRootFromParent_Done,
5474 /* 2916 */ // Label 166: @2916
5475 /* 2916 */ GIM_Try, /*On fail goto*//*Label 167*/ GIMT_Encode4(2950), // Rule ID 12 //
5476 /* 2921 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
5477 /* 2924 */ // MIs[0] root
5478 /* 2924 */ // No operand predicates
5479 /* 2924 */ // MIs[0] A
5480 /* 2924 */ // No operand predicates
5481 /* 2924 */ // MIs[0] add
5482 /* 2924 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5483 /* 2928 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5484 /* 2932 */ // MIs[1] A
5485 /* 2932 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
5486 /* 2937 */ // MIs[1] B
5487 /* 2937 */ // No operand predicates
5488 /* 2937 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
5489 /* 2942 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5490 /* 2944 */ // Combiner Rule #12: AMinusBMinusA
5491 /* 2944 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
5492 /* 2949 */ GIR_EraseRootFromParent_Done,
5493 /* 2950 */ // Label 167: @2950
5494 /* 2950 */ GIM_Try, /*On fail goto*//*Label 168*/ GIMT_Encode4(2984), // Rule ID 11 //
5495 /* 2955 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
5496 /* 2958 */ // MIs[0] root
5497 /* 2958 */ // No operand predicates
5498 /* 2958 */ // MIs[0] A
5499 /* 2958 */ // No operand predicates
5500 /* 2958 */ // MIs[0] sub1
5501 /* 2958 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5502 /* 2962 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5503 /* 2966 */ // MIs[1] Operand 1
5504 /* 2966 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
5505 /* 2970 */ // MIs[1] B
5506 /* 2970 */ // No operand predicates
5507 /* 2970 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5508 /* 2972 */ // Combiner Rule #11: AMinusZeroMinusB
5509 /* 2972 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5510 /* 2975 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5511 /* 2977 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
5512 /* 2979 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
5513 /* 2983 */ GIR_EraseRootFromParent_Done,
5514 /* 2984 */ // Label 168: @2984
5515 /* 2984 */ GIM_Try, /*On fail goto*//*Label 169*/ GIMT_Encode4(3011), // Rule ID 48 //
5516 /* 2989 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
5517 /* 2992 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
5518 /* 2998 */ // MIs[0] root
5519 /* 2998 */ // No operand predicates
5520 /* 2998 */ // MIs[0] x
5521 /* 2998 */ // No operand predicates
5522 /* 2998 */ // MIs[0] right
5523 /* 2998 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5524 /* 3002 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
5525 /* 3006 */ // MIs[1] imm
5526 /* 3006 */ // No operand predicates
5527 /* 3006 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5528 /* 3008 */ // Combiner Rule #46: sub_of_vscale
5529 /* 3008 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
5530 /* 3011 */ // Label 169: @3011
5531 /* 3011 */ GIM_Try, /*On fail goto*//*Label 170*/ GIMT_Encode4(3034), // Rule ID 110 //
5532 /* 3016 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
5533 /* 3019 */ // MIs[0] dst
5534 /* 3019 */ // No operand predicates
5535 /* 3019 */ // MIs[0] lhs
5536 /* 3019 */ // No operand predicates
5537 /* 3019 */ // MIs[0] Operand 2
5538 /* 3019 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5539 /* 3023 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5540 /* 3028 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[0]]
5541 /* 3028 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5542 /* 3033 */ GIR_EraseRootFromParent_Done,
5543 /* 3034 */ // Label 170: @3034
5544 /* 3034 */ GIM_Try, /*On fail goto*//*Label 171*/ GIMT_Encode4(3055), // Rule ID 21 //
5545 /* 3039 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
5546 /* 3042 */ // MIs[0] d
5547 /* 3042 */ // No operand predicates
5548 /* 3042 */ // MIs[0] op1
5549 /* 3042 */ // No operand predicates
5550 /* 3042 */ // MIs[0] c
5551 /* 3042 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5552 /* 3046 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5553 /* 3050 */ // MIs[1] imm
5554 /* 3050 */ // No operand predicates
5555 /* 3050 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5556 /* 3052 */ // Combiner Rule #21: sub_to_add
5557 /* 3052 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
5558 /* 3055 */ // Label 171: @3055
5559 /* 3055 */ GIM_Reject,
5560 /* 3056 */ // Label 3: @3056
5561 /* 3056 */ GIM_Try, /*On fail goto*//*Label 172*/ GIMT_Encode4(3067), // Rule ID 84 //
5562 /* 3061 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
5563 /* 3064 */ // Combiner Rule #78: undef_to_int_zero; wip_match_opcode 'G_MUL'
5564 /* 3064 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
5565 /* 3067 */ // Label 172: @3067
5566 /* 3067 */ GIM_Try, /*On fail goto*//*Label 173*/ GIMT_Encode4(3078), // Rule ID 261 //
5567 /* 3072 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
5568 /* 3075 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_MUL'
5569 /* 3075 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5570 /* 3078 */ // Label 173: @3078
5571 /* 3078 */ GIM_Try, /*On fail goto*//*Label 174*/ GIMT_Encode4(3089), // Rule ID 354 //
5572 /* 3083 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
5573 /* 3086 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_MUL'
5574 /* 3086 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
5575 /* 3089 */ // Label 174: @3089
5576 /* 3089 */ GIM_Try, /*On fail goto*//*Label 175*/ GIMT_Encode4(3129), // Rule ID 23 //
5577 /* 3094 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
5578 /* 3097 */ // MIs[0] dst
5579 /* 3097 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5580 /* 3101 */ // MIs[0] x
5581 /* 3101 */ // No operand predicates
5582 /* 3101 */ // MIs[0] Operand 2
5583 /* 3101 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
5584 /* 3105 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5585 /* 3108 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5586 /* 3118 */ // Combiner Rule #23: mul_by_neg_one
5587 /* 3118 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5588 /* 3121 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5589 /* 3123 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5590 /* 3126 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
5591 /* 3128 */ GIR_EraseRootFromParent_Done,
5592 /* 3129 */ // Label 175: @3129
5593 /* 3129 */ GIM_Try, /*On fail goto*//*Label 176*/ GIMT_Encode4(3158), // Rule ID 447 //
5594 /* 3134 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule275Enabled),
5595 /* 3137 */ // MIs[0] dst
5596 /* 3137 */ // No operand predicates
5597 /* 3137 */ // MIs[0] ext1
5598 /* 3137 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5599 /* 3141 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
5600 /* 3145 */ // MIs[1] src1
5601 /* 3145 */ // No operand predicates
5602 /* 3145 */ // MIs[0] ext2
5603 /* 3145 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5604 /* 3149 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
5605 /* 3153 */ // MIs[2] src2
5606 /* 3153 */ // No operand predicates
5607 /* 3153 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5608 /* 3155 */ // Combiner Rule #275: push_mul_through_sext
5609 /* 3155 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner164),
5610 /* 3158 */ // Label 176: @3158
5611 /* 3158 */ GIM_Try, /*On fail goto*//*Label 177*/ GIMT_Encode4(3193), // Rule ID 46 //
5612 /* 3163 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
5613 /* 3166 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
5614 /* 3172 */ // MIs[0] root
5615 /* 3172 */ // No operand predicates
5616 /* 3172 */ // MIs[0] left
5617 /* 3172 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5618 /* 3176 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
5619 /* 3180 */ // MIs[1] scale
5620 /* 3180 */ // No operand predicates
5621 /* 3180 */ // MIs[0] x
5622 /* 3180 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5623 /* 3184 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5624 /* 3188 */ // MIs[2] imm1
5625 /* 3188 */ // No operand predicates
5626 /* 3188 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5627 /* 3190 */ // Combiner Rule #44: mul_of_vscale
5628 /* 3190 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
5629 /* 3193 */ // Label 177: @3193
5630 /* 3193 */ GIM_Try, /*On fail goto*//*Label 178*/ GIMT_Encode4(3222), // Rule ID 444 //
5631 /* 3198 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule272Enabled),
5632 /* 3201 */ // MIs[0] dst
5633 /* 3201 */ // No operand predicates
5634 /* 3201 */ // MIs[0] ext1
5635 /* 3201 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5636 /* 3205 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
5637 /* 3209 */ // MIs[1] src1
5638 /* 3209 */ // No operand predicates
5639 /* 3209 */ // MIs[0] ext2
5640 /* 3209 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5641 /* 3213 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
5642 /* 3217 */ // MIs[2] src2
5643 /* 3217 */ // No operand predicates
5644 /* 3217 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5645 /* 3219 */ // Combiner Rule #272: push_mul_through_zext
5646 /* 3219 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner164),
5647 /* 3222 */ // Label 178: @3222
5648 /* 3222 */ GIM_Try, /*On fail goto*//*Label 179*/ GIMT_Encode4(3262), // Rule ID 131 //
5649 /* 3227 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5650 /* 3230 */ // MIs[0] dst
5651 /* 3230 */ // No operand predicates
5652 /* 3230 */ // MIs[0] zero
5653 /* 3230 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5654 /* 3234 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5655 /* 3238 */ // MIs[1] Operand 1
5656 /* 3238 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5657 /* 3249 */ // MIs[0] rhs
5658 /* 3249 */ // No operand predicates
5659 /* 3249 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5660 /* 3254 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5661 /* 3256 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[7]]
5662 /* 3256 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5663 /* 3261 */ GIR_EraseRootFromParent_Done,
5664 /* 3262 */ // Label 179: @3262
5665 /* 3262 */ GIM_Try, /*On fail goto*//*Label 180*/ GIMT_Encode4(3285), // Rule ID 132 //
5666 /* 3267 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
5667 /* 3270 */ // MIs[0] dst
5668 /* 3270 */ // No operand predicates
5669 /* 3270 */ // MIs[0] lhs
5670 /* 3270 */ // No operand predicates
5671 /* 3270 */ // MIs[0] zero
5672 /* 3270 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5673 /* 3274 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5674 /* 3279 */ // Combiner Rule #94: binop_right_to_zero
5675 /* 3279 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5676 /* 3284 */ GIR_EraseRootFromParent_Done,
5677 /* 3285 */ // Label 180: @3285
5678 /* 3285 */ GIM_Try, /*On fail goto*//*Label 181*/ GIMT_Encode4(3308), // Rule ID 137 //
5679 /* 3290 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule99Enabled),
5680 /* 3293 */ // MIs[0] dst
5681 /* 3293 */ // No operand predicates
5682 /* 3293 */ // MIs[0] x
5683 /* 3293 */ // No operand predicates
5684 /* 3293 */ // MIs[0] Operand 2
5685 /* 3293 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
5686 /* 3297 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5687 /* 3302 */ // Combiner Rule #99: right_identity_one_int
5688 /* 3302 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5689 /* 3307 */ GIR_EraseRootFromParent_Done,
5690 /* 3308 */ // Label 181: @3308
5691 /* 3308 */ GIM_Try, /*On fail goto*//*Label 182*/ GIMT_Encode4(3319), // Rule ID 20 //
5692 /* 3313 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
5693 /* 3316 */ // MIs[0] d
5694 /* 3316 */ // No operand predicates
5695 /* 3316 */ // MIs[0] op1
5696 /* 3316 */ // No operand predicates
5697 /* 3316 */ // MIs[0] op2
5698 /* 3316 */ // No operand predicates
5699 /* 3316 */ // Combiner Rule #20: mul_to_shl
5700 /* 3316 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
5701 /* 3319 */ // Label 182: @3319
5702 /* 3319 */ GIM_Reject,
5703 /* 3320 */ // Label 4: @3320
5704 /* 3320 */ GIM_Try, /*On fail goto*//*Label 183*/ GIMT_Encode4(3331), // Rule ID 232 //
5705 /* 3325 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
5706 /* 3328 */ // Combiner Rule #172: div_rem_to_divrem; wip_match_opcode 'G_SDIV'
5707 /* 3328 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
5708 /* 3331 */ // Label 183: @3331
5709 /* 3331 */ GIM_Try, /*On fail goto*//*Label 184*/ GIMT_Encode4(3342), // Rule ID 267 //
5710 /* 3336 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
5711 /* 3339 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_SDIV'
5712 /* 3339 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5713 /* 3342 */ // Label 184: @3342
5714 /* 3342 */ GIM_Try, /*On fail goto*//*Label 185*/ GIMT_Encode4(3353), // Rule ID 322 //
5715 /* 3347 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
5716 /* 3350 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_SDIV'
5717 /* 3350 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
5718 /* 3353 */ // Label 185: @3353
5719 /* 3353 */ GIM_Try, /*On fail goto*//*Label 186*/ GIMT_Encode4(3393), // Rule ID 127 //
5720 /* 3358 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5721 /* 3361 */ // MIs[0] dst
5722 /* 3361 */ // No operand predicates
5723 /* 3361 */ // MIs[0] zero
5724 /* 3361 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5725 /* 3365 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5726 /* 3369 */ // MIs[1] Operand 1
5727 /* 3369 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5728 /* 3380 */ // MIs[0] rhs
5729 /* 3380 */ // No operand predicates
5730 /* 3380 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5731 /* 3385 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5732 /* 3387 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[3]]
5733 /* 3387 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5734 /* 3392 */ GIR_EraseRootFromParent_Done,
5735 /* 3393 */ // Label 186: @3393
5736 /* 3393 */ GIM_Try, /*On fail goto*//*Label 187*/ GIMT_Encode4(3410), // Rule ID 346 //
5737 /* 3398 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
5738 /* 3401 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
5739 /* 3407 */ // MIs[0] dst
5740 /* 3407 */ // No operand predicates
5741 /* 3407 */ // MIs[0] x
5742 /* 3407 */ // No operand predicates
5743 /* 3407 */ // MIs[0] y
5744 /* 3407 */ // No operand predicates
5745 /* 3407 */ // Combiner Rule #209: sdiv_by_pow2
5746 /* 3407 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner124),
5747 /* 3410 */ // Label 187: @3410
5748 /* 3410 */ GIM_Try, /*On fail goto*//*Label 188*/ GIMT_Encode4(3421), // Rule ID 348 //
5749 /* 3415 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
5750 /* 3418 */ // MIs[0] dst
5751 /* 3418 */ // No operand predicates
5752 /* 3418 */ // MIs[0] x
5753 /* 3418 */ // No operand predicates
5754 /* 3418 */ // MIs[0] y
5755 /* 3418 */ // No operand predicates
5756 /* 3418 */ // Combiner Rule #211: sdiv_by_const
5757 /* 3418 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
5758 /* 3421 */ // Label 188: @3421
5759 /* 3421 */ GIM_Reject,
5760 /* 3422 */ // Label 5: @3422
5761 /* 3422 */ GIM_Try, /*On fail goto*//*Label 189*/ GIMT_Encode4(3433), // Rule ID 87 //
5762 /* 3427 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
5763 /* 3430 */ // Combiner Rule #80: binop_left_undef_to_zero; wip_match_opcode 'G_UDIV'
5764 /* 3430 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
5765 /* 3433 */ // Label 189: @3433
5766 /* 3433 */ GIM_Try, /*On fail goto*//*Label 190*/ GIMT_Encode4(3444), // Rule ID 233 //
5767 /* 3438 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
5768 /* 3441 */ // Combiner Rule #172: div_rem_to_divrem; wip_match_opcode 'G_UDIV'
5769 /* 3441 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
5770 /* 3444 */ // Label 190: @3444
5771 /* 3444 */ GIM_Try, /*On fail goto*//*Label 191*/ GIMT_Encode4(3455), // Rule ID 266 //
5772 /* 3449 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
5773 /* 3452 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_UDIV'
5774 /* 3452 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5775 /* 3455 */ // Label 191: @3455
5776 /* 3455 */ GIM_Try, /*On fail goto*//*Label 192*/ GIMT_Encode4(3466), // Rule ID 324 //
5777 /* 3460 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
5778 /* 3463 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_UDIV'
5779 /* 3463 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
5780 /* 3466 */ // Label 192: @3466
5781 /* 3466 */ GIM_Try, /*On fail goto*//*Label 193*/ GIMT_Encode4(3506), // Rule ID 128 //
5782 /* 3471 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5783 /* 3474 */ // MIs[0] dst
5784 /* 3474 */ // No operand predicates
5785 /* 3474 */ // MIs[0] zero
5786 /* 3474 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5787 /* 3478 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5788 /* 3482 */ // MIs[1] Operand 1
5789 /* 3482 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5790 /* 3493 */ // MIs[0] rhs
5791 /* 3493 */ // No operand predicates
5792 /* 3493 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5793 /* 3498 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5794 /* 3500 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[4]]
5795 /* 3500 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5796 /* 3505 */ GIR_EraseRootFromParent_Done,
5797 /* 3506 */ // Label 193: @3506
5798 /* 3506 */ GIM_Try, /*On fail goto*//*Label 194*/ GIMT_Encode4(3523), // Rule ID 345 //
5799 /* 3511 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
5800 /* 3514 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
5801 /* 3520 */ // MIs[0] dst
5802 /* 3520 */ // No operand predicates
5803 /* 3520 */ // MIs[0] x
5804 /* 3520 */ // No operand predicates
5805 /* 3520 */ // MIs[0] y
5806 /* 3520 */ // No operand predicates
5807 /* 3520 */ // Combiner Rule #208: udiv_by_pow2
5808 /* 3520 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
5809 /* 3523 */ // Label 194: @3523
5810 /* 3523 */ GIM_Try, /*On fail goto*//*Label 195*/ GIMT_Encode4(3534), // Rule ID 347 //
5811 /* 3528 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
5812 /* 3531 */ // MIs[0] dst
5813 /* 3531 */ // No operand predicates
5814 /* 3531 */ // MIs[0] x
5815 /* 3531 */ // No operand predicates
5816 /* 3531 */ // MIs[0] y
5817 /* 3531 */ // No operand predicates
5818 /* 3531 */ // Combiner Rule #210: udiv_by_const
5819 /* 3531 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
5820 /* 3534 */ // Label 195: @3534
5821 /* 3534 */ GIM_Reject,
5822 /* 3535 */ // Label 6: @3535
5823 /* 3535 */ GIM_Try, /*On fail goto*//*Label 196*/ GIMT_Encode4(3546), // Rule ID 234 //
5824 /* 3540 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
5825 /* 3543 */ // Combiner Rule #172: div_rem_to_divrem; wip_match_opcode 'G_SREM'
5826 /* 3543 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
5827 /* 3546 */ // Label 196: @3546
5828 /* 3546 */ GIM_Try, /*On fail goto*//*Label 197*/ GIMT_Encode4(3557), // Rule ID 269 //
5829 /* 3551 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
5830 /* 3554 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_SREM'
5831 /* 3554 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5832 /* 3557 */ // Label 197: @3557
5833 /* 3557 */ GIM_Try, /*On fail goto*//*Label 198*/ GIMT_Encode4(3568), // Rule ID 323 //
5834 /* 3562 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
5835 /* 3565 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_SREM'
5836 /* 3565 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
5837 /* 3568 */ // Label 198: @3568
5838 /* 3568 */ GIM_Try, /*On fail goto*//*Label 199*/ GIMT_Encode4(3608), // Rule ID 129 //
5839 /* 3573 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5840 /* 3576 */ // MIs[0] dst
5841 /* 3576 */ // No operand predicates
5842 /* 3576 */ // MIs[0] zero
5843 /* 3576 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5844 /* 3580 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5845 /* 3584 */ // MIs[1] Operand 1
5846 /* 3584 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5847 /* 3595 */ // MIs[0] rhs
5848 /* 3595 */ // No operand predicates
5849 /* 3595 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5850 /* 3600 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5851 /* 3602 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[5]]
5852 /* 3602 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5853 /* 3607 */ GIR_EraseRootFromParent_Done,
5854 /* 3608 */ // Label 199: @3608
5855 /* 3608 */ GIM_Try, /*On fail goto*//*Label 200*/ GIMT_Encode4(3619), // Rule ID 342 //
5856 /* 3613 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule205Enabled),
5857 /* 3616 */ // MIs[0] dst
5858 /* 3616 */ // No operand predicates
5859 /* 3616 */ // MIs[0] x
5860 /* 3616 */ // No operand predicates
5861 /* 3616 */ // MIs[0] y
5862 /* 3616 */ // No operand predicates
5863 /* 3616 */ // Combiner Rule #205: srem_pow2_to_mask
5864 /* 3616 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
5865 /* 3619 */ // Label 200: @3619
5866 /* 3619 */ GIM_Try, /*On fail goto*//*Label 201*/ GIMT_Encode4(3630), // Rule ID 344 //
5867 /* 3624 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
5868 /* 3627 */ // MIs[0] dst
5869 /* 3627 */ // No operand predicates
5870 /* 3627 */ // MIs[0] x
5871 /* 3627 */ // No operand predicates
5872 /* 3627 */ // MIs[0] y
5873 /* 3627 */ // No operand predicates
5874 /* 3627 */ // Combiner Rule #207: srem_by_const
5875 /* 3627 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
5876 /* 3630 */ // Label 201: @3630
5877 /* 3630 */ GIM_Reject,
5878 /* 3631 */ // Label 7: @3631
5879 /* 3631 */ GIM_Try, /*On fail goto*//*Label 202*/ GIMT_Encode4(3642), // Rule ID 88 //
5880 /* 3636 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
5881 /* 3639 */ // Combiner Rule #80: binop_left_undef_to_zero; wip_match_opcode 'G_UREM'
5882 /* 3639 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
5883 /* 3642 */ // Label 202: @3642
5884 /* 3642 */ GIM_Try, /*On fail goto*//*Label 203*/ GIMT_Encode4(3653), // Rule ID 235 //
5885 /* 3647 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
5886 /* 3650 */ // Combiner Rule #172: div_rem_to_divrem; wip_match_opcode 'G_UREM'
5887 /* 3650 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
5888 /* 3653 */ // Label 203: @3653
5889 /* 3653 */ GIM_Try, /*On fail goto*//*Label 204*/ GIMT_Encode4(3664), // Rule ID 268 //
5890 /* 3658 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
5891 /* 3661 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_UREM'
5892 /* 3661 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5893 /* 3664 */ // Label 204: @3664
5894 /* 3664 */ GIM_Try, /*On fail goto*//*Label 205*/ GIMT_Encode4(3675), // Rule ID 325 //
5895 /* 3669 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
5896 /* 3672 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_UREM'
5897 /* 3672 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
5898 /* 3675 */ // Label 205: @3675
5899 /* 3675 */ GIM_Try, /*On fail goto*//*Label 206*/ GIMT_Encode4(3715), // Rule ID 130 //
5900 /* 3680 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5901 /* 3683 */ // MIs[0] dst
5902 /* 3683 */ // No operand predicates
5903 /* 3683 */ // MIs[0] zero
5904 /* 3683 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5905 /* 3687 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5906 /* 3691 */ // MIs[1] Operand 1
5907 /* 3691 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5908 /* 3702 */ // MIs[0] rhs
5909 /* 3702 */ // No operand predicates
5910 /* 3702 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5911 /* 3707 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5912 /* 3709 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[6]]
5913 /* 3709 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5914 /* 3714 */ GIR_EraseRootFromParent_Done,
5915 /* 3715 */ // Label 206: @3715
5916 /* 3715 */ GIM_Try, /*On fail goto*//*Label 207*/ GIMT_Encode4(3726), // Rule ID 183 //
5917 /* 3720 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule139Enabled),
5918 /* 3723 */ // MIs[0] dst
5919 /* 3723 */ // No operand predicates
5920 /* 3723 */ // MIs[0] x
5921 /* 3723 */ // No operand predicates
5922 /* 3723 */ // MIs[0] y
5923 /* 3723 */ // No operand predicates
5924 /* 3723 */ // Combiner Rule #139: urem_pow2_to_mask
5925 /* 3723 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner74),
5926 /* 3726 */ // Label 207: @3726
5927 /* 3726 */ GIM_Try, /*On fail goto*//*Label 208*/ GIMT_Encode4(3737), // Rule ID 343 //
5928 /* 3731 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
5929 /* 3734 */ // MIs[0] dst
5930 /* 3734 */ // No operand predicates
5931 /* 3734 */ // MIs[0] x
5932 /* 3734 */ // No operand predicates
5933 /* 3734 */ // MIs[0] y
5934 /* 3734 */ // No operand predicates
5935 /* 3734 */ // Combiner Rule #206: urem_by_const
5936 /* 3734 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
5937 /* 3737 */ // Label 208: @3737
5938 /* 3737 */ GIM_Reject,
5939 /* 3738 */ // Label 8: @3738
5940 /* 3738 */ GIM_Try, /*On fail goto*//*Label 209*/ GIMT_Encode4(3749), // Rule ID 79 //
5941 /* 3743 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
5942 /* 3746 */ // Combiner Rule #75: load_and_mask; wip_match_opcode 'G_AND'
5943 /* 3746 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
5944 /* 3749 */ // Label 209: @3749
5945 /* 3749 */ GIM_Try, /*On fail goto*//*Label 210*/ GIMT_Encode4(3760), // Rule ID 83 //
5946 /* 3754 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
5947 /* 3757 */ // Combiner Rule #78: undef_to_int_zero; wip_match_opcode 'G_AND'
5948 /* 3757 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
5949 /* 3760 */ // Label 210: @3760
5950 /* 3760 */ GIM_Try, /*On fail goto*//*Label 211*/ GIMT_Encode4(3771), // Rule ID 153 //
5951 /* 3765 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
5952 /* 3768 */ // Combiner Rule #113: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_AND'
5953 /* 3768 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
5954 /* 3771 */ // Label 211: @3771
5955 /* 3771 */ GIM_Try, /*On fail goto*//*Label 212*/ GIMT_Encode4(3782), // Rule ID 173 //
5956 /* 3776 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule129Enabled),
5957 /* 3779 */ // Combiner Rule #129: narrow_binop_feeding_and; wip_match_opcode 'G_AND'
5958 /* 3779 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner67),
5959 /* 3782 */ // Label 212: @3782
5960 /* 3782 */ GIM_Try, /*On fail goto*//*Label 213*/ GIMT_Encode4(3793), // Rule ID 180 //
5961 /* 3787 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled),
5962 /* 3790 */ // Combiner Rule #136: redundant_and; wip_match_opcode 'G_AND'
5963 /* 3790 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner71),
5964 /* 3793 */ // Label 213: @3793
5965 /* 3793 */ GIM_Try, /*On fail goto*//*Label 214*/ GIMT_Encode4(3804), // Rule ID 205 //
5966 /* 3798 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
5967 /* 3801 */ // Combiner Rule #161: overlapping_and; wip_match_opcode 'G_AND'
5968 /* 3801 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
5969 /* 3804 */ // Label 214: @3804
5970 /* 3804 */ GIM_Try, /*On fail goto*//*Label 215*/ GIMT_Encode4(3815), // Rule ID 258 //
5971 /* 3809 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
5972 /* 3812 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_AND'
5973 /* 3812 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5974 /* 3815 */ // Label 215: @3815
5975 /* 3815 */ GIM_Try, /*On fail goto*//*Label 216*/ GIMT_Encode4(3826), // Rule ID 307 //
5976 /* 3820 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
5977 /* 3823 */ // Combiner Rule #195: and_or_disjoint_mask; wip_match_opcode 'G_AND'
5978 /* 3823 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
5979 /* 3826 */ // Label 216: @3826
5980 /* 3826 */ GIM_Try, /*On fail goto*//*Label 217*/ GIMT_Encode4(3837), // Rule ID 319 //
5981 /* 3831 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
5982 /* 3834 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_AND'
5983 /* 3834 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
5984 /* 3837 */ // Label 217: @3837
5985 /* 3837 */ GIM_Try, /*On fail goto*//*Label 218*/ GIMT_Encode4(3848), // Rule ID 355 //
5986 /* 3842 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
5987 /* 3845 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_AND'
5988 /* 3845 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
5989 /* 3848 */ // Label 218: @3848
5990 /* 3848 */ GIM_Try, /*On fail goto*//*Label 219*/ GIMT_Encode4(3859), // Rule ID 382 //
5991 /* 3853 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule218Enabled),
5992 /* 3856 */ // Combiner Rule #218: match_ands; wip_match_opcode 'G_AND'
5993 /* 3856 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
5994 /* 3859 */ // Label 219: @3859
5995 /* 3859 */ GIM_Try, /*On fail goto*//*Label 220*/ GIMT_Encode4(3870), // Rule ID 421 //
5996 /* 3864 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule254Enabled),
5997 /* 3867 */ // Combiner Rule #254: binop_with_neg; wip_match_opcode 'G_AND'
5998 /* 3867 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner158),
5999 /* 3870 */ // Label 220: @3870
6000 /* 3870 */ GIM_Try, /*On fail goto*//*Label 221*/ GIMT_Encode4(3956), // Rule ID 387 //
6001 /* 3875 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule223Enabled),
6002 /* 3878 */ // MIs[0] root
6003 /* 3878 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
6004 /* 3882 */ // MIs[0] and
6005 /* 3882 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6006 /* 3886 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
6007 /* 3890 */ // MIs[1] x
6008 /* 3890 */ // No operand predicates
6009 /* 3890 */ // MIs[1] y
6010 /* 3890 */ // No operand predicates
6011 /* 3890 */ // MIs[0] not
6012 /* 3890 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6013 /* 3894 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6014 /* 3898 */ // MIs[2] y
6015 /* 3898 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
6016 /* 3903 */ // MIs[2] Operand 2
6017 /* 3903 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6018 /* 3907 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6019 /* 3909 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6020 /* 3912 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
6021 /* 3922 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6022 /* 3925 */ // Combiner Rule #223: and_xor_or_to_xor_and
6023 /* 3925 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
6024 /* 3928 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6025 /* 3933 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
6026 /* 3937 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
6027 /* 3940 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6028 /* 3944 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6029 /* 3948 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
6030 /* 3952 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6031 /* 3955 */ GIR_EraseRootFromParent_Done,
6032 /* 3956 */ // Label 221: @3956
6033 /* 3956 */ GIM_Try, /*On fail goto*//*Label 222*/ GIMT_Encode4(4054), // Rule ID 166 //
6034 /* 3961 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule122Enabled),
6035 /* 3964 */ // MIs[0] root
6036 /* 3964 */ // No operand predicates
6037 /* 3964 */ // MIs[0] d1
6038 /* 3964 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6039 /* 3968 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
6040 /* 3972 */ // MIs[1] p
6041 /* 3972 */ // No operand predicates
6042 /* 3972 */ // MIs[1] s1
6043 /* 3972 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
6044 /* 3976 */ // MIs[1] Operand 3
6045 /* 3976 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
6046 /* 3980 */ // MIs[0] d2
6047 /* 3980 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6048 /* 3984 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
6049 /* 3988 */ // MIs[2] p
6050 /* 3988 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6051 /* 3993 */ // MIs[2] s2
6052 /* 3993 */ // No operand predicates
6053 /* 3993 */ // MIs[2] Operand 3
6054 /* 3993 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
6055 /* 3997 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
6056 /* 4001 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6057 /* 4003 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6058 /* 4006 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
6059 /* 4016 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6060 /* 4019 */ // Combiner Rule #122: double_icmp_zero_and_combine
6061 /* 4019 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6062 /* 4022 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6063 /* 4027 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
6064 /* 4031 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
6065 /* 4035 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
6066 /* 4039 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6067 /* 4043 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
6068 /* 4047 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6069 /* 4050 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
6070 /* 4053 */ GIR_EraseRootFromParent_Done,
6071 /* 4054 */ // Label 222: @4054
6072 /* 4054 */ GIM_Try, /*On fail goto*//*Label 223*/ GIMT_Encode4(4091), // Rule ID 251 //
6073 /* 4059 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
6074 /* 4062 */ // MIs[0] root
6075 /* 4062 */ // No operand predicates
6076 /* 4062 */ // MIs[0] shift
6077 /* 4062 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6078 /* 4066 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
6079 /* 4070 */ // MIs[1] x
6080 /* 4070 */ // No operand predicates
6081 /* 4070 */ // MIs[1] lsb
6082 /* 4070 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6083 /* 4074 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6084 /* 4078 */ // MIs[2] imm1
6085 /* 4078 */ // No operand predicates
6086 /* 4078 */ // MIs[0] mask
6087 /* 4078 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6088 /* 4082 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6089 /* 4086 */ // MIs[3] imm2
6090 /* 4086 */ // No operand predicates
6091 /* 4086 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
6092 /* 4088 */ // Combiner Rule #184: bitfield_extract_from_and
6093 /* 4088 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner100),
6094 /* 4091 */ // Label 223: @4091
6095 /* 4091 */ GIM_Try, /*On fail goto*//*Label 224*/ GIMT_Encode4(4140), // Rule ID 386 //
6096 /* 4096 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule222Enabled),
6097 /* 4099 */ // MIs[0] root
6098 /* 4099 */ // No operand predicates
6099 /* 4099 */ // MIs[0] or
6100 /* 4099 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6101 /* 4103 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
6102 /* 4107 */ // MIs[1] x
6103 /* 4107 */ // No operand predicates
6104 /* 4107 */ // MIs[1] not
6105 /* 4107 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6106 /* 4111 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6107 /* 4115 */ // MIs[2] y
6108 /* 4115 */ // No operand predicates
6109 /* 4115 */ // MIs[2] Operand 2
6110 /* 4115 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6111 /* 4119 */ // MIs[0] y
6112 /* 4119 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
6113 /* 4124 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6114 /* 4126 */ // Combiner Rule #222: and_xor_or_to_and
6115 /* 4126 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6116 /* 4129 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6117 /* 4131 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6118 /* 4135 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
6119 /* 4139 */ GIR_EraseRootFromParent_Done,
6120 /* 4140 */ // Label 224: @4140
6121 /* 4140 */ GIM_Try, /*On fail goto*//*Label 225*/ GIMT_Encode4(4164), // Rule ID 120 //
6122 /* 4145 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
6123 /* 4148 */ // MIs[0] dst
6124 /* 4148 */ // No operand predicates
6125 /* 4148 */ // MIs[0] src
6126 /* 4148 */ // No operand predicates
6127 /* 4148 */ // MIs[0] src
6128 /* 4148 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6129 /* 4153 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6130 /* 4158 */ // Combiner Rule #91: binop_same_val @ [__binop_same_val_match_0[0]]
6131 /* 4158 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6132 /* 4163 */ GIR_EraseRootFromParent_Done,
6133 /* 4164 */ // Label 225: @4164
6134 /* 4164 */ GIM_Reject,
6135 /* 4165 */ // Label 9: @4165
6136 /* 4165 */ GIM_Try, /*On fail goto*//*Label 226*/ GIMT_Encode4(4176), // Rule ID 85 //
6137 /* 4170 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
6138 /* 4173 */ // Combiner Rule #79: undef_to_negative_one; wip_match_opcode 'G_OR'
6139 /* 4173 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
6140 /* 4176 */ // Label 226: @4176
6141 /* 4176 */ GIM_Try, /*On fail goto*//*Label 227*/ GIMT_Encode4(4187), // Rule ID 154 //
6142 /* 4181 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
6143 /* 4184 */ // Combiner Rule #113: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_OR'
6144 /* 4184 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
6145 /* 4187 */ // Label 227: @4187
6146 /* 4187 */ GIM_Try, /*On fail goto*//*Label 228*/ GIMT_Encode4(4198), // Rule ID 182 //
6147 /* 4192 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule138Enabled),
6148 /* 4195 */ // Combiner Rule #138: redundant_or; wip_match_opcode 'G_OR'
6149 /* 4195 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner73),
6150 /* 4198 */ // Label 228: @4198
6151 /* 4198 */ GIM_Try, /*On fail goto*//*Label 229*/ GIMT_Encode4(4209), // Rule ID 231 //
6152 /* 4203 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
6153 /* 4206 */ // Combiner Rule #171: load_or_combine; wip_match_opcode 'G_OR'
6154 /* 4206 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
6155 /* 4209 */ // Label 229: @4209
6156 /* 4209 */ GIM_Try, /*On fail goto*//*Label 230*/ GIMT_Encode4(4220), // Rule ID 236 //
6157 /* 4214 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
6158 /* 4217 */ // Combiner Rule #173: funnel_shift_from_or_shift; wip_match_opcode 'G_OR'
6159 /* 4217 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
6160 /* 4220 */ // Label 230: @4220
6161 /* 4220 */ GIM_Try, /*On fail goto*//*Label 231*/ GIMT_Encode4(4231), // Rule ID 262 //
6162 /* 4225 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
6163 /* 4228 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_OR'
6164 /* 4228 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
6165 /* 4231 */ // Label 231: @4231
6166 /* 4231 */ GIM_Try, /*On fail goto*//*Label 232*/ GIMT_Encode4(4242), // Rule ID 320 //
6167 /* 4236 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
6168 /* 4239 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_OR'
6169 /* 4239 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
6170 /* 4242 */ // Label 232: @4242
6171 /* 4242 */ GIM_Try, /*On fail goto*//*Label 233*/ GIMT_Encode4(4253), // Rule ID 356 //
6172 /* 4247 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
6173 /* 4250 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_OR'
6174 /* 4250 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
6175 /* 4253 */ // Label 233: @4253
6176 /* 4253 */ GIM_Try, /*On fail goto*//*Label 234*/ GIMT_Encode4(4264), // Rule ID 383 //
6177 /* 4258 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule219Enabled),
6178 /* 4261 */ // Combiner Rule #219: match_ors; wip_match_opcode 'G_OR'
6179 /* 4261 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132),
6180 /* 4264 */ // Label 234: @4264
6181 /* 4264 */ GIM_Try, /*On fail goto*//*Label 235*/ GIMT_Encode4(4275), // Rule ID 422 //
6182 /* 4269 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule254Enabled),
6183 /* 4272 */ // Combiner Rule #254: binop_with_neg; wip_match_opcode 'G_OR'
6184 /* 4272 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner158),
6185 /* 4275 */ // Label 235: @4275
6186 /* 4275 */ GIM_Try, /*On fail goto*//*Label 236*/ GIMT_Encode4(4361), // Rule ID 385 //
6187 /* 4280 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
6188 /* 4283 */ // MIs[0] root
6189 /* 4283 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
6190 /* 4287 */ // MIs[0] and
6191 /* 4287 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6192 /* 4291 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6193 /* 4295 */ // MIs[1] x
6194 /* 4295 */ // No operand predicates
6195 /* 4295 */ // MIs[1] y
6196 /* 4295 */ // No operand predicates
6197 /* 4295 */ // MIs[0] not
6198 /* 4295 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6199 /* 4299 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6200 /* 4303 */ // MIs[2] y
6201 /* 4303 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
6202 /* 4308 */ // MIs[2] Operand 2
6203 /* 4308 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6204 /* 4312 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6205 /* 4314 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6206 /* 4317 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
6207 /* 4327 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6208 /* 4330 */ // Combiner Rule #221: or_and_xor_to_xor_or
6209 /* 4330 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
6210 /* 4333 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6211 /* 4338 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
6212 /* 4342 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
6213 /* 4345 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6214 /* 4349 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6215 /* 4353 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
6216 /* 4357 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6217 /* 4360 */ GIR_EraseRootFromParent_Done,
6218 /* 4361 */ // Label 236: @4361
6219 /* 4361 */ GIM_Try, /*On fail goto*//*Label 237*/ GIMT_Encode4(4408), // Rule ID 243 //
6220 /* 4366 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
6221 /* 4369 */ // MIs[0] root
6222 /* 4369 */ // No operand predicates
6223 /* 4369 */ // MIs[0] out1
6224 /* 4369 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6225 /* 4373 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHL),
6226 /* 4377 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6227 /* 4377 */ // No operand predicates
6228 /* 4377 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
6229 /* 4377 */ // No operand predicates
6230 /* 4377 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6231 /* 4377 */ // No operand predicates
6232 /* 4377 */ // MIs[0] out2
6233 /* 4377 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6234 /* 4381 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SHL),
6235 /* 4385 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6236 /* 4385 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6237 /* 4390 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6238 /* 4390 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
6239 /* 4395 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6240 /* 4400 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6241 /* 4402 */ // Combiner Rule #178: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[0]]
6242 /* 4402 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6243 /* 4407 */ GIR_EraseRootFromParent_Done,
6244 /* 4408 */ // Label 237: @4408
6245 /* 4408 */ GIM_Try, /*On fail goto*//*Label 238*/ GIMT_Encode4(4455), // Rule ID 245 //
6246 /* 4413 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
6247 /* 4416 */ // MIs[0] root
6248 /* 4416 */ // No operand predicates
6249 /* 4416 */ // MIs[0] out1
6250 /* 4416 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6251 /* 4420 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHR),
6252 /* 4424 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
6253 /* 4424 */ // No operand predicates
6254 /* 4424 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6255 /* 4424 */ // No operand predicates
6256 /* 4424 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6257 /* 4424 */ // No operand predicates
6258 /* 4424 */ // MIs[0] out2
6259 /* 4424 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6260 /* 4428 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
6261 /* 4432 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6262 /* 4432 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
6263 /* 4437 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6264 /* 4437 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
6265 /* 4442 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6266 /* 4447 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6267 /* 4449 */ // Combiner Rule #179: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[0]]
6268 /* 4449 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6269 /* 4454 */ GIR_EraseRootFromParent_Done,
6270 /* 4455 */ // Label 238: @4455
6271 /* 4455 */ GIM_Try, /*On fail goto*//*Label 239*/ GIMT_Encode4(4553), // Rule ID 167 //
6272 /* 4460 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule123Enabled),
6273 /* 4463 */ // MIs[0] root
6274 /* 4463 */ // No operand predicates
6275 /* 4463 */ // MIs[0] d1
6276 /* 4463 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6277 /* 4467 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
6278 /* 4471 */ // MIs[1] p
6279 /* 4471 */ // No operand predicates
6280 /* 4471 */ // MIs[1] s1
6281 /* 4471 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
6282 /* 4475 */ // MIs[1] Operand 3
6283 /* 4475 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
6284 /* 4479 */ // MIs[0] d2
6285 /* 4479 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6286 /* 4483 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
6287 /* 4487 */ // MIs[2] p
6288 /* 4487 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6289 /* 4492 */ // MIs[2] s2
6290 /* 4492 */ // No operand predicates
6291 /* 4492 */ // MIs[2] Operand 3
6292 /* 4492 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
6293 /* 4496 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
6294 /* 4500 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6295 /* 4502 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6296 /* 4505 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
6297 /* 4515 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6298 /* 4518 */ // Combiner Rule #123: double_icmp_zero_or_combine
6299 /* 4518 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6300 /* 4521 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6301 /* 4526 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
6302 /* 4530 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
6303 /* 4534 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
6304 /* 4538 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6305 /* 4542 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
6306 /* 4546 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6307 /* 4549 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
6308 /* 4552 */ GIR_EraseRootFromParent_Done,
6309 /* 4553 */ // Label 239: @4553
6310 /* 4553 */ GIM_Try, /*On fail goto*//*Label 240*/ GIMT_Encode4(4602), // Rule ID 384 //
6311 /* 4558 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
6312 /* 4561 */ // MIs[0] root
6313 /* 4561 */ // No operand predicates
6314 /* 4561 */ // MIs[0] and
6315 /* 4561 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6316 /* 4565 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6317 /* 4569 */ // MIs[1] x
6318 /* 4569 */ // No operand predicates
6319 /* 4569 */ // MIs[1] not
6320 /* 4569 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6321 /* 4573 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6322 /* 4577 */ // MIs[2] y
6323 /* 4577 */ // No operand predicates
6324 /* 4577 */ // MIs[2] Operand 2
6325 /* 4577 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6326 /* 4581 */ // MIs[0] y
6327 /* 4581 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
6328 /* 4586 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6329 /* 4588 */ // Combiner Rule #220: or_and_xor_to_or
6330 /* 4588 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6331 /* 4591 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6332 /* 4593 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6333 /* 4597 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
6334 /* 4601 */ GIR_EraseRootFromParent_Done,
6335 /* 4602 */ // Label 240: @4602
6336 /* 4602 */ GIM_Try, /*On fail goto*//*Label 241*/ GIMT_Encode4(4636), // Rule ID 432 //
6337 /* 4607 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule263Enabled),
6338 /* 4610 */ // MIs[0] dst
6339 /* 4610 */ // No operand predicates
6340 /* 4610 */ // MIs[0] __combine_or_of_and_match_0.and
6341 /* 4610 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6342 /* 4614 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6343 /* 4618 */ // MIs[1] x
6344 /* 4618 */ // No operand predicates
6345 /* 4618 */ // MIs[1] y
6346 /* 4618 */ // No operand predicates
6347 /* 4618 */ // MIs[0] x
6348 /* 4618 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
6349 /* 4623 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
6350 /* 4628 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6351 /* 4630 */ // Combiner Rule #263: combine_or_of_and @ [__combine_or_of_and_match_0[0]]
6352 /* 4630 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
6353 /* 4635 */ GIR_EraseRootFromParent_Done,
6354 /* 4636 */ // Label 241: @4636
6355 /* 4636 */ GIM_Try, /*On fail goto*//*Label 242*/ GIMT_Encode4(4670), // Rule ID 433 //
6356 /* 4641 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule263Enabled),
6357 /* 4644 */ // MIs[0] dst
6358 /* 4644 */ // No operand predicates
6359 /* 4644 */ // MIs[0] __combine_or_of_and_match_0.and
6360 /* 4644 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6361 /* 4648 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6362 /* 4652 */ // MIs[1] y
6363 /* 4652 */ // No operand predicates
6364 /* 4652 */ // MIs[1] x
6365 /* 4652 */ // No operand predicates
6366 /* 4652 */ // MIs[0] x
6367 /* 4652 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
6368 /* 4657 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6369 /* 4662 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6370 /* 4664 */ // Combiner Rule #263: combine_or_of_and @ [__combine_or_of_and_match_0[1]]
6371 /* 4664 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6372 /* 4669 */ GIR_EraseRootFromParent_Done,
6373 /* 4670 */ // Label 242: @4670
6374 /* 4670 */ GIM_Try, /*On fail goto*//*Label 243*/ GIMT_Encode4(4717), // Rule ID 246 //
6375 /* 4675 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
6376 /* 4678 */ // MIs[0] root
6377 /* 4678 */ // No operand predicates
6378 /* 4678 */ // MIs[0] out2
6379 /* 4678 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6380 /* 4682 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
6381 /* 4686 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6382 /* 4686 */ // No operand predicates
6383 /* 4686 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6384 /* 4686 */ // No operand predicates
6385 /* 4686 */ // MIs[0] out1
6386 /* 4686 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6387 /* 4690 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHR),
6388 /* 4694 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
6389 /* 4694 */ // No operand predicates
6390 /* 4694 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6391 /* 4694 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
6392 /* 4699 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6393 /* 4699 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
6394 /* 4704 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6395 /* 4709 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6396 /* 4711 */ // Combiner Rule #179: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[1]]
6397 /* 4711 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6398 /* 4716 */ GIR_EraseRootFromParent_Done,
6399 /* 4717 */ // Label 243: @4717
6400 /* 4717 */ GIM_Try, /*On fail goto*//*Label 244*/ GIMT_Encode4(4764), // Rule ID 244 //
6401 /* 4722 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
6402 /* 4725 */ // MIs[0] root
6403 /* 4725 */ // No operand predicates
6404 /* 4725 */ // MIs[0] out2
6405 /* 4725 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6406 /* 4729 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
6407 /* 4733 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6408 /* 4733 */ // No operand predicates
6409 /* 4733 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6410 /* 4733 */ // No operand predicates
6411 /* 4733 */ // MIs[0] out1
6412 /* 4733 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6413 /* 4737 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHL),
6414 /* 4741 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6415 /* 4741 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6416 /* 4746 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
6417 /* 4746 */ // No operand predicates
6418 /* 4746 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6419 /* 4746 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
6420 /* 4751 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6421 /* 4756 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6422 /* 4758 */ // Combiner Rule #178: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[1]]
6423 /* 4758 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6424 /* 4763 */ GIR_EraseRootFromParent_Done,
6425 /* 4764 */ // Label 244: @4764
6426 /* 4764 */ GIM_Try, /*On fail goto*//*Label 245*/ GIMT_Encode4(4788), // Rule ID 121 //
6427 /* 4769 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
6428 /* 4772 */ // MIs[0] dst
6429 /* 4772 */ // No operand predicates
6430 /* 4772 */ // MIs[0] src
6431 /* 4772 */ // No operand predicates
6432 /* 4772 */ // MIs[0] src
6433 /* 4772 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6434 /* 4777 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6435 /* 4782 */ // Combiner Rule #91: binop_same_val @ [__binop_same_val_match_0[1]]
6436 /* 4782 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6437 /* 4787 */ GIR_EraseRootFromParent_Done,
6438 /* 4788 */ // Label 245: @4788
6439 /* 4788 */ GIM_Try, /*On fail goto*//*Label 246*/ GIMT_Encode4(4822), // Rule ID 434 //
6440 /* 4793 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule263Enabled),
6441 /* 4796 */ // MIs[0] dst
6442 /* 4796 */ // No operand predicates
6443 /* 4796 */ // MIs[0] x
6444 /* 4796 */ // No operand predicates
6445 /* 4796 */ // MIs[0] __combine_or_of_and_match_0.and
6446 /* 4796 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6447 /* 4800 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6448 /* 4804 */ // MIs[1] x
6449 /* 4804 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
6450 /* 4809 */ // MIs[1] y
6451 /* 4809 */ // No operand predicates
6452 /* 4809 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6453 /* 4814 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6454 /* 4816 */ // Combiner Rule #263: combine_or_of_and @ [__combine_or_of_and_match_0[2]]
6455 /* 4816 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6456 /* 4821 */ GIR_EraseRootFromParent_Done,
6457 /* 4822 */ // Label 246: @4822
6458 /* 4822 */ GIM_Try, /*On fail goto*//*Label 247*/ GIMT_Encode4(4856), // Rule ID 435 //
6459 /* 4827 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule263Enabled),
6460 /* 4830 */ // MIs[0] dst
6461 /* 4830 */ // No operand predicates
6462 /* 4830 */ // MIs[0] x
6463 /* 4830 */ // No operand predicates
6464 /* 4830 */ // MIs[0] __combine_or_of_and_match_0.and
6465 /* 4830 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6466 /* 4834 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6467 /* 4838 */ // MIs[1] y
6468 /* 4838 */ // No operand predicates
6469 /* 4838 */ // MIs[1] x
6470 /* 4838 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6471 /* 4843 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6472 /* 4848 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6473 /* 4850 */ // Combiner Rule #263: combine_or_of_and @ [__combine_or_of_and_match_0[3]]
6474 /* 4850 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6475 /* 4855 */ GIR_EraseRootFromParent_Done,
6476 /* 4856 */ // Label 247: @4856
6477 /* 4856 */ GIM_Try, /*On fail goto*//*Label 248*/ GIMT_Encode4(4879), // Rule ID 112 //
6478 /* 4861 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
6479 /* 4864 */ // MIs[0] dst
6480 /* 4864 */ // No operand predicates
6481 /* 4864 */ // MIs[0] lhs
6482 /* 4864 */ // No operand predicates
6483 /* 4864 */ // MIs[0] Operand 2
6484 /* 4864 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6485 /* 4868 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6486 /* 4873 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[2]]
6487 /* 4873 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6488 /* 4878 */ GIR_EraseRootFromParent_Done,
6489 /* 4879 */ // Label 248: @4879
6490 /* 4879 */ GIM_Reject,
6491 /* 4880 */ // Label 10: @4880
6492 /* 4880 */ GIM_Try, /*On fail goto*//*Label 249*/ GIMT_Encode4(4891), // Rule ID 102 //
6493 /* 4885 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
6494 /* 4888 */ // Combiner Rule #84: propagate_undef_any_op; wip_match_opcode 'G_XOR'
6495 /* 4888 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
6496 /* 4891 */ // Label 249: @4891
6497 /* 4891 */ GIM_Try, /*On fail goto*//*Label 250*/ GIMT_Encode4(4902), // Rule ID 155 //
6498 /* 4896 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
6499 /* 4899 */ // Combiner Rule #113: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_XOR'
6500 /* 4899 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
6501 /* 4902 */ // Label 250: @4902
6502 /* 4902 */ GIM_Try, /*On fail goto*//*Label 251*/ GIMT_Encode4(4913), // Rule ID 187 //
6503 /* 4907 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule143Enabled),
6504 /* 4910 */ // Combiner Rule #143: not_cmp_fold; wip_match_opcode 'G_XOR'
6505 /* 4910 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
6506 /* 4913 */ // Label 251: @4913
6507 /* 4913 */ GIM_Try, /*On fail goto*//*Label 252*/ GIMT_Encode4(4924), // Rule ID 219 //
6508 /* 4918 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
6509 /* 4921 */ // Combiner Rule #167: xor_of_and_with_same_reg; wip_match_opcode 'G_XOR'
6510 /* 4921 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner89),
6511 /* 4924 */ // Label 252: @4924
6512 /* 4924 */ GIM_Try, /*On fail goto*//*Label 253*/ GIMT_Encode4(4935), // Rule ID 265 //
6513 /* 4929 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
6514 /* 4932 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_XOR'
6515 /* 4932 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
6516 /* 4935 */ // Label 253: @4935
6517 /* 4935 */ GIM_Try, /*On fail goto*//*Label 254*/ GIMT_Encode4(4946), // Rule ID 321 //
6518 /* 4940 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
6519 /* 4943 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_XOR'
6520 /* 4943 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
6521 /* 4946 */ // Label 254: @4946
6522 /* 4946 */ GIM_Try, /*On fail goto*//*Label 255*/ GIMT_Encode4(4957), // Rule ID 357 //
6523 /* 4951 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
6524 /* 4954 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_XOR'
6525 /* 4954 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
6526 /* 4957 */ // Label 255: @4957
6527 /* 4957 */ GIM_Try, /*On fail goto*//*Label 256*/ GIMT_Encode4(4968), // Rule ID 423 //
6528 /* 4962 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule254Enabled),
6529 /* 4965 */ // Combiner Rule #254: binop_with_neg; wip_match_opcode 'G_XOR'
6530 /* 4965 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner158),
6531 /* 4968 */ // Label 256: @4968
6532 /* 4968 */ GIM_Try, /*On fail goto*//*Label 257*/ GIMT_Encode4(5028), // Rule ID 13 //
6533 /* 4973 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
6534 /* 4976 */ // MIs[0] root
6535 /* 4976 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
6536 /* 4980 */ // MIs[0] add
6537 /* 4980 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6538 /* 4984 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
6539 /* 4988 */ // MIs[1] A
6540 /* 4988 */ // No operand predicates
6541 /* 4988 */ // MIs[1] Operand 2
6542 /* 4988 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 255,
6543 /* 4992 */ // MIs[0] Operand 2
6544 /* 4992 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
6545 /* 4996 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
6546 /* 5000 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6547 /* 5002 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6548 /* 5005 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
6549 /* 5015 */ // Combiner Rule #13: NotAPlusNegOne
6550 /* 5015 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
6551 /* 5018 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6552 /* 5020 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
6553 /* 5023 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
6554 /* 5027 */ GIR_EraseRootFromParent_Done,
6555 /* 5028 */ // Label 257: @5028
6556 /* 5028 */ GIM_Try, /*On fail goto*//*Label 258*/ GIMT_Encode4(5067), // Rule ID 123 //
6557 /* 5033 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
6558 /* 5036 */ // MIs[0] dst
6559 /* 5036 */ // No operand predicates
6560 /* 5036 */ // MIs[0] x
6561 /* 5036 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
6562 /* 5040 */ // MIs[0] x
6563 /* 5040 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6564 /* 5045 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6565 /* 5048 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
6566 /* 5058 */ // Combiner Rule #92: same_val_zero @ [__same_val_zero_match_0[1]]
6567 /* 5058 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
6568 /* 5061 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6569 /* 5063 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
6570 /* 5066 */ GIR_EraseRootFromParent_Done,
6571 /* 5067 */ // Label 258: @5067
6572 /* 5067 */ GIM_Try, /*On fail goto*//*Label 259*/ GIMT_Encode4(5090), // Rule ID 113 //
6573 /* 5072 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
6574 /* 5075 */ // MIs[0] dst
6575 /* 5075 */ // No operand predicates
6576 /* 5075 */ // MIs[0] lhs
6577 /* 5075 */ // No operand predicates
6578 /* 5075 */ // MIs[0] Operand 2
6579 /* 5075 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6580 /* 5079 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6581 /* 5084 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[3]]
6582 /* 5084 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6583 /* 5089 */ GIR_EraseRootFromParent_Done,
6584 /* 5090 */ // Label 259: @5090
6585 /* 5090 */ GIM_Reject,
6586 /* 5091 */ // Label 11: @5091
6587 /* 5091 */ GIM_Try, /*On fail goto*//*Label 260*/ GIMT_Encode4(5102), // Rule ID 151 //
6588 /* 5096 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
6589 /* 5099 */ // Combiner Rule #111: extend_through_phis; wip_match_opcode 'G_PHI'
6590 /* 5099 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
6591 /* 5102 */ // Label 260: @5102
6592 /* 5102 */ GIM_Reject,
6593 /* 5103 */ // Label 12: @5103
6594 /* 5103 */ GIM_Try, /*On fail goto*//*Label 261*/ GIMT_Encode4(5114), // Rule ID 439 //
6595 /* 5108 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule267Enabled),
6596 /* 5111 */ // Combiner Rule #267: fold_global_offset; wip_match_opcode 'G_GLOBAL_VALUE'
6597 /* 5111 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner161),
6598 /* 5114 */ // Label 261: @5114
6599 /* 5114 */ GIM_Reject,
6600 /* 5115 */ // Label 13: @5115
6601 /* 5115 */ GIM_Try, /*On fail goto*//*Label 262*/ GIMT_Encode4(5126), // Rule ID 397 //
6602 /* 5120 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6603 /* 5123 */ // Combiner Rule #233: unmerge_anyext_build_vector; wip_match_opcode 'G_UNMERGE_VALUES'
6604 /* 5123 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner142),
6605 /* 5126 */ // Label 262: @5126
6606 /* 5126 */ GIM_Try, /*On fail goto*//*Label 263*/ GIMT_Encode4(5137), // Rule ID 398 //
6607 /* 5131 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
6608 /* 5134 */ // Combiner Rule #234: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
6609 /* 5134 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner143),
6610 /* 5137 */ // Label 263: @5137
6611 /* 5137 */ GIM_Try, /*On fail goto*//*Label 264*/ GIMT_Encode4(5148), // Rule ID 400 //
6612 /* 5142 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule236Enabled),
6613 /* 5145 */ // Combiner Rule #236: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
6614 /* 5145 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner145),
6615 /* 5148 */ // Label 264: @5148
6616 /* 5148 */ GIM_Try, /*On fail goto*//*Label 265*/ GIMT_Encode4(5159), // Rule ID 401 //
6617 /* 5153 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule237Enabled),
6618 /* 5156 */ // Combiner Rule #237: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
6619 /* 5156 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner146),
6620 /* 5159 */ // Label 265: @5159
6621 /* 5159 */ GIM_Try, /*On fail goto*//*Label 266*/ GIMT_Encode4(5170), // Rule ID 402 //
6622 /* 5164 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule238Enabled),
6623 /* 5167 */ // Combiner Rule #238: unmerge_dead_to_trunc; wip_match_opcode 'G_UNMERGE_VALUES'
6624 /* 5167 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner147),
6625 /* 5170 */ // Label 266: @5170
6626 /* 5170 */ GIM_Try, /*On fail goto*//*Label 267*/ GIMT_Encode4(5181), // Rule ID 403 //
6627 /* 5175 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule239Enabled),
6628 /* 5178 */ // Combiner Rule #239: unmerge_zext_to_zext; wip_match_opcode 'G_UNMERGE_VALUES'
6629 /* 5178 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner148),
6630 /* 5181 */ // Label 267: @5181
6631 /* 5181 */ GIM_Reject,
6632 /* 5182 */ // Label 14: @5182
6633 /* 5182 */ GIM_Try, /*On fail goto*//*Label 268*/ GIMT_Encode4(5196), // Rule ID 399 //
6634 /* 5187 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule235Enabled),
6635 /* 5190 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
6636 /* 5193 */ // MIs[0] dst
6637 /* 5193 */ // No operand predicates
6638 /* 5193 */ // MIs[0] merge_srcs
6639 /* 5193 */ // No operand predicates
6640 /* 5193 */ // Combiner Rule #235: merge_unmerge
6641 /* 5193 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner144),
6642 /* 5196 */ // Label 268: @5196
6643 /* 5196 */ GIM_Try, /*On fail goto*//*Label 269*/ GIMT_Encode4(5258),
6644 /* 5201 */ GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
6645 /* 5204 */ GIM_Try, /*On fail goto*//*Label 270*/ GIMT_Encode4(5225), // Rule ID 404 //
6646 /* 5209 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule240Enabled),
6647 /* 5212 */ // MIs[0] root
6648 /* 5212 */ // No operand predicates
6649 /* 5212 */ // MIs[0] x
6650 /* 5212 */ // No operand predicates
6651 /* 5212 */ // MIs[0] undef
6652 /* 5212 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6653 /* 5216 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6654 /* 5220 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6655 /* 5222 */ // Combiner Rule #240: merge_of_x_and_undef
6656 /* 5222 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner149),
6657 /* 5225 */ // Label 270: @5225
6658 /* 5225 */ GIM_Try, /*On fail goto*//*Label 271*/ GIMT_Encode4(5257), // Rule ID 405 //
6659 /* 5230 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule241Enabled),
6660 /* 5233 */ // MIs[0] root
6661 /* 5233 */ // No operand predicates
6662 /* 5233 */ // MIs[0] x
6663 /* 5233 */ // No operand predicates
6664 /* 5233 */ // MIs[0] zero
6665 /* 5233 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6666 /* 5237 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6667 /* 5241 */ // MIs[1] Operand 1
6668 /* 5241 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
6669 /* 5252 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6670 /* 5254 */ // Combiner Rule #241: merge_of_x_and_zero
6671 /* 5254 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner150),
6672 /* 5257 */ // Label 271: @5257
6673 /* 5257 */ GIM_Reject,
6674 /* 5258 */ // Label 269: @5258
6675 /* 5258 */ GIM_Reject,
6676 /* 5259 */ // Label 15: @5259
6677 /* 5259 */ GIM_Try, /*On fail goto*//*Label 272*/ GIMT_Encode4(5270), // Rule ID 75 //
6678 /* 5264 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
6679 /* 5267 */ // Combiner Rule #73: extract_all_elts_from_build_vector; wip_match_opcode 'G_BUILD_VECTOR'
6680 /* 5267 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
6681 /* 5270 */ // Label 272: @5270
6682 /* 5270 */ GIM_Try, /*On fail goto*//*Label 273*/ GIMT_Encode4(5281), // Rule ID 104 //
6683 /* 5275 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
6684 /* 5278 */ // Combiner Rule #85: propagate_undef_all_ops; wip_match_opcode 'G_BUILD_VECTOR'
6685 /* 5278 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
6686 /* 5281 */ // Label 273: @5281
6687 /* 5281 */ GIM_Try, /*On fail goto*//*Label 274*/ GIMT_Encode4(5292), // Rule ID 142 //
6688 /* 5286 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
6689 /* 5289 */ // Combiner Rule #102: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR'
6690 /* 5289 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
6691 /* 5292 */ // Label 274: @5292
6692 /* 5292 */ GIM_Try, /*On fail goto*//*Label 275*/ GIMT_Encode4(5323),
6693 /* 5297 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
6694 /* 5300 */ GIM_Try, /*On fail goto*//*Label 276*/ GIMT_Encode4(5311), // Rule ID 396 //
6695 /* 5305 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule232Enabled),
6696 /* 5308 */ // MIs[0] dst
6697 /* 5308 */ // No operand predicates
6698 /* 5308 */ // MIs[0] unused
6699 /* 5308 */ // No operand predicates
6700 /* 5308 */ // Combiner Rule #232: combine_use_vector_truncate
6701 /* 5308 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner141),
6702 /* 5311 */ // Label 276: @5311
6703 /* 5311 */ GIM_Try, /*On fail goto*//*Label 277*/ GIMT_Encode4(5322), // Rule ID 406 //
6704 /* 5316 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule242Enabled),
6705 /* 5319 */ // MIs[0] dst
6706 /* 5319 */ // No operand predicates
6707 /* 5319 */ // MIs[0] unused
6708 /* 5319 */ // No operand predicates
6709 /* 5319 */ // Combiner Rule #242: combine_build_unmerge
6710 /* 5319 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner151),
6711 /* 5322 */ // Label 277: @5322
6712 /* 5322 */ GIM_Reject,
6713 /* 5323 */ // Label 275: @5323
6714 /* 5323 */ GIM_Reject,
6715 /* 5324 */ // Label 16: @5324
6716 /* 5324 */ GIM_Try, /*On fail goto*//*Label 278*/ GIMT_Encode4(5335), // Rule ID 141 //
6717 /* 5329 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
6718 /* 5332 */ // Combiner Rule #102: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR_TRUNC'
6719 /* 5332 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
6720 /* 5335 */ // Label 278: @5335
6721 /* 5335 */ GIM_Reject,
6722 /* 5336 */ // Label 17: @5336
6723 /* 5336 */ GIM_Try, /*On fail goto*//*Label 279*/ GIMT_Encode4(5347), // Rule ID 389 //
6724 /* 5341 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule225Enabled),
6725 /* 5344 */ // Combiner Rule #225: combine_concat_vector; wip_match_opcode 'G_CONCAT_VECTORS'
6726 /* 5344 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner134),
6727 /* 5347 */ // Label 279: @5347
6728 /* 5347 */ GIM_Reject,
6729 /* 5348 */ // Label 18: @5348
6730 /* 5348 */ GIM_Try, /*On fail goto*//*Label 280*/ GIMT_Encode4(5369), // Rule ID 134 //
6731 /* 5353 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule96Enabled),
6732 /* 5356 */ // MIs[0] dst
6733 /* 5356 */ // No operand predicates
6734 /* 5356 */ // MIs[0] t
6735 /* 5356 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6736 /* 5360 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
6737 /* 5364 */ // MIs[1] ptr
6738 /* 5364 */ // No operand predicates
6739 /* 5364 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6740 /* 5366 */ // Combiner Rule #96: i2p_to_p2i
6741 /* 5366 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
6742 /* 5369 */ // Label 280: @5369
6743 /* 5369 */ GIM_Try, /*On fail goto*//*Label 281*/ GIMT_Encode4(5390), // Rule ID 96 //
6744 /* 5374 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6745 /* 5377 */ // MIs[0] dst
6746 /* 5377 */ // No operand predicates
6747 /* 5377 */ // MIs[0] __unary_undef_to_undef_match_0.x
6748 /* 5377 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6749 /* 5381 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6750 /* 5385 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6751 /* 5387 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[3]]
6752 /* 5387 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6753 /* 5390 */ // Label 281: @5390
6754 /* 5390 */ GIM_Reject,
6755 /* 5391 */ // Label 19: @5391
6756 /* 5391 */ GIM_Try, /*On fail goto*//*Label 282*/ GIMT_Encode4(5402), // Rule ID 133 //
6757 /* 5396 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
6758 /* 5399 */ // Combiner Rule #95: p2i_to_i2p; wip_match_opcode 'G_INTTOPTR'
6759 /* 5399 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
6760 /* 5402 */ // Label 282: @5402
6761 /* 5402 */ GIM_Try, /*On fail goto*//*Label 283*/ GIMT_Encode4(5423), // Rule ID 97 //
6762 /* 5407 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6763 /* 5410 */ // MIs[0] dst
6764 /* 5410 */ // No operand predicates
6765 /* 5410 */ // MIs[0] __unary_undef_to_undef_match_0.x
6766 /* 5410 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6767 /* 5414 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6768 /* 5418 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6769 /* 5420 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[4]]
6770 /* 5420 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6771 /* 5423 */ // Label 283: @5423
6772 /* 5423 */ GIM_Reject,
6773 /* 5424 */ // Label 20: @5424
6774 /* 5424 */ GIM_Try, /*On fail goto*//*Label 284*/ GIMT_Encode4(5456), // Rule ID 146 //
6775 /* 5429 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
6776 /* 5432 */ // MIs[0] dst
6777 /* 5432 */ // No operand predicates
6778 /* 5432 */ // MIs[0] src1
6779 /* 5432 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6780 /* 5436 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
6781 /* 5440 */ // MIs[1] src0
6782 /* 5440 */ // No operand predicates
6783 /* 5440 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner5),
6784 /* 5444 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6785 /* 5446 */ // Combiner Rule #106: bitcast_bitcast_to_bitcast
6786 /* 5446 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_BITCAST),
6787 /* 5449 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6788 /* 5451 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src0
6789 /* 5455 */ GIR_EraseRootFromParent_Done,
6790 /* 5456 */ // Label 284: @5456
6791 /* 5456 */ GIM_Try, /*On fail goto*//*Label 285*/ GIMT_Encode4(5477), // Rule ID 145 //
6792 /* 5461 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
6793 /* 5464 */ // MIs[0] dst
6794 /* 5464 */ // No operand predicates
6795 /* 5464 */ // MIs[0] src1
6796 /* 5464 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6797 /* 5468 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
6798 /* 5472 */ // MIs[1] src0
6799 /* 5472 */ // No operand predicates
6800 /* 5472 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6801 /* 5474 */ // Combiner Rule #105: bitcast_bitcast_fold
6802 /* 5474 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
6803 /* 5477 */ // Label 285: @5477
6804 /* 5477 */ GIM_Try, /*On fail goto*//*Label 286*/ GIMT_Encode4(5498), // Rule ID 94 //
6805 /* 5482 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6806 /* 5485 */ // MIs[0] dst
6807 /* 5485 */ // No operand predicates
6808 /* 5485 */ // MIs[0] __unary_undef_to_undef_match_0.x
6809 /* 5485 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6810 /* 5489 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6811 /* 5493 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6812 /* 5495 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[1]]
6813 /* 5495 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6814 /* 5498 */ // Label 286: @5498
6815 /* 5498 */ GIM_Reject,
6816 /* 5499 */ // Label 21: @5499
6817 /* 5499 */ GIM_Try, /*On fail goto*//*Label 287*/ GIMT_Encode4(5528), // Rule ID 24 //
6818 /* 5504 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
6819 /* 5507 */ // MIs[0] dst
6820 /* 5507 */ // No operand predicates
6821 /* 5507 */ // MIs[0] src
6822 /* 5507 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6823 /* 5511 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREEZE),
6824 /* 5515 */ // MIs[1] __idempotent_prop_match_0.x
6825 /* 5515 */ // No operand predicates
6826 /* 5515 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6827 /* 5520 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6828 /* 5522 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[0]]
6829 /* 5522 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6830 /* 5527 */ GIR_EraseRootFromParent_Done,
6831 /* 5528 */ // Label 287: @5528
6832 /* 5528 */ GIM_Try, /*On fail goto*//*Label 288*/ GIMT_Encode4(5551), // Rule ID 49 //
6833 /* 5533 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
6834 /* 5536 */ // MIs[0] root
6835 /* 5536 */ // No operand predicates
6836 /* 5536 */ // MIs[0] src
6837 /* 5536 */ // No operand predicates
6838 /* 5536 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
6839 /* 5540 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6840 /* 5545 */ // Combiner Rule #47: freeze_of_non_undef_non_poison
6841 /* 5545 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6842 /* 5550 */ GIR_EraseRootFromParent_Done,
6843 /* 5551 */ // Label 288: @5551
6844 /* 5551 */ GIM_Try, /*On fail goto*//*Label 289*/ GIMT_Encode4(5562), // Rule ID 50 //
6845 /* 5556 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
6846 /* 5559 */ // MIs[0] dst
6847 /* 5559 */ // No operand predicates
6848 /* 5559 */ // MIs[0] src
6849 /* 5559 */ // No operand predicates
6850 /* 5559 */ // Combiner Rule #48: push_freeze_to_prevent_poison_from_propagating
6851 /* 5559 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
6852 /* 5562 */ // Label 289: @5562
6853 /* 5562 */ GIM_Reject,
6854 /* 5563 */ // Label 22: @5563
6855 /* 5563 */ GIM_Try, /*On fail goto*//*Label 290*/ GIMT_Encode4(5584), // Rule ID 197 //
6856 /* 5568 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
6857 /* 5571 */ // MIs[0] dst
6858 /* 5571 */ // No operand predicates
6859 /* 5571 */ // MIs[0] src0
6860 /* 5571 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6861 /* 5575 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
6862 /* 5579 */ // MIs[1] cst
6863 /* 5579 */ // No operand predicates
6864 /* 5579 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6865 /* 5581 */ // Combiner Rule #153: constant_fold_intrinsic_trunc
6866 /* 5581 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
6867 /* 5584 */ // Label 290: @5584
6868 /* 5584 */ GIM_Reject,
6869 /* 5585 */ // Label 23: @5585
6870 /* 5585 */ GIM_Try, /*On fail goto*//*Label 291*/ GIMT_Encode4(5606), // Rule ID 198 //
6871 /* 5590 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule154Enabled),
6872 /* 5593 */ // MIs[0] dst
6873 /* 5593 */ // No operand predicates
6874 /* 5593 */ // MIs[0] src0
6875 /* 5593 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6876 /* 5597 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
6877 /* 5601 */ // MIs[1] cst
6878 /* 5601 */ // No operand predicates
6879 /* 5601 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6880 /* 5603 */ // Combiner Rule #154: constant_fold_intrinsic_round
6881 /* 5603 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
6882 /* 5606 */ // Label 291: @5606
6883 /* 5606 */ GIM_Reject,
6884 /* 5607 */ // Label 24: @5607
6885 /* 5607 */ GIM_Try, /*On fail goto*//*Label 292*/ GIMT_Encode4(5628), // Rule ID 199 //
6886 /* 5612 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
6887 /* 5615 */ // MIs[0] dst
6888 /* 5615 */ // No operand predicates
6889 /* 5615 */ // MIs[0] src0
6890 /* 5615 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6891 /* 5619 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
6892 /* 5623 */ // MIs[1] cst
6893 /* 5623 */ // No operand predicates
6894 /* 5623 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6895 /* 5625 */ // Combiner Rule #155: constant_fold_intrinsic_roundeven
6896 /* 5625 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
6897 /* 5628 */ // Label 292: @5628
6898 /* 5628 */ GIM_Reject,
6899 /* 5629 */ // Label 25: @5629
6900 /* 5629 */ GIM_Try, /*On fail goto*//*Label 293*/ GIMT_Encode4(5640), // Rule ID 76 //
6901 /* 5634 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
6902 /* 5637 */ // Combiner Rule #74: extending_loads; wip_match_opcode 'G_LOAD'
6903 /* 5637 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
6904 /* 5640 */ // Label 293: @5640
6905 /* 5640 */ GIM_Reject,
6906 /* 5641 */ // Label 26: @5641
6907 /* 5641 */ GIM_Try, /*On fail goto*//*Label 294*/ GIMT_Encode4(5652), // Rule ID 77 //
6908 /* 5646 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
6909 /* 5649 */ // Combiner Rule #74: extending_loads; wip_match_opcode 'G_SEXTLOAD'
6910 /* 5649 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
6911 /* 5652 */ // Label 294: @5652
6912 /* 5652 */ GIM_Reject,
6913 /* 5653 */ // Label 27: @5653
6914 /* 5653 */ GIM_Try, /*On fail goto*//*Label 295*/ GIMT_Encode4(5664), // Rule ID 78 //
6915 /* 5658 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
6916 /* 5661 */ // Combiner Rule #74: extending_loads; wip_match_opcode 'G_ZEXTLOAD'
6917 /* 5661 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
6918 /* 5664 */ // Label 295: @5664
6919 /* 5664 */ GIM_Reject,
6920 /* 5665 */ // Label 28: @5665
6921 /* 5665 */ GIM_Try, /*On fail goto*//*Label 296*/ GIMT_Encode4(5676), // Rule ID 106 //
6922 /* 5670 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
6923 /* 5673 */ // Combiner Rule #87: erase_undef_store; wip_match_opcode 'G_STORE'
6924 /* 5673 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner42),
6925 /* 5676 */ // Label 296: @5676
6926 /* 5676 */ GIM_Reject,
6927 /* 5677 */ // Label 29: @5677
6928 /* 5677 */ GIM_Try, /*On fail goto*//*Label 297*/ GIMT_Encode4(5688), // Rule ID 135 //
6929 /* 5682 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled),
6930 /* 5685 */ // Combiner Rule #97: anyext_trunc_fold; wip_match_opcode 'G_ANYEXT'
6931 /* 5685 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
6932 /* 5688 */ // Label 297: @5688
6933 /* 5688 */ GIM_Try, /*On fail goto*//*Label 298*/ GIMT_Encode4(5699), // Rule ID 290 //
6934 /* 5693 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
6935 /* 5696 */ // Combiner Rule #190: constant_fold_cast_op; wip_match_opcode 'G_ANYEXT'
6936 /* 5696 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
6937 /* 5699 */ // Label 298: @5699
6938 /* 5699 */ GIM_Try, /*On fail goto*//*Label 299*/ GIMT_Encode4(5720), // Rule ID 63 //
6939 /* 5704 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule61Enabled),
6940 /* 5707 */ // MIs[0] root
6941 /* 5707 */ // No operand predicates
6942 /* 5707 */ // MIs[0] select
6943 /* 5707 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6944 /* 5711 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
6945 /* 5715 */ // MIs[1] cond
6946 /* 5715 */ // No operand predicates
6947 /* 5715 */ // MIs[1] true
6948 /* 5715 */ // No operand predicates
6949 /* 5715 */ // MIs[1] false
6950 /* 5715 */ // No operand predicates
6951 /* 5715 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6952 /* 5717 */ // Combiner Rule #61: select_of_anyext
6953 /* 5717 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
6954 /* 5720 */ // Label 299: @5720
6955 /* 5720 */ GIM_Try, /*On fail goto*//*Label 300*/ GIMT_Encode4(5741), // Rule ID 58 //
6956 /* 5725 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
6957 /* 5728 */ // MIs[0] root
6958 /* 5728 */ // No operand predicates
6959 /* 5728 */ // MIs[0] second
6960 /* 5728 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6961 /* 5732 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
6962 /* 5736 */ // MIs[1] src
6963 /* 5736 */ // No operand predicates
6964 /* 5736 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6965 /* 5738 */ // Combiner Rule #56: anyext_of_anyext
6966 /* 5738 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6967 /* 5741 */ // Label 300: @5741
6968 /* 5741 */ GIM_Try, /*On fail goto*//*Label 301*/ GIMT_Encode4(5762), // Rule ID 60 //
6969 /* 5746 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
6970 /* 5749 */ // MIs[0] root
6971 /* 5749 */ // No operand predicates
6972 /* 5749 */ // MIs[0] second
6973 /* 5749 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6974 /* 5753 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
6975 /* 5757 */ // MIs[1] src
6976 /* 5757 */ // No operand predicates
6977 /* 5757 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6978 /* 5759 */ // Combiner Rule #58: anyext_of_sext
6979 /* 5759 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6980 /* 5762 */ // Label 301: @5762
6981 /* 5762 */ GIM_Try, /*On fail goto*//*Label 302*/ GIMT_Encode4(5783), // Rule ID 59 //
6982 /* 5767 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
6983 /* 5770 */ // MIs[0] root
6984 /* 5770 */ // No operand predicates
6985 /* 5770 */ // MIs[0] second
6986 /* 5770 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6987 /* 5774 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6988 /* 5778 */ // MIs[1] src
6989 /* 5778 */ // No operand predicates
6990 /* 5778 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6991 /* 5780 */ // Combiner Rule #57: anyext_of_zext
6992 /* 5780 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6993 /* 5783 */ // Label 302: @5783
6994 /* 5783 */ GIM_Try, /*On fail goto*//*Label 303*/ GIMT_Encode4(5804), // Rule ID 95 //
6995 /* 5788 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6996 /* 5791 */ // MIs[0] dst
6997 /* 5791 */ // No operand predicates
6998 /* 5791 */ // MIs[0] __unary_undef_to_undef_match_0.x
6999 /* 5791 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7000 /* 5795 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7001 /* 5799 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7002 /* 5801 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[2]]
7003 /* 5801 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
7004 /* 5804 */ // Label 303: @5804
7005 /* 5804 */ GIM_Reject,
7006 /* 5805 */ // Label 30: @5805
7007 /* 5805 */ GIM_Try, /*On fail goto*//*Label 304*/ GIMT_Encode4(5816), // Rule ID 143 //
7008 /* 5810 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
7009 /* 5813 */ // Combiner Rule #103: trunc_buildvector_fold; wip_match_opcode 'G_TRUNC'
7010 /* 5813 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
7011 /* 5816 */ // Label 304: @5816
7012 /* 5816 */ GIM_Try, /*On fail goto*//*Label 305*/ GIMT_Encode4(5827), // Rule ID 144 //
7013 /* 5821 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
7014 /* 5824 */ // Combiner Rule #104: trunc_lshr_buildvector_fold; wip_match_opcode 'G_TRUNC'
7015 /* 5824 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner50),
7016 /* 5827 */ // Label 305: @5827
7017 /* 5827 */ GIM_Try, /*On fail goto*//*Label 306*/ GIMT_Encode4(5838), // Rule ID 186 //
7018 /* 5832 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule142Enabled),
7019 /* 5835 */ // Combiner Rule #142: trunc_shift; wip_match_opcode 'G_TRUNC'
7020 /* 5835 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
7021 /* 5838 */ // Label 306: @5838
7022 /* 5838 */ GIM_Try, /*On fail goto*//*Label 307*/ GIMT_Encode4(5859), // Rule ID 64 //
7023 /* 5843 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled),
7024 /* 5846 */ // MIs[0] root
7025 /* 5846 */ // No operand predicates
7026 /* 5846 */ // MIs[0] select
7027 /* 5846 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7028 /* 5850 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
7029 /* 5854 */ // MIs[1] cond
7030 /* 5854 */ // No operand predicates
7031 /* 5854 */ // MIs[1] true
7032 /* 5854 */ // No operand predicates
7033 /* 5854 */ // MIs[1] false
7034 /* 5854 */ // No operand predicates
7035 /* 5854 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7036 /* 5856 */ // Combiner Rule #62: select_of_truncate
7037 /* 5856 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
7038 /* 5859 */ // Label 307: @5859
7039 /* 5859 */ GIM_Try, /*On fail goto*//*Label 308*/ GIMT_Encode4(5888), // Rule ID 66 //
7040 /* 5864 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
7041 /* 5867 */ // MIs[0] root
7042 /* 5867 */ // No operand predicates
7043 /* 5867 */ // MIs[0] binop
7044 /* 5867 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7045 /* 5871 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
7046 /* 5875 */ // MIs[1] x
7047 /* 5875 */ // No operand predicates
7048 /* 5875 */ // MIs[1] const
7049 /* 5875 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7050 /* 5879 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7051 /* 5883 */ // MIs[2] imm
7052 /* 5883 */ // No operand predicates
7053 /* 5883 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7054 /* 5885 */ // Combiner Rule #64: narrow_binop_add
7055 /* 5885 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
7056 /* 5888 */ // Label 308: @5888
7057 /* 5888 */ GIM_Try, /*On fail goto*//*Label 309*/ GIMT_Encode4(5917), // Rule ID 69 //
7058 /* 5893 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule67Enabled),
7059 /* 5896 */ // MIs[0] root
7060 /* 5896 */ // No operand predicates
7061 /* 5896 */ // MIs[0] binop
7062 /* 5896 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7063 /* 5900 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
7064 /* 5904 */ // MIs[1] x
7065 /* 5904 */ // No operand predicates
7066 /* 5904 */ // MIs[1] const
7067 /* 5904 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7068 /* 5908 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7069 /* 5912 */ // MIs[2] imm
7070 /* 5912 */ // No operand predicates
7071 /* 5912 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7072 /* 5914 */ // Combiner Rule #67: narrow_binop_and
7073 /* 5914 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
7074 /* 5917 */ // Label 309: @5917
7075 /* 5917 */ GIM_Try, /*On fail goto*//*Label 310*/ GIMT_Encode4(5946), // Rule ID 68 //
7076 /* 5922 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule66Enabled),
7077 /* 5925 */ // MIs[0] root
7078 /* 5925 */ // No operand predicates
7079 /* 5925 */ // MIs[0] binop
7080 /* 5925 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7081 /* 5929 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
7082 /* 5933 */ // MIs[1] x
7083 /* 5933 */ // No operand predicates
7084 /* 5933 */ // MIs[1] const
7085 /* 5933 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7086 /* 5937 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7087 /* 5941 */ // MIs[2] imm
7088 /* 5941 */ // No operand predicates
7089 /* 5941 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7090 /* 5943 */ // Combiner Rule #66: narrow_binop_mul
7091 /* 5943 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
7092 /* 5946 */ // Label 310: @5946
7093 /* 5946 */ GIM_Try, /*On fail goto*//*Label 311*/ GIMT_Encode4(5975), // Rule ID 70 //
7094 /* 5951 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
7095 /* 5954 */ // MIs[0] root
7096 /* 5954 */ // No operand predicates
7097 /* 5954 */ // MIs[0] binop
7098 /* 5954 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7099 /* 5958 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
7100 /* 5962 */ // MIs[1] x
7101 /* 5962 */ // No operand predicates
7102 /* 5962 */ // MIs[1] const
7103 /* 5962 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7104 /* 5966 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7105 /* 5970 */ // MIs[2] imm
7106 /* 5970 */ // No operand predicates
7107 /* 5970 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7108 /* 5972 */ // Combiner Rule #68: narrow_binop_or
7109 /* 5972 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
7110 /* 5975 */ // Label 311: @5975
7111 /* 5975 */ GIM_Try, /*On fail goto*//*Label 312*/ GIMT_Encode4(6004), // Rule ID 67 //
7112 /* 5980 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
7113 /* 5983 */ // MIs[0] root
7114 /* 5983 */ // No operand predicates
7115 /* 5983 */ // MIs[0] binop
7116 /* 5983 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7117 /* 5987 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
7118 /* 5991 */ // MIs[1] x
7119 /* 5991 */ // No operand predicates
7120 /* 5991 */ // MIs[1] const
7121 /* 5991 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7122 /* 5995 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7123 /* 5999 */ // MIs[2] imm
7124 /* 5999 */ // No operand predicates
7125 /* 5999 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7126 /* 6001 */ // Combiner Rule #65: narrow_binop_sub
7127 /* 6001 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
7128 /* 6004 */ // Label 312: @6004
7129 /* 6004 */ GIM_Try, /*On fail goto*//*Label 313*/ GIMT_Encode4(6036), // Rule ID 413 //
7130 /* 6009 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule247Enabled),
7131 /* 6012 */ // MIs[0] dst
7132 /* 6012 */ // No operand predicates
7133 /* 6012 */ // MIs[0] min
7134 /* 6012 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7135 /* 6016 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMIN),
7136 /* 6020 */ // MIs[1] x
7137 /* 6020 */ // No operand predicates
7138 /* 6020 */ // MIs[1] y
7139 /* 6020 */ // No operand predicates
7140 /* 6020 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner15),
7141 /* 6024 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7142 /* 6026 */ // Combiner Rule #247: trunc_usatu
7143 /* 6026 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_TRUNC_USAT_U),
7144 /* 6029 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7145 /* 6031 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7146 /* 6035 */ GIR_EraseRootFromParent_Done,
7147 /* 6036 */ // Label 313: @6036
7148 /* 6036 */ GIM_Try, /*On fail goto*//*Label 314*/ GIMT_Encode4(6065), // Rule ID 71 //
7149 /* 6041 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled),
7150 /* 6044 */ // MIs[0] root
7151 /* 6044 */ // No operand predicates
7152 /* 6044 */ // MIs[0] binop
7153 /* 6044 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7154 /* 6048 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
7155 /* 6052 */ // MIs[1] x
7156 /* 6052 */ // No operand predicates
7157 /* 6052 */ // MIs[1] const
7158 /* 6052 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7159 /* 6056 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7160 /* 6060 */ // MIs[2] imm
7161 /* 6060 */ // No operand predicates
7162 /* 6060 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7163 /* 6062 */ // Combiner Rule #69: narrow_binop_xor
7164 /* 6062 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
7165 /* 6065 */ // Label 314: @6065
7166 /* 6065 */ GIM_Try, /*On fail goto*//*Label 315*/ GIMT_Encode4(6086), // Rule ID 53 //
7167 /* 6070 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
7168 /* 6073 */ // MIs[0] root
7169 /* 6073 */ // No operand predicates
7170 /* 6073 */ // MIs[0] ext
7171 /* 6073 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7172 /* 6077 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7173 /* 6081 */ // MIs[1] src
7174 /* 6081 */ // No operand predicates
7175 /* 6081 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7176 /* 6083 */ // Combiner Rule #51: truncate_of_anyext
7177 /* 6083 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7178 /* 6086 */ // Label 315: @6086
7179 /* 6086 */ GIM_Try, /*On fail goto*//*Label 316*/ GIMT_Encode4(6110), // Rule ID 65 //
7180 /* 6091 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled),
7181 /* 6094 */ // MIs[0] root
7182 /* 6094 */ // No operand predicates
7183 /* 6094 */ // MIs[0] bv
7184 /* 6094 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7185 /* 6098 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
7186 /* 6102 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
7187 /* 6105 */ // MIs[1] unused
7188 /* 6105 */ // No operand predicates
7189 /* 6105 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7190 /* 6107 */ // Combiner Rule #63: buildvector_of_truncate
7191 /* 6107 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
7192 /* 6110 */ // Label 316: @6110
7193 /* 6110 */ GIM_Try, /*On fail goto*//*Label 317*/ GIMT_Encode4(6131), // Rule ID 52 //
7194 /* 6115 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
7195 /* 6118 */ // MIs[0] root
7196 /* 6118 */ // No operand predicates
7197 /* 6118 */ // MIs[0] ext
7198 /* 6118 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7199 /* 6122 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
7200 /* 6126 */ // MIs[1] src
7201 /* 6126 */ // No operand predicates
7202 /* 6126 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7203 /* 6128 */ // Combiner Rule #50: truncate_of_sext
7204 /* 6128 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7205 /* 6131 */ // Label 317: @6131
7206 /* 6131 */ GIM_Try, /*On fail goto*//*Label 318*/ GIMT_Encode4(6152), // Rule ID 51 //
7207 /* 6136 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
7208 /* 6139 */ // MIs[0] root
7209 /* 6139 */ // No operand predicates
7210 /* 6139 */ // MIs[0] ext
7211 /* 6139 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7212 /* 6143 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
7213 /* 6147 */ // MIs[1] src
7214 /* 6147 */ // No operand predicates
7215 /* 6147 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7216 /* 6149 */ // Combiner Rule #49: truncate_of_zext
7217 /* 6149 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7218 /* 6152 */ // Label 318: @6152
7219 /* 6152 */ GIM_Try, /*On fail goto*//*Label 319*/ GIMT_Encode4(6173), // Rule ID 93 //
7220 /* 6157 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
7221 /* 6160 */ // MIs[0] dst
7222 /* 6160 */ // No operand predicates
7223 /* 6160 */ // MIs[0] __unary_undef_to_undef_match_0.x
7224 /* 6160 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7225 /* 6164 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7226 /* 6168 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7227 /* 6170 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[0]]
7228 /* 6170 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
7229 /* 6173 */ // Label 319: @6173
7230 /* 6173 */ GIM_Try, /*On fail goto*//*Label 320*/ GIMT_Encode4(6194), // Rule ID 72 //
7231 /* 6178 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
7232 /* 6181 */ // MIs[0] root
7233 /* 6181 */ // No operand predicates
7234 /* 6181 */ // MIs[0] int
7235 /* 6181 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7236 /* 6185 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7237 /* 6189 */ // MIs[1] imm
7238 /* 6189 */ // No operand predicates
7239 /* 6189 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7240 /* 6191 */ // Combiner Rule #70: integer_of_truncate
7241 /* 6191 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner26),
7242 /* 6194 */ // Label 320: @6194
7243 /* 6194 */ GIM_Try, /*On fail goto*//*Label 321*/ GIMT_Encode4(6205), // Rule ID 411 //
7244 /* 6199 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule245Enabled),
7245 /* 6202 */ // MIs[0] dst
7246 /* 6202 */ // No operand predicates
7247 /* 6202 */ // MIs[0] src
7248 /* 6202 */ // No operand predicates
7249 /* 6202 */ // Combiner Rule #245: trunc_ssats
7250 /* 6202 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner154),
7251 /* 6205 */ // Label 321: @6205
7252 /* 6205 */ GIM_Try, /*On fail goto*//*Label 322*/ GIMT_Encode4(6216), // Rule ID 412 //
7253 /* 6210 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule246Enabled),
7254 /* 6213 */ // MIs[0] dst
7255 /* 6213 */ // No operand predicates
7256 /* 6213 */ // MIs[0] src
7257 /* 6213 */ // No operand predicates
7258 /* 6213 */ // Combiner Rule #246: trunc_ssatu
7259 /* 6213 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner155),
7260 /* 6216 */ // Label 322: @6216
7261 /* 6216 */ GIM_Reject,
7262 /* 6217 */ // Label 31: @6217
7263 /* 6217 */ GIM_Try, /*On fail goto*//*Label 323*/ GIMT_Encode4(6249), // Rule ID 414 //
7264 /* 6222 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule248Enabled),
7265 /* 6225 */ // MIs[0] dst
7266 /* 6225 */ // No operand predicates
7267 /* 6225 */ // MIs[0] src
7268 /* 6225 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7269 /* 6229 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPTOUI),
7270 /* 6233 */ // MIs[1] x
7271 /* 6233 */ // No operand predicates
7272 /* 6233 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner16),
7273 /* 6237 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7274 /* 6239 */ // Combiner Rule #248: truncusatu_to_fptouisat
7275 /* 6239 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FPTOUI_SAT),
7276 /* 6242 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7277 /* 6244 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7278 /* 6248 */ GIR_EraseRootFromParent_Done,
7279 /* 6249 */ // Label 323: @6249
7280 /* 6249 */ GIM_Reject,
7281 /* 6250 */ // Label 32: @6250
7282 /* 6250 */ GIM_Try, /*On fail goto*//*Label 324*/ GIMT_Encode4(6261), // Rule ID 289 //
7283 /* 6255 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
7284 /* 6258 */ // Combiner Rule #190: constant_fold_cast_op; wip_match_opcode 'G_SEXT'
7285 /* 6258 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
7286 /* 6261 */ // Label 324: @6261
7287 /* 6261 */ GIM_Try, /*On fail goto*//*Label 325*/ GIMT_Encode4(6282), // Rule ID 57 //
7288 /* 6266 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
7289 /* 6269 */ // MIs[0] root
7290 /* 6269 */ // No operand predicates
7291 /* 6269 */ // MIs[0] second
7292 /* 6269 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7293 /* 6273 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7294 /* 6277 */ // MIs[1] src
7295 /* 6277 */ // No operand predicates
7296 /* 6277 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7297 /* 6279 */ // Combiner Rule #55: sext_of_anyext
7298 /* 6279 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
7299 /* 6282 */ // Label 325: @6282
7300 /* 6282 */ GIM_Try, /*On fail goto*//*Label 326*/ GIMT_Encode4(6303), // Rule ID 56 //
7301 /* 6287 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
7302 /* 6290 */ // MIs[0] root
7303 /* 6290 */ // No operand predicates
7304 /* 6290 */ // MIs[0] second
7305 /* 6290 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7306 /* 6294 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
7307 /* 6298 */ // MIs[1] src
7308 /* 6298 */ // No operand predicates
7309 /* 6298 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7310 /* 6300 */ // Combiner Rule #54: sext_of_sext
7311 /* 6300 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
7312 /* 6303 */ // Label 326: @6303
7313 /* 6303 */ GIM_Try, /*On fail goto*//*Label 327*/ GIMT_Encode4(6324), // Rule ID 390 //
7314 /* 6308 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule226Enabled),
7315 /* 6311 */ // MIs[0] root
7316 /* 6311 */ // No operand predicates
7317 /* 6311 */ // MIs[0] src
7318 /* 6311 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7319 /* 6315 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
7320 /* 6319 */ // MIs[1] x
7321 /* 6319 */ // No operand predicates
7322 /* 6319 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7323 /* 6321 */ // Combiner Rule #226: sext_trunc
7324 /* 6321 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner135),
7325 /* 6324 */ // Label 327: @6324
7326 /* 6324 */ GIM_Reject,
7327 /* 6325 */ // Label 33: @6325
7328 /* 6325 */ GIM_Try, /*On fail goto*//*Label 328*/ GIMT_Encode4(6336), // Rule ID 171 //
7329 /* 6330 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule127Enabled),
7330 /* 6333 */ // Combiner Rule #127: sext_inreg_of_load; wip_match_opcode 'G_SEXT_INREG'
7331 /* 6333 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner65),
7332 /* 6336 */ // Label 328: @6336
7333 /* 6336 */ GIM_Try, /*On fail goto*//*Label 329*/ GIMT_Encode4(6347), // Rule ID 181 //
7334 /* 6341 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled),
7335 /* 6344 */ // Combiner Rule #137: redundant_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
7336 /* 6344 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
7337 /* 6347 */ // Label 329: @6347
7338 /* 6347 */ GIM_Try, /*On fail goto*//*Label 330*/ GIMT_Encode4(6358), // Rule ID 250 //
7339 /* 6352 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
7340 /* 6355 */ // Combiner Rule #183: bitfield_extract_from_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
7341 /* 6355 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner99),
7342 /* 6358 */ // Label 330: @6358
7343 /* 6358 */ GIM_Try, /*On fail goto*//*Label 331*/ GIMT_Encode4(6379), // Rule ID 61 //
7344 /* 6363 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled),
7345 /* 6366 */ // MIs[0] dst
7346 /* 6366 */ // No operand predicates
7347 /* 6366 */ // MIs[0] x
7348 /* 6366 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7349 /* 6370 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
7350 /* 6374 */ // MIs[1] src
7351 /* 6374 */ // No operand predicates
7352 /* 6374 */ // MIs[1] a
7353 /* 6374 */ // No operand predicates
7354 /* 6374 */ // MIs[0] b
7355 /* 6374 */ // No operand predicates
7356 /* 6374 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7357 /* 6376 */ // Combiner Rule #59: sext_inreg_of_sext_inreg
7358 /* 6376 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
7359 /* 6379 */ // Label 331: @6379
7360 /* 6379 */ GIM_Try, /*On fail goto*//*Label 332*/ GIMT_Encode4(6390), // Rule ID 185 //
7361 /* 6384 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule141Enabled),
7362 /* 6387 */ // MIs[0] dst
7363 /* 6387 */ // No operand predicates
7364 /* 6387 */ // MIs[0] src
7365 /* 6387 */ // No operand predicates
7366 /* 6387 */ // MIs[0] imm
7367 /* 6387 */ // No operand predicates
7368 /* 6387 */ // Combiner Rule #141: sext_inreg_to_zext_inreg
7369 /* 6387 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76),
7370 /* 6390 */ // Label 332: @6390
7371 /* 6390 */ GIM_Reject,
7372 /* 6391 */ // Label 34: @6391
7373 /* 6391 */ GIM_Try, /*On fail goto*//*Label 333*/ GIMT_Encode4(6402), // Rule ID 184 //
7374 /* 6396 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule140Enabled),
7375 /* 6399 */ // Combiner Rule #140: zext_trunc_fold; wip_match_opcode 'G_ZEXT'
7376 /* 6399 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner75),
7377 /* 6402 */ // Label 333: @6402
7378 /* 6402 */ GIM_Try, /*On fail goto*//*Label 334*/ GIMT_Encode4(6413), // Rule ID 288 //
7379 /* 6407 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
7380 /* 6410 */ // Combiner Rule #190: constant_fold_cast_op; wip_match_opcode 'G_ZEXT'
7381 /* 6410 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
7382 /* 6413 */ // Label 334: @6413
7383 /* 6413 */ GIM_Try, /*On fail goto*//*Label 335*/ GIMT_Encode4(6434), // Rule ID 62 //
7384 /* 6418 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled),
7385 /* 6421 */ // MIs[0] root
7386 /* 6421 */ // No operand predicates
7387 /* 6421 */ // MIs[0] select
7388 /* 6421 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7389 /* 6425 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
7390 /* 6429 */ // MIs[1] cond
7391 /* 6429 */ // No operand predicates
7392 /* 6429 */ // MIs[1] true
7393 /* 6429 */ // No operand predicates
7394 /* 6429 */ // MIs[1] false
7395 /* 6429 */ // No operand predicates
7396 /* 6429 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7397 /* 6431 */ // Combiner Rule #60: select_of_zext
7398 /* 6431 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
7399 /* 6434 */ // Label 335: @6434
7400 /* 6434 */ GIM_Try, /*On fail goto*//*Label 336*/ GIMT_Encode4(6455), // Rule ID 55 //
7401 /* 6439 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
7402 /* 6442 */ // MIs[0] root
7403 /* 6442 */ // No operand predicates
7404 /* 6442 */ // MIs[0] second
7405 /* 6442 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7406 /* 6446 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7407 /* 6450 */ // MIs[1] src
7408 /* 6450 */ // No operand predicates
7409 /* 6450 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7410 /* 6452 */ // Combiner Rule #53: zext_of_anyext
7411 /* 6452 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
7412 /* 6455 */ // Label 336: @6455
7413 /* 6455 */ GIM_Try, /*On fail goto*//*Label 337*/ GIMT_Encode4(6482), // Rule ID 391 //
7414 /* 6460 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
7415 /* 6463 */ // MIs[0] root
7416 /* 6463 */ // No operand predicates
7417 /* 6463 */ // MIs[0] src
7418 /* 6463 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7419 /* 6467 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
7420 /* 6471 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::NoUWrap),
7421 /* 6477 */ // MIs[1] x
7422 /* 6477 */ // No operand predicates
7423 /* 6477 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7424 /* 6479 */ // Combiner Rule #227: zext_trunc
7425 /* 6479 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner136),
7426 /* 6482 */ // Label 337: @6482
7427 /* 6482 */ GIM_Try, /*On fail goto*//*Label 338*/ GIMT_Encode4(6503), // Rule ID 54 //
7428 /* 6487 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
7429 /* 6490 */ // MIs[0] root
7430 /* 6490 */ // No operand predicates
7431 /* 6490 */ // MIs[0] second
7432 /* 6490 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7433 /* 6494 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
7434 /* 6498 */ // MIs[1] src
7435 /* 6498 */ // No operand predicates
7436 /* 6498 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7437 /* 6500 */ // Combiner Rule #52: zext_of_zext
7438 /* 6500 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
7439 /* 6503 */ // Label 338: @6503
7440 /* 6503 */ GIM_Try, /*On fail goto*//*Label 339*/ GIMT_Encode4(6520), // Rule ID 392 //
7441 /* 6508 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
7442 /* 6511 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NonNeg),
7443 /* 6517 */ // MIs[0] root
7444 /* 6517 */ // No operand predicates
7445 /* 6517 */ // MIs[0] x
7446 /* 6517 */ // No operand predicates
7447 /* 6517 */ // Combiner Rule #228: nneg_zext
7448 /* 6517 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner137),
7449 /* 6520 */ // Label 339: @6520
7450 /* 6520 */ GIM_Reject,
7451 /* 6521 */ // Label 35: @6521
7452 /* 6521 */ GIM_Try, /*On fail goto*//*Label 340*/ GIMT_Encode4(6532), // Rule ID 86 //
7453 /* 6526 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
7454 /* 6529 */ // Combiner Rule #80: binop_left_undef_to_zero; wip_match_opcode 'G_SHL'
7455 /* 6529 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
7456 /* 6532 */ // Label 340: @6532
7457 /* 6532 */ GIM_Try, /*On fail goto*//*Label 341*/ GIMT_Encode4(6543), // Rule ID 89 //
7458 /* 6537 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
7459 /* 6540 */ // Combiner Rule #81: binop_right_undef_to_undef; wip_match_opcode 'G_SHL'
7460 /* 6540 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
7461 /* 6543 */ // Label 341: @6543
7462 /* 6543 */ GIM_Try, /*On fail goto*//*Label 342*/ GIMT_Encode4(6554), // Rule ID 221 //
7463 /* 6548 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
7464 /* 6551 */ // Combiner Rule #169: shift_immed_chain; wip_match_opcode 'G_SHL'
7465 /* 6551 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
7466 /* 6554 */ // Label 342: @6554
7467 /* 6554 */ GIM_Try, /*On fail goto*//*Label 343*/ GIMT_Encode4(6565), // Rule ID 226 //
7468 /* 6559 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
7469 /* 6562 */ // Combiner Rule #170: shift_of_shifted_logic_chain; wip_match_opcode 'G_SHL'
7470 /* 6562 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
7471 /* 6565 */ // Label 343: @6565
7472 /* 6565 */ GIM_Try, /*On fail goto*//*Label 344*/ GIMT_Encode4(6576), // Rule ID 249 //
7473 /* 6570 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
7474 /* 6573 */ // Combiner Rule #182: commute_shift; wip_match_opcode 'G_SHL'
7475 /* 6573 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
7476 /* 6576 */ // Label 344: @6576
7477 /* 6576 */ GIM_Try, /*On fail goto*//*Label 345*/ GIMT_Encode4(6587), // Rule ID 263 //
7478 /* 6581 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
7479 /* 6584 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_SHL'
7480 /* 6584 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7481 /* 6587 */ // Label 345: @6587
7482 /* 6587 */ GIM_Try, /*On fail goto*//*Label 346*/ GIMT_Encode4(6598), // Rule ID 328 //
7483 /* 6592 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
7484 /* 6595 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_SHL'
7485 /* 6595 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
7486 /* 6598 */ // Label 346: @6598
7487 /* 6598 */ GIM_Try, /*On fail goto*//*Label 347*/ GIMT_Encode4(6633), // Rule ID 47 //
7488 /* 6603 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
7489 /* 6606 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
7490 /* 6612 */ // MIs[0] root
7491 /* 6612 */ // No operand predicates
7492 /* 6612 */ // MIs[0] left
7493 /* 6612 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7494 /* 6616 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
7495 /* 6620 */ // MIs[1] imm
7496 /* 6620 */ // No operand predicates
7497 /* 6620 */ // MIs[0] x
7498 /* 6620 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7499 /* 6624 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7500 /* 6628 */ // MIs[2] imm1
7501 /* 6628 */ // No operand predicates
7502 /* 6628 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7503 /* 6630 */ // Combiner Rule #45: shl_of_vscale
7504 /* 6630 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
7505 /* 6633 */ // Label 347: @6633
7506 /* 6633 */ GIM_Try, /*On fail goto*//*Label 348*/ GIMT_Encode4(6673), // Rule ID 124 //
7507 /* 6638 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
7508 /* 6641 */ // MIs[0] dst
7509 /* 6641 */ // No operand predicates
7510 /* 6641 */ // MIs[0] zero
7511 /* 6641 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7512 /* 6645 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7513 /* 6649 */ // MIs[1] Operand 1
7514 /* 6649 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
7515 /* 6660 */ // MIs[0] rhs
7516 /* 6660 */ // No operand predicates
7517 /* 6660 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7518 /* 6665 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7519 /* 6667 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[0]]
7520 /* 6667 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7521 /* 6672 */ GIR_EraseRootFromParent_Done,
7522 /* 6673 */ // Label 348: @6673
7523 /* 6673 */ GIM_Try, /*On fail goto*//*Label 349*/ GIMT_Encode4(6696), // Rule ID 114 //
7524 /* 6678 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
7525 /* 6681 */ // MIs[0] dst
7526 /* 6681 */ // No operand predicates
7527 /* 6681 */ // MIs[0] lhs
7528 /* 6681 */ // No operand predicates
7529 /* 6681 */ // MIs[0] Operand 2
7530 /* 6681 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7531 /* 6685 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7532 /* 6690 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[4]]
7533 /* 6690 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7534 /* 6695 */ GIR_EraseRootFromParent_Done,
7535 /* 6696 */ // Label 349: @6696
7536 /* 6696 */ GIM_Try, /*On fail goto*//*Label 350*/ GIMT_Encode4(6707), // Rule ID 156 //
7537 /* 6701 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
7538 /* 6704 */ // MIs[0] root
7539 /* 6704 */ // No operand predicates
7540 /* 6704 */ // MIs[0] mi.shifted
7541 /* 6704 */ // No operand predicates
7542 /* 6704 */ // MIs[0] mi.amt
7543 /* 6704 */ // No operand predicates
7544 /* 6704 */ // Combiner Rule #114: shifts_too_big @ [mi[0]]
7545 /* 6704 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
7546 /* 6707 */ // Label 350: @6707
7547 /* 6707 */ GIM_Try, /*On fail goto*//*Label 351*/ GIMT_Encode4(6718), // Rule ID 172 //
7548 /* 6712 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule128Enabled),
7549 /* 6715 */ // MIs[0] dst
7550 /* 6715 */ // No operand predicates
7551 /* 6715 */ // MIs[0] src0
7552 /* 6715 */ // No operand predicates
7553 /* 6715 */ // MIs[0] src1
7554 /* 6715 */ // No operand predicates
7555 /* 6715 */ // Combiner Rule #128: reduce_shl_of_extend
7556 /* 6715 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner66),
7557 /* 6718 */ // Label 351: @6718
7558 /* 6718 */ GIM_Reject,
7559 /* 6719 */ // Label 36: @6719
7560 /* 6719 */ GIM_Try, /*On fail goto*//*Label 352*/ GIMT_Encode4(6730), // Rule ID 91 //
7561 /* 6724 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
7562 /* 6727 */ // Combiner Rule #81: binop_right_undef_to_undef; wip_match_opcode 'G_LSHR'
7563 /* 6727 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
7564 /* 6730 */ // Label 352: @6730
7565 /* 6730 */ GIM_Try, /*On fail goto*//*Label 353*/ GIMT_Encode4(6741), // Rule ID 223 //
7566 /* 6735 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
7567 /* 6738 */ // Combiner Rule #169: shift_immed_chain; wip_match_opcode 'G_LSHR'
7568 /* 6738 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
7569 /* 6741 */ // Label 353: @6741
7570 /* 6741 */ GIM_Try, /*On fail goto*//*Label 354*/ GIMT_Encode4(6752), // Rule ID 228 //
7571 /* 6746 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
7572 /* 6749 */ // Combiner Rule #170: shift_of_shifted_logic_chain; wip_match_opcode 'G_LSHR'
7573 /* 6749 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
7574 /* 6752 */ // Label 354: @6752
7575 /* 6752 */ GIM_Try, /*On fail goto*//*Label 355*/ GIMT_Encode4(6763), // Rule ID 253 //
7576 /* 6757 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7577 /* 6760 */ // Combiner Rule #185: bitfield_extract_from_shr; wip_match_opcode 'G_LSHR'
7578 /* 6760 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
7579 /* 6763 */ // Label 355: @6763
7580 /* 6763 */ GIM_Try, /*On fail goto*//*Label 356*/ GIMT_Encode4(6774), // Rule ID 255 //
7581 /* 6768 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
7582 /* 6771 */ // Combiner Rule #186: bitfield_extract_from_shr_and; wip_match_opcode 'G_LSHR'
7583 /* 6771 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
7584 /* 6774 */ // Label 356: @6774
7585 /* 6774 */ GIM_Try, /*On fail goto*//*Label 357*/ GIMT_Encode4(6785), // Rule ID 260 //
7586 /* 6779 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
7587 /* 6782 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_LSHR'
7588 /* 6782 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7589 /* 6785 */ // Label 357: @6785
7590 /* 6785 */ GIM_Try, /*On fail goto*//*Label 358*/ GIMT_Encode4(6796), // Rule ID 326 //
7591 /* 6790 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
7592 /* 6793 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_LSHR'
7593 /* 6793 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
7594 /* 6796 */ // Label 358: @6796
7595 /* 6796 */ GIM_Try, /*On fail goto*//*Label 359*/ GIMT_Encode4(6885), // Rule ID 430 //
7596 /* 6801 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule261Enabled),
7597 /* 6804 */ // MIs[0] dst
7598 /* 6804 */ // No operand predicates
7599 /* 6804 */ // MIs[0] sum
7600 /* 6804 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7601 /* 6808 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
7602 /* 6812 */ // MIs[1] inner
7603 /* 6812 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7604 /* 6816 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
7605 /* 6820 */ // MIs[2] ext1
7606 /* 6820 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
7607 /* 6824 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
7608 /* 6828 */ // MIs[3] x
7609 /* 6828 */ GIM_RecordRegType, /*MI*/3, /*Op*/1, /*TempTypeIdx*/255,
7610 /* 6832 */ // MIs[2] ext2
7611 /* 6832 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/4, /*MI*/2, /*OpIdx*/2, // MIs[4]
7612 /* 6836 */ GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_ZEXT),
7613 /* 6840 */ // MIs[4] y
7614 /* 6840 */ // No operand predicates
7615 /* 6840 */ // MIs[1] Operand 2
7616 /* 6840 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
7617 /* 6844 */ // MIs[0] Operand 2
7618 /* 6844 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
7619 /* 6848 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner22),
7620 /* 6852 */ GIM_CheckIsSafeToFold, /*NumInsns*/4,
7621 /* 6854 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7622 /* 6857 */ // Combiner Rule #261: avgceil_u_match
7623 /* 6857 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UAVGCEIL),
7624 /* 6860 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7625 /* 6865 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // x
7626 /* 6869 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // y
7627 /* 6873 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
7628 /* 6877 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
7629 /* 6881 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7630 /* 6884 */ GIR_EraseRootFromParent_Done,
7631 /* 6885 */ // Label 359: @6885
7632 /* 6885 */ GIM_Try, /*On fail goto*//*Label 360*/ GIMT_Encode4(6962), // Rule ID 428 //
7633 /* 6890 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule259Enabled),
7634 /* 6893 */ // MIs[0] dst
7635 /* 6893 */ // No operand predicates
7636 /* 6893 */ // MIs[0] sum
7637 /* 6893 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7638 /* 6897 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
7639 /* 6901 */ // MIs[1] ext1
7640 /* 6901 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7641 /* 6905 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
7642 /* 6909 */ // MIs[2] x
7643 /* 6909 */ GIM_RecordRegType, /*MI*/2, /*Op*/1, /*TempTypeIdx*/255,
7644 /* 6913 */ // MIs[1] ext2
7645 /* 6913 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
7646 /* 6917 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
7647 /* 6921 */ // MIs[3] y
7648 /* 6921 */ // No operand predicates
7649 /* 6921 */ // MIs[0] Operand 2
7650 /* 6921 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
7651 /* 6925 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner20),
7652 /* 6929 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
7653 /* 6931 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7654 /* 6934 */ // Combiner Rule #259: avgfloor_u_match
7655 /* 6934 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UAVGFLOOR),
7656 /* 6937 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7657 /* 6942 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // x
7658 /* 6946 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // y
7659 /* 6950 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
7660 /* 6954 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
7661 /* 6958 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7662 /* 6961 */ GIR_EraseRootFromParent_Done,
7663 /* 6962 */ // Label 360: @6962
7664 /* 6962 */ GIM_Try, /*On fail goto*//*Label 361*/ GIMT_Encode4(6991), // Rule ID 415 //
7665 /* 6967 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule249Enabled),
7666 /* 6970 */ // MIs[0] dst
7667 /* 6970 */ // No operand predicates
7668 /* 6970 */ // MIs[0] d2
7669 /* 6970 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7670 /* 6974 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
7671 /* 6978 */ // MIs[1] d1
7672 /* 6978 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7673 /* 6982 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
7674 /* 6986 */ // MIs[2] x
7675 /* 6986 */ // No operand predicates
7676 /* 6986 */ // MIs[2] y
7677 /* 6986 */ // No operand predicates
7678 /* 6986 */ // MIs[0] z
7679 /* 6986 */ // No operand predicates
7680 /* 6986 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7681 /* 6988 */ // Combiner Rule #249: lshr_of_trunc_of_lshr
7682 /* 6988 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner156),
7683 /* 6991 */ // Label 361: @6991
7684 /* 6991 */ GIM_Try, /*On fail goto*//*Label 362*/ GIMT_Encode4(7031), // Rule ID 125 //
7685 /* 6996 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
7686 /* 6999 */ // MIs[0] dst
7687 /* 6999 */ // No operand predicates
7688 /* 6999 */ // MIs[0] zero
7689 /* 6999 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7690 /* 7003 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7691 /* 7007 */ // MIs[1] Operand 1
7692 /* 7007 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
7693 /* 7018 */ // MIs[0] rhs
7694 /* 7018 */ // No operand predicates
7695 /* 7018 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7696 /* 7023 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7697 /* 7025 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[1]]
7698 /* 7025 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7699 /* 7030 */ GIR_EraseRootFromParent_Done,
7700 /* 7031 */ // Label 362: @7031
7701 /* 7031 */ GIM_Try, /*On fail goto*//*Label 363*/ GIMT_Encode4(7054), // Rule ID 116 //
7702 /* 7036 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
7703 /* 7039 */ // MIs[0] dst
7704 /* 7039 */ // No operand predicates
7705 /* 7039 */ // MIs[0] lhs
7706 /* 7039 */ // No operand predicates
7707 /* 7039 */ // MIs[0] Operand 2
7708 /* 7039 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7709 /* 7043 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7710 /* 7048 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[6]]
7711 /* 7048 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7712 /* 7053 */ GIR_EraseRootFromParent_Done,
7713 /* 7054 */ // Label 363: @7054
7714 /* 7054 */ GIM_Try, /*On fail goto*//*Label 364*/ GIMT_Encode4(7065), // Rule ID 158 //
7715 /* 7059 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
7716 /* 7062 */ // MIs[0] root
7717 /* 7062 */ // No operand predicates
7718 /* 7062 */ // MIs[0] mi.shifted
7719 /* 7062 */ // No operand predicates
7720 /* 7062 */ // MIs[0] mi.amt
7721 /* 7062 */ // No operand predicates
7722 /* 7062 */ // Combiner Rule #114: shifts_too_big @ [mi[2]]
7723 /* 7062 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
7724 /* 7065 */ // Label 364: @7065
7725 /* 7065 */ GIM_Reject,
7726 /* 7066 */ // Label 37: @7066
7727 /* 7066 */ GIM_Try, /*On fail goto*//*Label 365*/ GIMT_Encode4(7077), // Rule ID 90 //
7728 /* 7071 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
7729 /* 7074 */ // Combiner Rule #81: binop_right_undef_to_undef; wip_match_opcode 'G_ASHR'
7730 /* 7074 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
7731 /* 7077 */ // Label 365: @7077
7732 /* 7077 */ GIM_Try, /*On fail goto*//*Label 366*/ GIMT_Encode4(7088), // Rule ID 169 //
7733 /* 7082 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule125Enabled),
7734 /* 7085 */ // Combiner Rule #125: shl_ashr_to_sext_inreg; wip_match_opcode 'G_ASHR'
7735 /* 7085 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner64),
7736 /* 7088 */ // Label 366: @7088
7737 /* 7088 */ GIM_Try, /*On fail goto*//*Label 367*/ GIMT_Encode4(7099), // Rule ID 222 //
7738 /* 7093 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
7739 /* 7096 */ // Combiner Rule #169: shift_immed_chain; wip_match_opcode 'G_ASHR'
7740 /* 7096 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
7741 /* 7099 */ // Label 367: @7099
7742 /* 7099 */ GIM_Try, /*On fail goto*//*Label 368*/ GIMT_Encode4(7110), // Rule ID 227 //
7743 /* 7104 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
7744 /* 7107 */ // Combiner Rule #170: shift_of_shifted_logic_chain; wip_match_opcode 'G_ASHR'
7745 /* 7107 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
7746 /* 7110 */ // Label 368: @7110
7747 /* 7110 */ GIM_Try, /*On fail goto*//*Label 369*/ GIMT_Encode4(7121), // Rule ID 252 //
7748 /* 7115 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7749 /* 7118 */ // Combiner Rule #185: bitfield_extract_from_shr; wip_match_opcode 'G_ASHR'
7750 /* 7118 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
7751 /* 7121 */ // Label 369: @7121
7752 /* 7121 */ GIM_Try, /*On fail goto*//*Label 370*/ GIMT_Encode4(7132), // Rule ID 254 //
7753 /* 7126 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
7754 /* 7129 */ // Combiner Rule #186: bitfield_extract_from_shr_and; wip_match_opcode 'G_ASHR'
7755 /* 7129 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
7756 /* 7132 */ // Label 370: @7132
7757 /* 7132 */ GIM_Try, /*On fail goto*//*Label 371*/ GIMT_Encode4(7143), // Rule ID 259 //
7758 /* 7137 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
7759 /* 7140 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_ASHR'
7760 /* 7140 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7761 /* 7143 */ // Label 371: @7143
7762 /* 7143 */ GIM_Try, /*On fail goto*//*Label 372*/ GIMT_Encode4(7154), // Rule ID 327 //
7763 /* 7148 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
7764 /* 7151 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_ASHR'
7765 /* 7151 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
7766 /* 7154 */ // Label 372: @7154
7767 /* 7154 */ GIM_Try, /*On fail goto*//*Label 373*/ GIMT_Encode4(7243), // Rule ID 431 //
7768 /* 7159 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule262Enabled),
7769 /* 7162 */ // MIs[0] dst
7770 /* 7162 */ // No operand predicates
7771 /* 7162 */ // MIs[0] sum
7772 /* 7162 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7773 /* 7166 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
7774 /* 7170 */ // MIs[1] inner
7775 /* 7170 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7776 /* 7174 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
7777 /* 7178 */ // MIs[2] ext1
7778 /* 7178 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
7779 /* 7182 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_SEXT),
7780 /* 7186 */ // MIs[3] x
7781 /* 7186 */ GIM_RecordRegType, /*MI*/3, /*Op*/1, /*TempTypeIdx*/255,
7782 /* 7190 */ // MIs[2] ext2
7783 /* 7190 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/4, /*MI*/2, /*OpIdx*/2, // MIs[4]
7784 /* 7194 */ GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_SEXT),
7785 /* 7198 */ // MIs[4] y
7786 /* 7198 */ // No operand predicates
7787 /* 7198 */ // MIs[1] Operand 2
7788 /* 7198 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
7789 /* 7202 */ // MIs[0] Operand 2
7790 /* 7202 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
7791 /* 7206 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner23),
7792 /* 7210 */ GIM_CheckIsSafeToFold, /*NumInsns*/4,
7793 /* 7212 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7794 /* 7215 */ // Combiner Rule #262: avgceil_s_match
7795 /* 7215 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SAVGCEIL),
7796 /* 7218 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7797 /* 7223 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // x
7798 /* 7227 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // y
7799 /* 7231 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
7800 /* 7235 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
7801 /* 7239 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7802 /* 7242 */ GIR_EraseRootFromParent_Done,
7803 /* 7243 */ // Label 373: @7243
7804 /* 7243 */ GIM_Try, /*On fail goto*//*Label 374*/ GIMT_Encode4(7320), // Rule ID 429 //
7805 /* 7248 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule260Enabled),
7806 /* 7251 */ // MIs[0] dst
7807 /* 7251 */ // No operand predicates
7808 /* 7251 */ // MIs[0] sum
7809 /* 7251 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7810 /* 7255 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
7811 /* 7259 */ // MIs[1] ext1
7812 /* 7259 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7813 /* 7263 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
7814 /* 7267 */ // MIs[2] x
7815 /* 7267 */ GIM_RecordRegType, /*MI*/2, /*Op*/1, /*TempTypeIdx*/255,
7816 /* 7271 */ // MIs[1] ext2
7817 /* 7271 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
7818 /* 7275 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_SEXT),
7819 /* 7279 */ // MIs[3] y
7820 /* 7279 */ // No operand predicates
7821 /* 7279 */ // MIs[0] Operand 2
7822 /* 7279 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
7823 /* 7283 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner21),
7824 /* 7287 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
7825 /* 7289 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7826 /* 7292 */ // Combiner Rule #260: avgfloor_s_match
7827 /* 7292 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SAVGFLOOR),
7828 /* 7295 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7829 /* 7300 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // x
7830 /* 7304 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // y
7831 /* 7308 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
7832 /* 7312 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
7833 /* 7316 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7834 /* 7319 */ GIR_EraseRootFromParent_Done,
7835 /* 7320 */ // Label 374: @7320
7836 /* 7320 */ GIM_Try, /*On fail goto*//*Label 375*/ GIMT_Encode4(7360), // Rule ID 126 //
7837 /* 7325 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
7838 /* 7328 */ // MIs[0] dst
7839 /* 7328 */ // No operand predicates
7840 /* 7328 */ // MIs[0] zero
7841 /* 7328 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7842 /* 7332 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7843 /* 7336 */ // MIs[1] Operand 1
7844 /* 7336 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
7845 /* 7347 */ // MIs[0] rhs
7846 /* 7347 */ // No operand predicates
7847 /* 7347 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7848 /* 7352 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7849 /* 7354 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[2]]
7850 /* 7354 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7851 /* 7359 */ GIR_EraseRootFromParent_Done,
7852 /* 7360 */ // Label 375: @7360
7853 /* 7360 */ GIM_Try, /*On fail goto*//*Label 376*/ GIMT_Encode4(7383), // Rule ID 115 //
7854 /* 7365 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
7855 /* 7368 */ // MIs[0] dst
7856 /* 7368 */ // No operand predicates
7857 /* 7368 */ // MIs[0] lhs
7858 /* 7368 */ // No operand predicates
7859 /* 7368 */ // MIs[0] Operand 2
7860 /* 7368 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7861 /* 7372 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7862 /* 7377 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[5]]
7863 /* 7377 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7864 /* 7382 */ GIR_EraseRootFromParent_Done,
7865 /* 7383 */ // Label 376: @7383
7866 /* 7383 */ GIM_Try, /*On fail goto*//*Label 377*/ GIMT_Encode4(7394), // Rule ID 157 //
7867 /* 7388 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
7868 /* 7391 */ // MIs[0] root
7869 /* 7391 */ // No operand predicates
7870 /* 7391 */ // MIs[0] mi.shifted
7871 /* 7391 */ // No operand predicates
7872 /* 7391 */ // MIs[0] mi.amt
7873 /* 7391 */ // No operand predicates
7874 /* 7391 */ // Combiner Rule #114: shifts_too_big @ [mi[1]]
7875 /* 7391 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
7876 /* 7394 */ // Label 377: @7394
7877 /* 7394 */ GIM_Reject,
7878 /* 7395 */ // Label 38: @7395
7879 /* 7395 */ GIM_Try, /*On fail goto*//*Label 378*/ GIMT_Encode4(7406), // Rule ID 237 //
7880 /* 7400 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
7881 /* 7403 */ // Combiner Rule #174: funnel_shift_to_rotate; wip_match_opcode 'G_FSHL'
7882 /* 7403 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
7883 /* 7406 */ // Label 378: @7406
7884 /* 7406 */ GIM_Try, /*On fail goto*//*Label 379*/ GIMT_Encode4(7417), // Rule ID 241 //
7885 /* 7411 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled),
7886 /* 7414 */ // Combiner Rule #177: funnel_shift_overshift; wip_match_opcode 'G_FSHL'
7887 /* 7414 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
7888 /* 7417 */ // Label 379: @7417
7889 /* 7417 */ GIM_Try, /*On fail goto*//*Label 380*/ GIMT_Encode4(7437), // Rule ID 240 //
7890 /* 7422 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
7891 /* 7425 */ // MIs[0] x
7892 /* 7425 */ // No operand predicates
7893 /* 7425 */ // MIs[0] y
7894 /* 7425 */ // No operand predicates
7895 /* 7425 */ // MIs[0] z
7896 /* 7425 */ // No operand predicates
7897 /* 7425 */ // MIs[0] Operand 3
7898 /* 7425 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
7899 /* 7429 */ // Combiner Rule #176: funnel_shift_left_zero
7900 /* 7429 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7901 /* 7432 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
7902 /* 7434 */ GIR_RootToRootCopy, /*OpIdx*/1, // y
7903 /* 7436 */ GIR_EraseRootFromParent_Done,
7904 /* 7437 */ // Label 380: @7437
7905 /* 7437 */ GIM_Reject,
7906 /* 7438 */ // Label 39: @7438
7907 /* 7438 */ GIM_Try, /*On fail goto*//*Label 381*/ GIMT_Encode4(7449), // Rule ID 238 //
7908 /* 7443 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
7909 /* 7446 */ // Combiner Rule #174: funnel_shift_to_rotate; wip_match_opcode 'G_FSHR'
7910 /* 7446 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
7911 /* 7449 */ // Label 381: @7449
7912 /* 7449 */ GIM_Try, /*On fail goto*//*Label 382*/ GIMT_Encode4(7460), // Rule ID 242 //
7913 /* 7454 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled),
7914 /* 7457 */ // Combiner Rule #177: funnel_shift_overshift; wip_match_opcode 'G_FSHR'
7915 /* 7457 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
7916 /* 7460 */ // Label 382: @7460
7917 /* 7460 */ GIM_Try, /*On fail goto*//*Label 383*/ GIMT_Encode4(7480), // Rule ID 239 //
7918 /* 7465 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
7919 /* 7468 */ // MIs[0] x
7920 /* 7468 */ // No operand predicates
7921 /* 7468 */ // MIs[0] y
7922 /* 7468 */ // No operand predicates
7923 /* 7468 */ // MIs[0] z
7924 /* 7468 */ // No operand predicates
7925 /* 7468 */ // MIs[0] Operand 3
7926 /* 7468 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
7927 /* 7472 */ // Combiner Rule #175: funnel_shift_right_zero
7928 /* 7472 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7929 /* 7475 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
7930 /* 7477 */ GIR_RootToRootCopy, /*OpIdx*/2, // z
7931 /* 7479 */ GIR_EraseRootFromParent_Done,
7932 /* 7480 */ // Label 383: @7480
7933 /* 7480 */ GIM_Reject,
7934 /* 7481 */ // Label 40: @7481
7935 /* 7481 */ GIM_Try, /*On fail goto*//*Label 384*/ GIMT_Encode4(7504), // Rule ID 119 //
7936 /* 7486 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
7937 /* 7489 */ // MIs[0] dst
7938 /* 7489 */ // No operand predicates
7939 /* 7489 */ // MIs[0] lhs
7940 /* 7489 */ // No operand predicates
7941 /* 7489 */ // MIs[0] Operand 2
7942 /* 7489 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7943 /* 7493 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7944 /* 7498 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[9]]
7945 /* 7498 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7946 /* 7503 */ GIR_EraseRootFromParent_Done,
7947 /* 7504 */ // Label 384: @7504
7948 /* 7504 */ GIM_Reject,
7949 /* 7505 */ // Label 41: @7505
7950 /* 7505 */ GIM_Try, /*On fail goto*//*Label 385*/ GIMT_Encode4(7528), // Rule ID 118 //
7951 /* 7510 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
7952 /* 7513 */ // MIs[0] dst
7953 /* 7513 */ // No operand predicates
7954 /* 7513 */ // MIs[0] lhs
7955 /* 7513 */ // No operand predicates
7956 /* 7513 */ // MIs[0] Operand 2
7957 /* 7513 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7958 /* 7517 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7959 /* 7522 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[8]]
7960 /* 7522 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7961 /* 7527 */ GIR_EraseRootFromParent_Done,
7962 /* 7528 */ // Label 385: @7528
7963 /* 7528 */ GIM_Reject,
7964 /* 7529 */ // Label 42: @7529
7965 /* 7529 */ GIM_Try, /*On fail goto*//*Label 386*/ GIMT_Encode4(7540), // Rule ID 164 //
7966 /* 7534 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule120Enabled),
7967 /* 7537 */ // Combiner Rule #120: icmp_to_true_false_known_bits; wip_match_opcode 'G_ICMP'
7968 /* 7537 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner61),
7969 /* 7540 */ // Label 386: @7540
7970 /* 7540 */ GIM_Try, /*On fail goto*//*Label 387*/ GIMT_Encode4(7551), // Rule ID 165 //
7971 /* 7545 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
7972 /* 7548 */ // Combiner Rule #121: icmp_to_lhs_known_bits; wip_match_opcode 'G_ICMP'
7973 /* 7548 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner62),
7974 /* 7551 */ // Label 387: @7551
7975 /* 7551 */ GIM_Try, /*On fail goto*//*Label 388*/ GIMT_Encode4(7562), // Rule ID 168 //
7976 /* 7556 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule124Enabled),
7977 /* 7559 */ // Combiner Rule #124: redundant_binop_in_equality; wip_match_opcode 'G_ICMP'
7978 /* 7559 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
7979 /* 7562 */ // Label 388: @7562
7980 /* 7562 */ GIM_Try, /*On fail goto*//*Label 389*/ GIMT_Encode4(7573), // Rule ID 162 //
7981 /* 7567 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
7982 /* 7570 */ // MIs[0] root
7983 /* 7570 */ // No operand predicates
7984 /* 7570 */ // MIs[0] pred
7985 /* 7570 */ // No operand predicates
7986 /* 7570 */ // MIs[0] lhs
7987 /* 7570 */ // No operand predicates
7988 /* 7570 */ // MIs[0] rhs
7989 /* 7570 */ // No operand predicates
7990 /* 7570 */ // Combiner Rule #118: canonicalize_icmp
7991 /* 7570 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner59),
7992 /* 7573 */ // Label 389: @7573
7993 /* 7573 */ GIM_Try, /*On fail goto*//*Label 390*/ GIMT_Encode4(7584), // Rule ID 438 //
7994 /* 7578 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule266Enabled),
7995 /* 7581 */ // MIs[0] dst
7996 /* 7581 */ // No operand predicates
7997 /* 7581 */ // MIs[0] tst
7998 /* 7581 */ // No operand predicates
7999 /* 7581 */ // MIs[0] src1
8000 /* 7581 */ // No operand predicates
8001 /* 7581 */ // MIs[0] src2
8002 /* 7581 */ // No operand predicates
8003 /* 7581 */ // Combiner Rule #266: icmp_redundant_trunc
8004 /* 7581 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
8005 /* 7584 */ // Label 390: @7584
8006 /* 7584 */ GIM_Reject,
8007 /* 7585 */ // Label 43: @7585
8008 /* 7585 */ GIM_Try, /*On fail goto*//*Label 391*/ GIMT_Encode4(7596), // Rule ID 163 //
8009 /* 7590 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
8010 /* 7593 */ // MIs[0] root
8011 /* 7593 */ // No operand predicates
8012 /* 7593 */ // MIs[0] pred
8013 /* 7593 */ // No operand predicates
8014 /* 7593 */ // MIs[0] lhs
8015 /* 7593 */ // No operand predicates
8016 /* 7593 */ // MIs[0] rhs
8017 /* 7593 */ // No operand predicates
8018 /* 7593 */ // Combiner Rule #119: canonicalize_fcmp
8019 /* 7593 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner60),
8020 /* 7596 */ // Label 391: @7596
8021 /* 7596 */ GIM_Reject,
8022 /* 7597 */ // Label 44: @7597
8023 /* 7597 */ GIM_Try, /*On fail goto*//*Label 392*/ GIMT_Encode4(7608), // Rule ID 109 //
8024 /* 7602 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
8025 /* 7605 */ // Combiner Rule #89: select_same_val; wip_match_opcode 'G_SELECT'
8026 /* 7605 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner44),
8027 /* 7608 */ // Label 392: @7608
8028 /* 7608 */ GIM_Try, /*On fail goto*//*Label 393*/ GIMT_Encode4(7619), // Rule ID 175 //
8029 /* 7613 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled),
8030 /* 7616 */ // Combiner Rule #131: select_constant_cmp; wip_match_opcode 'G_SELECT'
8031 /* 7616 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner68),
8032 /* 7619 */ // Label 393: @7619
8033 /* 7619 */ GIM_Try, /*On fail goto*//*Label 394*/ GIMT_Encode4(7630), // Rule ID 177 //
8034 /* 7624 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule133Enabled),
8035 /* 7627 */ // Combiner Rule #133: match_selects; wip_match_opcode 'G_SELECT'
8036 /* 7627 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
8037 /* 7630 */ // Label 394: @7630
8038 /* 7630 */ GIM_Try, /*On fail goto*//*Label 395*/ GIMT_Encode4(7641), // Rule ID 351 //
8039 /* 7635 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
8040 /* 7638 */ // Combiner Rule #214: select_to_minmax; wip_match_opcode 'G_SELECT'
8041 /* 7638 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
8042 /* 7641 */ // Label 395: @7641
8043 /* 7641 */ GIM_Try, /*On fail goto*//*Label 396*/ GIMT_Encode4(7721), // Rule ID 436 //
8044 /* 7646 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule264Enabled),
8045 /* 7649 */ // MIs[0] dst
8046 /* 7649 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
8047 /* 7653 */ // MIs[0] c
8048 /* 7653 */ // No operand predicates
8049 /* 7653 */ // MIs[0] Operand 2
8050 /* 7653 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
8051 /* 7657 */ // MIs[0] x
8052 /* 7657 */ // No operand predicates
8053 /* 7657 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
8054 /* 7661 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
8055 /* 7664 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
8056 /* 7667 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
8057 /* 7677 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8058 /* 7680 */ // Combiner Rule #264: select_zero_true
8059 /* 7680 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
8060 /* 7683 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8061 /* 7688 */ GIR_RootToRootCopy, /*OpIdx*/1, // c
8062 /* 7690 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
8063 /* 7693 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FREEZE),
8064 /* 7697 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8065 /* 7702 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // x
8066 /* 7706 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
8067 /* 7710 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
8068 /* 7714 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
8069 /* 7717 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
8070 /* 7720 */ GIR_EraseRootFromParent_Done,
8071 /* 7721 */ // Label 396: @7721
8072 /* 7721 */ GIM_Try, /*On fail goto*//*Label 397*/ GIMT_Encode4(7770), // Rule ID 178 //
8073 /* 7726 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule134Enabled),
8074 /* 7729 */ // MIs[0] dst
8075 /* 7729 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
8076 /* 7733 */ // MIs[0] c
8077 /* 7733 */ // No operand predicates
8078 /* 7733 */ // MIs[0] x
8079 /* 7733 */ // No operand predicates
8080 /* 7733 */ // MIs[0] Operand 3
8081 /* 7733 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
8082 /* 7737 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
8083 /* 7741 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8084 /* 7744 */ // Combiner Rule #134: select_zero_false
8085 /* 7744 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FREEZE),
8086 /* 7747 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8087 /* 7752 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
8088 /* 7754 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
8089 /* 7758 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
8090 /* 7762 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // c
8091 /* 7766 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
8092 /* 7769 */ GIR_EraseRootFromParent_Done,
8093 /* 7770 */ // Label 397: @7770
8094 /* 7770 */ GIM_Try, /*On fail goto*//*Label 398*/ GIMT_Encode4(7791), // Rule ID 176 //
8095 /* 7775 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled),
8096 /* 7778 */ // MIs[0] root
8097 /* 7778 */ // No operand predicates
8098 /* 7778 */ // MIs[0] tst
8099 /* 7778 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8100 /* 7782 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
8101 /* 7786 */ // MIs[1] tst1
8102 /* 7786 */ // No operand predicates
8103 /* 7786 */ // MIs[1] a
8104 /* 7786 */ // No operand predicates
8105 /* 7786 */ // MIs[1] b
8106 /* 7786 */ // No operand predicates
8107 /* 7786 */ // MIs[0] x
8108 /* 7786 */ // No operand predicates
8109 /* 7786 */ // MIs[0] y
8110 /* 7786 */ // No operand predicates
8111 /* 7786 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8112 /* 7788 */ // Combiner Rule #132: select_to_iminmax
8113 /* 7788 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
8114 /* 7791 */ // Label 398: @7791
8115 /* 7791 */ GIM_Try, /*On fail goto*//*Label 399*/ GIMT_Encode4(7827), // Rule ID 179 //
8116 /* 7796 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule135Enabled),
8117 /* 7799 */ // MIs[0] dst
8118 /* 7799 */ // No operand predicates
8119 /* 7799 */ // MIs[0] c
8120 /* 7799 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8121 /* 7803 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
8122 /* 7807 */ // MIs[1] src
8123 /* 7807 */ // No operand predicates
8124 /* 7807 */ // MIs[1] Operand 2
8125 /* 7807 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 255,
8126 /* 7811 */ // MIs[0] x
8127 /* 7811 */ // No operand predicates
8128 /* 7811 */ // MIs[0] y
8129 /* 7811 */ // No operand predicates
8130 /* 7811 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8131 /* 7813 */ // Combiner Rule #135: select_not
8132 /* 7813 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SELECT),
8133 /* 7816 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8134 /* 7818 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
8135 /* 7822 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
8136 /* 7824 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
8137 /* 7826 */ GIR_EraseRootFromParent_Done,
8138 /* 7827 */ // Label 399: @7827
8139 /* 7827 */ GIM_Try, /*On fail goto*//*Label 400*/ GIMT_Encode4(7856), // Rule ID 174 //
8140 /* 7832 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule130Enabled),
8141 /* 7835 */ // MIs[0] dst
8142 /* 7835 */ // No operand predicates
8143 /* 7835 */ // MIs[0] undef
8144 /* 7835 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8145 /* 7839 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8146 /* 7843 */ // MIs[0] x
8147 /* 7843 */ // No operand predicates
8148 /* 7843 */ // MIs[0] y
8149 /* 7843 */ // No operand predicates
8150 /* 7843 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
8151 /* 7848 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8152 /* 7850 */ // Combiner Rule #130: select_undef_cmp
8153 /* 7850 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
8154 /* 7855 */ GIR_EraseRootFromParent_Done,
8155 /* 7856 */ // Label 400: @7856
8156 /* 7856 */ GIM_Reject,
8157 /* 7857 */ // Label 45: @7857
8158 /* 7857 */ GIM_Try, /*On fail goto*//*Label 401*/ GIMT_Encode4(7868), // Rule ID 362 //
8159 /* 7862 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8160 /* 7865 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDO'
8161 /* 7865 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8162 /* 7868 */ // Label 401: @7868
8163 /* 7868 */ GIM_Try, /*On fail goto*//*Label 402*/ GIMT_Encode4(7879), // Rule ID 408 //
8164 /* 7873 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule243Enabled),
8165 /* 7876 */ // Combiner Rule #243: match_addos; wip_match_opcode 'G_UADDO'
8166 /* 7876 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner152),
8167 /* 7879 */ // Label 402: @7879
8168 /* 7879 */ GIM_Try, /*On fail goto*//*Label 403*/ GIMT_Encode4(7890), // Rule ID 448 //
8169 /* 7884 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule276Enabled),
8170 /* 7887 */ // MIs[0] dst
8171 /* 7887 */ // No operand predicates
8172 /* 7887 */ // MIs[0] carry_out
8173 /* 7887 */ // No operand predicates
8174 /* 7887 */ // MIs[0] src1
8175 /* 7887 */ // No operand predicates
8176 /* 7887 */ // MIs[0] src2
8177 /* 7887 */ // No operand predicates
8178 /* 7887 */ // Combiner Rule #276: simplify_uaddo
8179 /* 7887 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner165),
8180 /* 7890 */ // Label 403: @7890
8181 /* 7890 */ GIM_Reject,
8182 /* 7891 */ // Label 46: @7891
8183 /* 7891 */ GIM_Try, /*On fail goto*//*Label 404*/ GIMT_Encode4(7902), // Rule ID 210 //
8184 /* 7896 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
8185 /* 7899 */ // Combiner Rule #164: adde_to_addo; wip_match_opcode 'G_UADDE'
8186 /* 7899 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
8187 /* 7902 */ // Label 404: @7902
8188 /* 7902 */ GIM_Reject,
8189 /* 7903 */ // Label 47: @7903
8190 /* 7903 */ GIM_Try, /*On fail goto*//*Label 405*/ GIMT_Encode4(7914), // Rule ID 410 //
8191 /* 7908 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule244Enabled),
8192 /* 7911 */ // Combiner Rule #244: match_subo_no_overflow; wip_match_opcode 'G_USUBO'
8193 /* 7911 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
8194 /* 7914 */ // Label 405: @7914
8195 /* 7914 */ GIM_Reject,
8196 /* 7915 */ // Label 48: @7915
8197 /* 7915 */ GIM_Try, /*On fail goto*//*Label 406*/ GIMT_Encode4(7926), // Rule ID 212 //
8198 /* 7920 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
8199 /* 7923 */ // Combiner Rule #164: adde_to_addo; wip_match_opcode 'G_USUBE'
8200 /* 7923 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
8201 /* 7926 */ // Label 406: @7926
8202 /* 7926 */ GIM_Reject,
8203 /* 7927 */ // Label 49: @7927
8204 /* 7927 */ GIM_Try, /*On fail goto*//*Label 407*/ GIMT_Encode4(7938), // Rule ID 363 //
8205 /* 7932 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8206 /* 7935 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDO'
8207 /* 7935 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8208 /* 7938 */ // Label 407: @7938
8209 /* 7938 */ GIM_Try, /*On fail goto*//*Label 408*/ GIMT_Encode4(7949), // Rule ID 407 //
8210 /* 7943 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule243Enabled),
8211 /* 7946 */ // Combiner Rule #243: match_addos; wip_match_opcode 'G_SADDO'
8212 /* 7946 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner152),
8213 /* 7949 */ // Label 408: @7949
8214 /* 7949 */ GIM_Reject,
8215 /* 7950 */ // Label 50: @7950
8216 /* 7950 */ GIM_Try, /*On fail goto*//*Label 409*/ GIMT_Encode4(7961), // Rule ID 211 //
8217 /* 7955 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
8218 /* 7958 */ // Combiner Rule #164: adde_to_addo; wip_match_opcode 'G_SADDE'
8219 /* 7958 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
8220 /* 7961 */ // Label 409: @7961
8221 /* 7961 */ GIM_Reject,
8222 /* 7962 */ // Label 51: @7962
8223 /* 7962 */ GIM_Try, /*On fail goto*//*Label 410*/ GIMT_Encode4(7973), // Rule ID 409 //
8224 /* 7967 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule244Enabled),
8225 /* 7970 */ // Combiner Rule #244: match_subo_no_overflow; wip_match_opcode 'G_SSUBO'
8226 /* 7970 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
8227 /* 7973 */ // Label 410: @7973
8228 /* 7973 */ GIM_Reject,
8229 /* 7974 */ // Label 52: @7974
8230 /* 7974 */ GIM_Try, /*On fail goto*//*Label 411*/ GIMT_Encode4(7985), // Rule ID 213 //
8231 /* 7979 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
8232 /* 7982 */ // Combiner Rule #164: adde_to_addo; wip_match_opcode 'G_SSUBE'
8233 /* 7982 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
8234 /* 7985 */ // Label 411: @7985
8235 /* 7985 */ GIM_Reject,
8236 /* 7986 */ // Label 53: @7986
8237 /* 7986 */ GIM_Try, /*On fail goto*//*Label 412*/ GIMT_Encode4(7997), // Rule ID 206 //
8238 /* 7991 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
8239 /* 7994 */ // Combiner Rule #162: mulo_by_2; wip_match_opcode 'G_UMULO'
8240 /* 7994 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
8241 /* 7997 */ // Label 412: @7997
8242 /* 7997 */ GIM_Try, /*On fail goto*//*Label 413*/ GIMT_Encode4(8008), // Rule ID 208 //
8243 /* 8002 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
8244 /* 8005 */ // Combiner Rule #163: mulo_by_0; wip_match_opcode 'G_UMULO'
8245 /* 8005 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
8246 /* 8008 */ // Label 413: @8008
8247 /* 8008 */ GIM_Try, /*On fail goto*//*Label 414*/ GIMT_Encode4(8019), // Rule ID 364 //
8248 /* 8013 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8249 /* 8016 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULO'
8250 /* 8016 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8251 /* 8019 */ // Label 414: @8019
8252 /* 8019 */ GIM_Reject,
8253 /* 8020 */ // Label 54: @8020
8254 /* 8020 */ GIM_Try, /*On fail goto*//*Label 415*/ GIMT_Encode4(8031), // Rule ID 207 //
8255 /* 8025 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
8256 /* 8028 */ // Combiner Rule #162: mulo_by_2; wip_match_opcode 'G_SMULO'
8257 /* 8028 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
8258 /* 8031 */ // Label 415: @8031
8259 /* 8031 */ GIM_Try, /*On fail goto*//*Label 416*/ GIMT_Encode4(8042), // Rule ID 209 //
8260 /* 8036 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
8261 /* 8039 */ // Combiner Rule #163: mulo_by_0; wip_match_opcode 'G_SMULO'
8262 /* 8039 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
8263 /* 8042 */ // Label 416: @8042
8264 /* 8042 */ GIM_Try, /*On fail goto*//*Label 417*/ GIMT_Encode4(8053), // Rule ID 365 //
8265 /* 8047 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8266 /* 8050 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULO'
8267 /* 8050 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8268 /* 8053 */ // Label 417: @8053
8269 /* 8053 */ GIM_Reject,
8270 /* 8054 */ // Label 55: @8054
8271 /* 8054 */ GIM_Try, /*On fail goto*//*Label 418*/ GIMT_Encode4(8065), // Rule ID 300 //
8272 /* 8059 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
8273 /* 8062 */ // Combiner Rule #193: mulh_to_lshr; wip_match_opcode 'G_UMULH'
8274 /* 8062 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
8275 /* 8065 */ // Label 418: @8065
8276 /* 8065 */ GIM_Try, /*On fail goto*//*Label 419*/ GIMT_Encode4(8076), // Rule ID 366 //
8277 /* 8070 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8278 /* 8073 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULH'
8279 /* 8073 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8280 /* 8076 */ // Label 419: @8076
8281 /* 8076 */ GIM_Reject,
8282 /* 8077 */ // Label 56: @8077
8283 /* 8077 */ GIM_Try, /*On fail goto*//*Label 420*/ GIMT_Encode4(8088), // Rule ID 367 //
8284 /* 8082 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8285 /* 8085 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULH'
8286 /* 8085 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8287 /* 8088 */ // Label 420: @8088
8288 /* 8088 */ GIM_Reject,
8289 /* 8089 */ // Label 57: @8089
8290 /* 8089 */ GIM_Try, /*On fail goto*//*Label 421*/ GIMT_Encode4(8100), // Rule ID 368 //
8291 /* 8094 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8292 /* 8097 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDSAT'
8293 /* 8097 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8294 /* 8100 */ // Label 421: @8100
8295 /* 8100 */ GIM_Reject,
8296 /* 8101 */ // Label 58: @8101
8297 /* 8101 */ GIM_Try, /*On fail goto*//*Label 422*/ GIMT_Encode4(8112), // Rule ID 369 //
8298 /* 8106 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8299 /* 8109 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDSAT'
8300 /* 8109 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8301 /* 8112 */ // Label 422: @8112
8302 /* 8112 */ GIM_Reject,
8303 /* 8113 */ // Label 59: @8113
8304 /* 8113 */ GIM_Try, /*On fail goto*//*Label 423*/ GIMT_Encode4(8124), // Rule ID 225 //
8305 /* 8118 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
8306 /* 8121 */ // Combiner Rule #169: shift_immed_chain; wip_match_opcode 'G_USHLSAT'
8307 /* 8121 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
8308 /* 8124 */ // Label 423: @8124
8309 /* 8124 */ GIM_Try, /*On fail goto*//*Label 424*/ GIMT_Encode4(8135), // Rule ID 229 //
8310 /* 8129 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
8311 /* 8132 */ // Combiner Rule #170: shift_of_shifted_logic_chain; wip_match_opcode 'G_USHLSAT'
8312 /* 8132 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
8313 /* 8135 */ // Label 424: @8135
8314 /* 8135 */ GIM_Reject,
8315 /* 8136 */ // Label 60: @8136
8316 /* 8136 */ GIM_Try, /*On fail goto*//*Label 425*/ GIMT_Encode4(8147), // Rule ID 224 //
8317 /* 8141 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
8318 /* 8144 */ // Combiner Rule #169: shift_immed_chain; wip_match_opcode 'G_SSHLSAT'
8319 /* 8144 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
8320 /* 8147 */ // Label 425: @8147
8321 /* 8147 */ GIM_Try, /*On fail goto*//*Label 426*/ GIMT_Encode4(8158), // Rule ID 230 //
8322 /* 8152 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
8323 /* 8155 */ // Combiner Rule #170: shift_of_shifted_logic_chain; wip_match_opcode 'G_SSHLSAT'
8324 /* 8155 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
8325 /* 8158 */ // Label 426: @8158
8326 /* 8158 */ GIM_Reject,
8327 /* 8159 */ // Label 61: @8159
8328 /* 8159 */ GIM_Try, /*On fail goto*//*Label 427*/ GIMT_Encode4(8170), // Rule ID 370 //
8329 /* 8164 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8330 /* 8167 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIX'
8331 /* 8167 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8332 /* 8170 */ // Label 427: @8170
8333 /* 8170 */ GIM_Reject,
8334 /* 8171 */ // Label 62: @8171
8335 /* 8171 */ GIM_Try, /*On fail goto*//*Label 428*/ GIMT_Encode4(8182), // Rule ID 371 //
8336 /* 8176 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8337 /* 8179 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIX'
8338 /* 8179 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8339 /* 8182 */ // Label 428: @8182
8340 /* 8182 */ GIM_Reject,
8341 /* 8183 */ // Label 63: @8183
8342 /* 8183 */ GIM_Try, /*On fail goto*//*Label 429*/ GIMT_Encode4(8194), // Rule ID 372 //
8343 /* 8188 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8344 /* 8191 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIXSAT'
8345 /* 8191 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8346 /* 8194 */ // Label 429: @8194
8347 /* 8194 */ GIM_Reject,
8348 /* 8195 */ // Label 64: @8195
8349 /* 8195 */ GIM_Try, /*On fail goto*//*Label 430*/ GIMT_Encode4(8206), // Rule ID 373 //
8350 /* 8200 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8351 /* 8203 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIXSAT'
8352 /* 8203 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8353 /* 8206 */ // Label 430: @8206
8354 /* 8206 */ GIM_Reject,
8355 /* 8207 */ // Label 65: @8207
8356 /* 8207 */ GIM_Try, /*On fail goto*//*Label 431*/ GIMT_Encode4(8218), // Rule ID 301 //
8357 /* 8212 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
8358 /* 8215 */ // Combiner Rule #194: redundant_neg_operands; wip_match_opcode 'G_FADD'
8359 /* 8215 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
8360 /* 8218 */ // Label 431: @8218
8361 /* 8218 */ GIM_Try, /*On fail goto*//*Label 432*/ GIMT_Encode4(8229), // Rule ID 308 //
8362 /* 8223 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule196Enabled),
8363 /* 8226 */ // Combiner Rule #196: combine_fadd_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
8364 /* 8226 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner111),
8365 /* 8229 */ // Label 432: @8229
8366 /* 8229 */ GIM_Try, /*On fail goto*//*Label 433*/ GIMT_Encode4(8240), // Rule ID 309 //
8367 /* 8234 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
8368 /* 8237 */ // Combiner Rule #197: combine_fadd_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
8369 /* 8237 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner112),
8370 /* 8240 */ // Label 433: @8240
8371 /* 8240 */ GIM_Try, /*On fail goto*//*Label 434*/ GIMT_Encode4(8251), // Rule ID 310 //
8372 /* 8245 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
8373 /* 8248 */ // Combiner Rule #198: combine_fadd_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
8374 /* 8248 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
8375 /* 8251 */ // Label 434: @8251
8376 /* 8251 */ GIM_Try, /*On fail goto*//*Label 435*/ GIMT_Encode4(8262), // Rule ID 311 //
8377 /* 8256 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule199Enabled),
8378 /* 8259 */ // Combiner Rule #199: combine_fadd_fpext_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
8379 /* 8259 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114),
8380 /* 8262 */ // Label 435: @8262
8381 /* 8262 */ GIM_Try, /*On fail goto*//*Label 436*/ GIMT_Encode4(8273), // Rule ID 334 //
8382 /* 8267 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
8383 /* 8270 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_FADD'
8384 /* 8270 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
8385 /* 8273 */ // Label 436: @8273
8386 /* 8273 */ GIM_Try, /*On fail goto*//*Label 437*/ GIMT_Encode4(8284), // Rule ID 374 //
8387 /* 8278 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
8388 /* 8281 */ // Combiner Rule #217: commute_fp_constant_to_rhs; wip_match_opcode 'G_FADD'
8389 /* 8281 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8390 /* 8284 */ // Label 437: @8284
8391 /* 8284 */ GIM_Try, /*On fail goto*//*Label 438*/ GIMT_Encode4(8307), // Rule ID 148 //
8392 /* 8289 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
8393 /* 8292 */ // MIs[0] dst
8394 /* 8292 */ // No operand predicates
8395 /* 8292 */ // MIs[0] x
8396 /* 8292 */ // No operand predicates
8397 /* 8292 */ // MIs[0] y
8398 /* 8292 */ // No operand predicates
8399 /* 8292 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
8400 /* 8296 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8401 /* 8301 */ // Combiner Rule #108: right_identity_neg_zero_fp
8402 /* 8301 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8403 /* 8306 */ GIR_EraseRootFromParent_Done,
8404 /* 8307 */ // Label 438: @8307
8405 /* 8307 */ GIM_Try, /*On fail goto*//*Label 439*/ GIMT_Encode4(8336), // Rule ID 149 //
8406 /* 8312 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule109Enabled),
8407 /* 8315 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmNsz),
8408 /* 8321 */ // MIs[0] dst
8409 /* 8321 */ // No operand predicates
8410 /* 8321 */ // MIs[0] x
8411 /* 8321 */ // No operand predicates
8412 /* 8321 */ // MIs[0] y
8413 /* 8321 */ // No operand predicates
8414 /* 8321 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
8415 /* 8325 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8416 /* 8330 */ // Combiner Rule #109: right_identity_neg_zero_fp_nsz
8417 /* 8330 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8418 /* 8335 */ GIR_EraseRootFromParent_Done,
8419 /* 8336 */ // Label 439: @8336
8420 /* 8336 */ GIM_Try, /*On fail goto*//*Label 440*/ GIMT_Encode4(8347), // Rule ID 274 //
8421 /* 8341 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
8422 /* 8344 */ // MIs[0] d
8423 /* 8344 */ // No operand predicates
8424 /* 8344 */ // MIs[0] mi.src0
8425 /* 8344 */ // No operand predicates
8426 /* 8344 */ // MIs[0] mi.src1
8427 /* 8344 */ // No operand predicates
8428 /* 8344 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[0]]
8429 /* 8344 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
8430 /* 8347 */ // Label 440: @8347
8431 /* 8347 */ GIM_Reject,
8432 /* 8348 */ // Label 66: @8348
8433 /* 8348 */ GIM_Try, /*On fail goto*//*Label 441*/ GIMT_Encode4(8359), // Rule ID 302 //
8434 /* 8353 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
8435 /* 8356 */ // Combiner Rule #194: redundant_neg_operands; wip_match_opcode 'G_FSUB'
8436 /* 8356 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
8437 /* 8359 */ // Label 441: @8359
8438 /* 8359 */ GIM_Try, /*On fail goto*//*Label 442*/ GIMT_Encode4(8370), // Rule ID 312 //
8439 /* 8364 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
8440 /* 8367 */ // Combiner Rule #200: combine_fsub_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
8441 /* 8367 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner115),
8442 /* 8370 */ // Label 442: @8370
8443 /* 8370 */ GIM_Try, /*On fail goto*//*Label 443*/ GIMT_Encode4(8381), // Rule ID 313 //
8444 /* 8375 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
8445 /* 8378 */ // Combiner Rule #201: combine_fsub_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
8446 /* 8378 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner116),
8447 /* 8381 */ // Label 443: @8381
8448 /* 8381 */ GIM_Try, /*On fail goto*//*Label 444*/ GIMT_Encode4(8392), // Rule ID 314 //
8449 /* 8386 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule202Enabled),
8450 /* 8389 */ // Combiner Rule #202: combine_fsub_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
8451 /* 8389 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner117),
8452 /* 8392 */ // Label 444: @8392
8453 /* 8392 */ GIM_Try, /*On fail goto*//*Label 445*/ GIMT_Encode4(8403), // Rule ID 315 //
8454 /* 8397 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule203Enabled),
8455 /* 8400 */ // Combiner Rule #203: combine_fsub_fpext_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
8456 /* 8400 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8457 /* 8403 */ // Label 445: @8403
8458 /* 8403 */ GIM_Try, /*On fail goto*//*Label 446*/ GIMT_Encode4(8414), // Rule ID 335 //
8459 /* 8408 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
8460 /* 8411 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_FSUB'
8461 /* 8411 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
8462 /* 8414 */ // Label 446: @8414
8463 /* 8414 */ GIM_Try, /*On fail goto*//*Label 447*/ GIMT_Encode4(8425), // Rule ID 352 //
8464 /* 8419 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
8465 /* 8422 */ // Combiner Rule #215: fsub_to_fneg; wip_match_opcode 'G_FSUB'
8466 /* 8422 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
8467 /* 8425 */ // Label 447: @8425
8468 /* 8425 */ GIM_Try, /*On fail goto*//*Label 448*/ GIMT_Encode4(8436), // Rule ID 275 //
8469 /* 8430 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
8470 /* 8433 */ // MIs[0] d
8471 /* 8433 */ // No operand predicates
8472 /* 8433 */ // MIs[0] mi.src0
8473 /* 8433 */ // No operand predicates
8474 /* 8433 */ // MIs[0] mi.src1
8475 /* 8433 */ // No operand predicates
8476 /* 8433 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[1]]
8477 /* 8433 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
8478 /* 8436 */ // Label 448: @8436
8479 /* 8436 */ GIM_Reject,
8480 /* 8437 */ // Label 67: @8437
8481 /* 8437 */ GIM_Try, /*On fail goto*//*Label 449*/ GIMT_Encode4(8448), // Rule ID 303 //
8482 /* 8442 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
8483 /* 8445 */ // Combiner Rule #194: redundant_neg_operands; wip_match_opcode 'G_FMUL'
8484 /* 8445 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
8485 /* 8448 */ // Label 449: @8448
8486 /* 8448 */ GIM_Try, /*On fail goto*//*Label 450*/ GIMT_Encode4(8459), // Rule ID 333 //
8487 /* 8453 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
8488 /* 8456 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_FMUL'
8489 /* 8456 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
8490 /* 8459 */ // Label 450: @8459
8491 /* 8459 */ GIM_Try, /*On fail goto*//*Label 451*/ GIMT_Encode4(8470), // Rule ID 375 //
8492 /* 8464 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
8493 /* 8467 */ // Combiner Rule #217: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMUL'
8494 /* 8467 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8495 /* 8470 */ // Label 451: @8470
8496 /* 8470 */ GIM_Try, /*On fail goto*//*Label 452*/ GIMT_Encode4(8493), // Rule ID 138 //
8497 /* 8475 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule100Enabled),
8498 /* 8478 */ // MIs[0] dst
8499 /* 8478 */ // No operand predicates
8500 /* 8478 */ // MIs[0] x
8501 /* 8478 */ // No operand predicates
8502 /* 8478 */ // MIs[0] y
8503 /* 8478 */ // No operand predicates
8504 /* 8478 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
8505 /* 8482 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8506 /* 8487 */ // Combiner Rule #100: right_identity_one_fp
8507 /* 8487 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8508 /* 8492 */ GIR_EraseRootFromParent_Done,
8509 /* 8493 */ // Label 452: @8493
8510 /* 8493 */ GIM_Try, /*On fail goto*//*Label 453*/ GIMT_Encode4(8513), // Rule ID 150 //
8511 /* 8498 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled),
8512 /* 8501 */ // MIs[0] dst
8513 /* 8501 */ // No operand predicates
8514 /* 8501 */ // MIs[0] x
8515 /* 8501 */ // No operand predicates
8516 /* 8501 */ // MIs[0] y
8517 /* 8501 */ // No operand predicates
8518 /* 8501 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner8),
8519 /* 8505 */ // Combiner Rule #110: right_identity_neg_one_fp
8520 /* 8505 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
8521 /* 8508 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8522 /* 8510 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
8523 /* 8512 */ GIR_EraseRootFromParent_Done,
8524 /* 8513 */ // Label 453: @8513
8525 /* 8513 */ GIM_Try, /*On fail goto*//*Label 454*/ GIMT_Encode4(8524), // Rule ID 276 //
8526 /* 8518 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
8527 /* 8521 */ // MIs[0] d
8528 /* 8521 */ // No operand predicates
8529 /* 8521 */ // MIs[0] mi.src0
8530 /* 8521 */ // No operand predicates
8531 /* 8521 */ // MIs[0] mi.src1
8532 /* 8521 */ // No operand predicates
8533 /* 8521 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[2]]
8534 /* 8521 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
8535 /* 8524 */ // Label 454: @8524
8536 /* 8524 */ GIM_Reject,
8537 /* 8525 */ // Label 68: @8525
8538 /* 8525 */ GIM_Try, /*On fail goto*//*Label 455*/ GIMT_Encode4(8536), // Rule ID 287 //
8539 /* 8530 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule189Enabled),
8540 /* 8533 */ // Combiner Rule #189: constant_fold_fma; wip_match_opcode 'G_FMA'
8541 /* 8533 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
8542 /* 8536 */ // Label 455: @8536
8543 /* 8536 */ GIM_Try, /*On fail goto*//*Label 456*/ GIMT_Encode4(8547), // Rule ID 306 //
8544 /* 8541 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
8545 /* 8544 */ // Combiner Rule #194: redundant_neg_operands; wip_match_opcode 'G_FMA'
8546 /* 8544 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
8547 /* 8547 */ // Label 456: @8547
8548 /* 8547 */ GIM_Reject,
8549 /* 8548 */ // Label 69: @8548
8550 /* 8548 */ GIM_Try, /*On fail goto*//*Label 457*/ GIMT_Encode4(8559), // Rule ID 286 //
8551 /* 8553 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule189Enabled),
8552 /* 8556 */ // Combiner Rule #189: constant_fold_fma; wip_match_opcode 'G_FMAD'
8553 /* 8556 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
8554 /* 8559 */ // Label 457: @8559
8555 /* 8559 */ GIM_Try, /*On fail goto*//*Label 458*/ GIMT_Encode4(8570), // Rule ID 305 //
8556 /* 8564 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
8557 /* 8567 */ // Combiner Rule #194: redundant_neg_operands; wip_match_opcode 'G_FMAD'
8558 /* 8567 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
8559 /* 8570 */ // Label 458: @8570
8560 /* 8570 */ GIM_Reject,
8561 /* 8571 */ // Label 70: @8571
8562 /* 8571 */ GIM_Try, /*On fail goto*//*Label 459*/ GIMT_Encode4(8582), // Rule ID 304 //
8563 /* 8576 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
8564 /* 8579 */ // Combiner Rule #194: redundant_neg_operands; wip_match_opcode 'G_FDIV'
8565 /* 8579 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
8566 /* 8582 */ // Label 459: @8582
8567 /* 8582 */ GIM_Try, /*On fail goto*//*Label 460*/ GIMT_Encode4(8593), // Rule ID 336 //
8568 /* 8587 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
8569 /* 8590 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_FDIV'
8570 /* 8590 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
8571 /* 8593 */ // Label 460: @8593
8572 /* 8593 */ GIM_Try, /*On fail goto*//*Label 461*/ GIMT_Encode4(8604), // Rule ID 277 //
8573 /* 8598 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
8574 /* 8601 */ // MIs[0] d
8575 /* 8601 */ // No operand predicates
8576 /* 8601 */ // MIs[0] mi.src0
8577 /* 8601 */ // No operand predicates
8578 /* 8601 */ // MIs[0] mi.src1
8579 /* 8601 */ // No operand predicates
8580 /* 8601 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[3]]
8581 /* 8601 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
8582 /* 8604 */ // Label 461: @8604
8583 /* 8604 */ GIM_Try, /*On fail goto*//*Label 462*/ GIMT_Encode4(8615), // Rule ID 349 //
8584 /* 8609 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
8585 /* 8612 */ // MIs[0] dst
8586 /* 8612 */ // No operand predicates
8587 /* 8612 */ // MIs[0] src1
8588 /* 8612 */ // No operand predicates
8589 /* 8612 */ // MIs[0] src2
8590 /* 8612 */ // No operand predicates
8591 /* 8612 */ // Combiner Rule #212: fdiv_repeated_divison
8592 /* 8612 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner125),
8593 /* 8615 */ // Label 462: @8615
8594 /* 8615 */ GIM_Reject,
8595 /* 8616 */ // Label 71: @8616
8596 /* 8616 */ GIM_Try, /*On fail goto*//*Label 463*/ GIMT_Encode4(8627), // Rule ID 337 //
8597 /* 8621 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
8598 /* 8624 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_FREM'
8599 /* 8624 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
8600 /* 8627 */ // Label 463: @8627
8601 /* 8627 */ GIM_Try, /*On fail goto*//*Label 464*/ GIMT_Encode4(8638), // Rule ID 278 //
8602 /* 8632 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
8603 /* 8635 */ // MIs[0] d
8604 /* 8635 */ // No operand predicates
8605 /* 8635 */ // MIs[0] mi.src0
8606 /* 8635 */ // No operand predicates
8607 /* 8635 */ // MIs[0] mi.src1
8608 /* 8635 */ // No operand predicates
8609 /* 8635 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[4]]
8610 /* 8635 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
8611 /* 8638 */ // Label 464: @8638
8612 /* 8638 */ GIM_Reject,
8613 /* 8639 */ // Label 72: @8639
8614 /* 8639 */ GIM_Try, /*On fail goto*//*Label 465*/ GIMT_Encode4(8660), // Rule ID 218 //
8615 /* 8644 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
8616 /* 8647 */ // MIs[0] dst
8617 /* 8647 */ // No operand predicates
8618 /* 8647 */ // MIs[0] float
8619 /* 8647 */ // No operand predicates
8620 /* 8647 */ // MIs[0] int
8621 /* 8647 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8622 /* 8651 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8623 /* 8655 */ // MIs[1] imm
8624 /* 8655 */ // No operand predicates
8625 /* 8655 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8626 /* 8657 */ // Combiner Rule #166: expand_const_fpowi
8627 /* 8657 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
8628 /* 8660 */ // Label 465: @8660
8629 /* 8660 */ GIM_Reject,
8630 /* 8661 */ // Label 73: @8661
8631 /* 8661 */ GIM_Try, /*On fail goto*//*Label 466*/ GIMT_Encode4(8682), // Rule ID 192 //
8632 /* 8666 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
8633 /* 8669 */ // MIs[0] dst
8634 /* 8669 */ // No operand predicates
8635 /* 8669 */ // MIs[0] src0
8636 /* 8669 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8637 /* 8673 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8638 /* 8677 */ // MIs[1] cst
8639 /* 8677 */ // No operand predicates
8640 /* 8677 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8641 /* 8679 */ // Combiner Rule #148: constant_fold_flog2
8642 /* 8679 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8643 /* 8682 */ // Label 466: @8682
8644 /* 8682 */ GIM_Reject,
8645 /* 8683 */ // Label 74: @8683
8646 /* 8683 */ GIM_Try, /*On fail goto*//*Label 467*/ GIMT_Encode4(8704), // Rule ID 189 //
8647 /* 8688 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
8648 /* 8691 */ // MIs[0] dst
8649 /* 8691 */ // No operand predicates
8650 /* 8691 */ // MIs[0] src0
8651 /* 8691 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8652 /* 8695 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8653 /* 8699 */ // MIs[1] cst
8654 /* 8699 */ // No operand predicates
8655 /* 8699 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8656 /* 8701 */ // Combiner Rule #145: constant_fold_fneg
8657 /* 8701 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8658 /* 8704 */ // Label 467: @8704
8659 /* 8704 */ GIM_Try, /*On fail goto*//*Label 468*/ GIMT_Encode4(8733), // Rule ID 136 //
8660 /* 8709 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule98Enabled),
8661 /* 8712 */ // MIs[0] dst
8662 /* 8712 */ // No operand predicates
8663 /* 8712 */ // MIs[0] t
8664 /* 8712 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8665 /* 8716 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
8666 /* 8720 */ // MIs[1] src
8667 /* 8720 */ // No operand predicates
8668 /* 8720 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
8669 /* 8725 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8670 /* 8727 */ // Combiner Rule #98: fneg_fneg_fold
8671 /* 8727 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
8672 /* 8732 */ GIR_EraseRootFromParent_Done,
8673 /* 8733 */ // Label 468: @8733
8674 /* 8733 */ GIM_Reject,
8675 /* 8734 */ // Label 75: @8734
8676 /* 8734 */ GIM_Try, /*On fail goto*//*Label 469*/ GIMT_Encode4(8755), // Rule ID 194 //
8677 /* 8739 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
8678 /* 8742 */ // MIs[0] dst
8679 /* 8742 */ // No operand predicates
8680 /* 8742 */ // MIs[0] src0
8681 /* 8742 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8682 /* 8746 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8683 /* 8750 */ // MIs[1] cst
8684 /* 8750 */ // No operand predicates
8685 /* 8750 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8686 /* 8752 */ // Combiner Rule #150: constant_fold_fpext
8687 /* 8752 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8688 /* 8755 */ // Label 469: @8755
8689 /* 8755 */ GIM_Reject,
8690 /* 8756 */ // Label 76: @8756
8691 /* 8756 */ GIM_Try, /*On fail goto*//*Label 470*/ GIMT_Encode4(8777), // Rule ID 193 //
8692 /* 8761 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule149Enabled),
8693 /* 8764 */ // MIs[0] dst
8694 /* 8764 */ // No operand predicates
8695 /* 8764 */ // MIs[0] src0
8696 /* 8764 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8697 /* 8768 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8698 /* 8772 */ // MIs[1] cst
8699 /* 8772 */ // No operand predicates
8700 /* 8772 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8701 /* 8774 */ // Combiner Rule #149: constant_fold_fptrunc
8702 /* 8774 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8703 /* 8777 */ // Label 470: @8777
8704 /* 8777 */ GIM_Try, /*On fail goto*//*Label 471*/ GIMT_Encode4(8798), // Rule ID 147 //
8705 /* 8782 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
8706 /* 8785 */ // MIs[0] dst
8707 /* 8785 */ // No operand predicates
8708 /* 8785 */ // MIs[0] src1
8709 /* 8785 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8710 /* 8789 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
8711 /* 8793 */ // MIs[1] src0
8712 /* 8793 */ // No operand predicates
8713 /* 8793 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8714 /* 8795 */ // Combiner Rule #107: fptrunc_fpext_fold
8715 /* 8795 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
8716 /* 8798 */ // Label 471: @8798
8717 /* 8798 */ GIM_Reject,
8718 /* 8799 */ // Label 77: @8799
8719 /* 8799 */ GIM_Try, /*On fail goto*//*Label 472*/ GIMT_Encode4(8820), // Rule ID 98 //
8720 /* 8804 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
8721 /* 8807 */ // MIs[0] dst
8722 /* 8807 */ // No operand predicates
8723 /* 8807 */ // MIs[0] __unary_undef_to_undef_match_0.x
8724 /* 8807 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8725 /* 8811 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8726 /* 8815 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8727 /* 8817 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[5]]
8728 /* 8817 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
8729 /* 8820 */ // Label 472: @8820
8730 /* 8820 */ GIM_Reject,
8731 /* 8821 */ // Label 78: @8821
8732 /* 8821 */ GIM_Try, /*On fail goto*//*Label 473*/ GIMT_Encode4(8842), // Rule ID 99 //
8733 /* 8826 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
8734 /* 8829 */ // MIs[0] dst
8735 /* 8829 */ // No operand predicates
8736 /* 8829 */ // MIs[0] __unary_undef_to_undef_match_0.x
8737 /* 8829 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8738 /* 8833 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8739 /* 8837 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8740 /* 8839 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[6]]
8741 /* 8839 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
8742 /* 8842 */ // Label 473: @8842
8743 /* 8842 */ GIM_Reject,
8744 /* 8843 */ // Label 79: @8843
8745 /* 8843 */ GIM_Try, /*On fail goto*//*Label 474*/ GIMT_Encode4(8854), // Rule ID 82 //
8746 /* 8848 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
8747 /* 8851 */ // Combiner Rule #77: undef_to_fp_zero; wip_match_opcode 'G_SITOFP'
8748 /* 8851 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
8749 /* 8854 */ // Label 474: @8854
8750 /* 8854 */ GIM_Try, /*On fail goto*//*Label 475*/ GIMT_Encode4(8869), // Rule ID 202 //
8751 /* 8859 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
8752 /* 8862 */ // MIs[0] dst
8753 /* 8862 */ // No operand predicates
8754 /* 8862 */ // MIs[0] Operand 1
8755 /* 8862 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
8756 /* 8866 */ // Combiner Rule #158: itof_const_zero_fold_si
8757 /* 8866 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
8758 /* 8869 */ // Label 475: @8869
8759 /* 8869 */ GIM_Reject,
8760 /* 8870 */ // Label 80: @8870
8761 /* 8870 */ GIM_Try, /*On fail goto*//*Label 476*/ GIMT_Encode4(8881), // Rule ID 81 //
8762 /* 8875 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
8763 /* 8878 */ // Combiner Rule #77: undef_to_fp_zero; wip_match_opcode 'G_UITOFP'
8764 /* 8878 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
8765 /* 8881 */ // Label 476: @8881
8766 /* 8881 */ GIM_Try, /*On fail goto*//*Label 477*/ GIMT_Encode4(8896), // Rule ID 203 //
8767 /* 8886 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
8768 /* 8889 */ // MIs[0] dst
8769 /* 8889 */ // No operand predicates
8770 /* 8889 */ // MIs[0] Operand 1
8771 /* 8889 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
8772 /* 8893 */ // Combiner Rule #159: itof_const_zero_fold_ui
8773 /* 8893 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
8774 /* 8896 */ // Label 477: @8896
8775 /* 8896 */ GIM_Reject,
8776 /* 8897 */ // Label 81: @8897
8777 /* 8897 */ GIM_Try, /*On fail goto*//*Label 478*/ GIMT_Encode4(8926), // Rule ID 25 //
8778 /* 8902 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
8779 /* 8905 */ // MIs[0] dst
8780 /* 8905 */ // No operand predicates
8781 /* 8905 */ // MIs[0] src
8782 /* 8905 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8783 /* 8909 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
8784 /* 8913 */ // MIs[1] __idempotent_prop_match_0.x
8785 /* 8913 */ // No operand predicates
8786 /* 8913 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8787 /* 8918 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8788 /* 8920 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[1]]
8789 /* 8920 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8790 /* 8925 */ GIR_EraseRootFromParent_Done,
8791 /* 8926 */ // Label 478: @8926
8792 /* 8926 */ GIM_Try, /*On fail goto*//*Label 479*/ GIMT_Encode4(8947), // Rule ID 190 //
8793 /* 8931 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
8794 /* 8934 */ // MIs[0] dst
8795 /* 8934 */ // No operand predicates
8796 /* 8934 */ // MIs[0] src0
8797 /* 8934 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8798 /* 8938 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8799 /* 8942 */ // MIs[1] cst
8800 /* 8942 */ // No operand predicates
8801 /* 8942 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8802 /* 8944 */ // Combiner Rule #146: constant_fold_fabs
8803 /* 8944 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8804 /* 8947 */ // Label 479: @8947
8805 /* 8947 */ GIM_Try, /*On fail goto*//*Label 480*/ GIMT_Encode4(8975), // Rule ID 299 //
8806 /* 8952 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
8807 /* 8955 */ // MIs[0] dst
8808 /* 8955 */ // No operand predicates
8809 /* 8955 */ // MIs[0] tmp
8810 /* 8955 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8811 /* 8959 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
8812 /* 8963 */ // MIs[1] x
8813 /* 8963 */ // No operand predicates
8814 /* 8963 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8815 /* 8965 */ // Combiner Rule #192: fabs_fneg_fold
8816 /* 8965 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FABS),
8817 /* 8968 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8818 /* 8970 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
8819 /* 8974 */ GIR_EraseRootFromParent_Done,
8820 /* 8975 */ // Label 480: @8975
8821 /* 8975 */ GIM_Reject,
8822 /* 8976 */ // Label 82: @8976
8823 /* 8976 */ GIM_Try, /*On fail goto*//*Label 481*/ GIMT_Encode4(8987), // Rule ID 279 //
8824 /* 8981 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
8825 /* 8984 */ // MIs[0] d
8826 /* 8984 */ // No operand predicates
8827 /* 8984 */ // MIs[0] mi.src0
8828 /* 8984 */ // No operand predicates
8829 /* 8984 */ // MIs[0] mi.src1
8830 /* 8984 */ // No operand predicates
8831 /* 8984 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[5]]
8832 /* 8984 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
8833 /* 8987 */ // Label 481: @8987
8834 /* 8987 */ GIM_Reject,
8835 /* 8988 */ // Label 83: @8988
8836 /* 8988 */ GIM_Try, /*On fail goto*//*Label 482*/ GIMT_Encode4(9017), // Rule ID 26 //
8837 /* 8993 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
8838 /* 8996 */ // MIs[0] dst
8839 /* 8996 */ // No operand predicates
8840 /* 8996 */ // MIs[0] src
8841 /* 8996 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8842 /* 9000 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCANONICALIZE),
8843 /* 9004 */ // MIs[1] __idempotent_prop_match_0.x
8844 /* 9004 */ // No operand predicates
8845 /* 9004 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8846 /* 9009 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8847 /* 9011 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[2]]
8848 /* 9011 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8849 /* 9016 */ GIR_EraseRootFromParent_Done,
8850 /* 9017 */ // Label 482: @9017
8851 /* 9017 */ GIM_Reject,
8852 /* 9018 */ // Label 84: @9018
8853 /* 9018 */ GIM_Try, /*On fail goto*//*Label 483*/ GIMT_Encode4(9029), // Rule ID 214 //
8854 /* 9023 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
8855 /* 9026 */ // Combiner Rule #165: combine_minmax_nan; wip_match_opcode 'G_FMINNUM'
8856 /* 9026 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
8857 /* 9029 */ // Label 483: @9029
8858 /* 9029 */ GIM_Try, /*On fail goto*//*Label 484*/ GIMT_Encode4(9040), // Rule ID 338 //
8859 /* 9034 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
8860 /* 9037 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_FMINNUM'
8861 /* 9037 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
8862 /* 9040 */ // Label 484: @9040
8863 /* 9040 */ GIM_Try, /*On fail goto*//*Label 485*/ GIMT_Encode4(9051), // Rule ID 376 //
8864 /* 9045 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
8865 /* 9048 */ // Combiner Rule #217: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM'
8866 /* 9048 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8867 /* 9051 */ // Label 485: @9051
8868 /* 9051 */ GIM_Try, /*On fail goto*//*Label 486*/ GIMT_Encode4(9062), // Rule ID 280 //
8869 /* 9056 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
8870 /* 9059 */ // MIs[0] d
8871 /* 9059 */ // No operand predicates
8872 /* 9059 */ // MIs[0] mi.src0
8873 /* 9059 */ // No operand predicates
8874 /* 9059 */ // MIs[0] mi.src1
8875 /* 9059 */ // No operand predicates
8876 /* 9059 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[6]]
8877 /* 9059 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
8878 /* 9062 */ // Label 486: @9062
8879 /* 9062 */ GIM_Reject,
8880 /* 9063 */ // Label 85: @9063
8881 /* 9063 */ GIM_Try, /*On fail goto*//*Label 487*/ GIMT_Encode4(9074), // Rule ID 215 //
8882 /* 9068 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
8883 /* 9071 */ // Combiner Rule #165: combine_minmax_nan; wip_match_opcode 'G_FMAXNUM'
8884 /* 9071 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
8885 /* 9074 */ // Label 487: @9074
8886 /* 9074 */ GIM_Try, /*On fail goto*//*Label 488*/ GIMT_Encode4(9085), // Rule ID 339 //
8887 /* 9079 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
8888 /* 9082 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_FMAXNUM'
8889 /* 9082 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
8890 /* 9085 */ // Label 488: @9085
8891 /* 9085 */ GIM_Try, /*On fail goto*//*Label 489*/ GIMT_Encode4(9096), // Rule ID 377 //
8892 /* 9090 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
8893 /* 9093 */ // Combiner Rule #217: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM'
8894 /* 9093 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8895 /* 9096 */ // Label 489: @9096
8896 /* 9096 */ GIM_Try, /*On fail goto*//*Label 490*/ GIMT_Encode4(9107), // Rule ID 281 //
8897 /* 9101 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
8898 /* 9104 */ // MIs[0] d
8899 /* 9104 */ // No operand predicates
8900 /* 9104 */ // MIs[0] mi.src0
8901 /* 9104 */ // No operand predicates
8902 /* 9104 */ // MIs[0] mi.src1
8903 /* 9104 */ // No operand predicates
8904 /* 9104 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[7]]
8905 /* 9104 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
8906 /* 9107 */ // Label 490: @9107
8907 /* 9107 */ GIM_Reject,
8908 /* 9108 */ // Label 86: @9108
8909 /* 9108 */ GIM_Try, /*On fail goto*//*Label 491*/ GIMT_Encode4(9119), // Rule ID 378 //
8910 /* 9113 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
8911 /* 9116 */ // Combiner Rule #217: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM_IEEE'
8912 /* 9116 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8913 /* 9119 */ // Label 491: @9119
8914 /* 9119 */ GIM_Reject,
8915 /* 9120 */ // Label 87: @9120
8916 /* 9120 */ GIM_Try, /*On fail goto*//*Label 492*/ GIMT_Encode4(9131), // Rule ID 379 //
8917 /* 9125 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
8918 /* 9128 */ // Combiner Rule #217: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM_IEEE'
8919 /* 9128 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8920 /* 9131 */ // Label 492: @9131
8921 /* 9131 */ GIM_Reject,
8922 /* 9132 */ // Label 88: @9132
8923 /* 9132 */ GIM_Try, /*On fail goto*//*Label 493*/ GIMT_Encode4(9143), // Rule ID 216 //
8924 /* 9137 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
8925 /* 9140 */ // Combiner Rule #165: combine_minmax_nan; wip_match_opcode 'G_FMINIMUM'
8926 /* 9140 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
8927 /* 9143 */ // Label 493: @9143
8928 /* 9143 */ GIM_Try, /*On fail goto*//*Label 494*/ GIMT_Encode4(9154), // Rule ID 340 //
8929 /* 9148 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
8930 /* 9151 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_FMINIMUM'
8931 /* 9151 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
8932 /* 9154 */ // Label 494: @9154
8933 /* 9154 */ GIM_Try, /*On fail goto*//*Label 495*/ GIMT_Encode4(9165), // Rule ID 380 //
8934 /* 9159 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
8935 /* 9162 */ // Combiner Rule #217: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINIMUM'
8936 /* 9162 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8937 /* 9165 */ // Label 495: @9165
8938 /* 9165 */ GIM_Try, /*On fail goto*//*Label 496*/ GIMT_Encode4(9176), // Rule ID 282 //
8939 /* 9170 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
8940 /* 9173 */ // MIs[0] d
8941 /* 9173 */ // No operand predicates
8942 /* 9173 */ // MIs[0] mi.src0
8943 /* 9173 */ // No operand predicates
8944 /* 9173 */ // MIs[0] mi.src1
8945 /* 9173 */ // No operand predicates
8946 /* 9173 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[8]]
8947 /* 9173 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
8948 /* 9176 */ // Label 496: @9176
8949 /* 9176 */ GIM_Reject,
8950 /* 9177 */ // Label 89: @9177
8951 /* 9177 */ GIM_Try, /*On fail goto*//*Label 497*/ GIMT_Encode4(9188), // Rule ID 217 //
8952 /* 9182 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
8953 /* 9185 */ // Combiner Rule #165: combine_minmax_nan; wip_match_opcode 'G_FMAXIMUM'
8954 /* 9185 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
8955 /* 9188 */ // Label 497: @9188
8956 /* 9188 */ GIM_Try, /*On fail goto*//*Label 498*/ GIMT_Encode4(9199), // Rule ID 341 //
8957 /* 9193 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
8958 /* 9196 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_FMAXIMUM'
8959 /* 9196 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
8960 /* 9199 */ // Label 498: @9199
8961 /* 9199 */ GIM_Try, /*On fail goto*//*Label 499*/ GIMT_Encode4(9210), // Rule ID 381 //
8962 /* 9204 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
8963 /* 9207 */ // Combiner Rule #217: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXIMUM'
8964 /* 9207 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8965 /* 9210 */ // Label 499: @9210
8966 /* 9210 */ GIM_Try, /*On fail goto*//*Label 500*/ GIMT_Encode4(9221), // Rule ID 283 //
8967 /* 9215 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
8968 /* 9218 */ // MIs[0] d
8969 /* 9218 */ // No operand predicates
8970 /* 9218 */ // MIs[0] mi.src0
8971 /* 9218 */ // No operand predicates
8972 /* 9218 */ // MIs[0] mi.src1
8973 /* 9218 */ // No operand predicates
8974 /* 9218 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[9]]
8975 /* 9218 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
8976 /* 9221 */ // Label 500: @9221
8977 /* 9221 */ GIM_Reject,
8978 /* 9222 */ // Label 90: @9222
8979 /* 9222 */ GIM_Try, /*On fail goto*//*Label 501*/ GIMT_Encode4(9233), // Rule ID 284 //
8980 /* 9227 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
8981 /* 9230 */ // MIs[0] d
8982 /* 9230 */ // No operand predicates
8983 /* 9230 */ // MIs[0] mi.src0
8984 /* 9230 */ // No operand predicates
8985 /* 9230 */ // MIs[0] mi.src1
8986 /* 9230 */ // No operand predicates
8987 /* 9230 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[10]]
8988 /* 9230 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
8989 /* 9233 */ // Label 501: @9233
8990 /* 9233 */ GIM_Reject,
8991 /* 9234 */ // Label 91: @9234
8992 /* 9234 */ GIM_Try, /*On fail goto*//*Label 502*/ GIMT_Encode4(9245), // Rule ID 285 //
8993 /* 9239 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
8994 /* 9242 */ // MIs[0] d
8995 /* 9242 */ // No operand predicates
8996 /* 9242 */ // MIs[0] mi.src0
8997 /* 9242 */ // No operand predicates
8998 /* 9242 */ // MIs[0] mi.src1
8999 /* 9242 */ // No operand predicates
9000 /* 9242 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[11]]
9001 /* 9242 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
9002 /* 9245 */ // Label 502: @9245
9003 /* 9245 */ GIM_Reject,
9004 /* 9246 */ // Label 92: @9246
9005 /* 9246 */ GIM_Try, /*On fail goto*//*Label 503*/ GIMT_Encode4(9257), // Rule ID 159 //
9006 /* 9251 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule115Enabled),
9007 /* 9254 */ // Combiner Rule #115: reassoc_ptradd; wip_match_opcode 'G_PTR_ADD'
9008 /* 9254 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
9009 /* 9257 */ // Label 503: @9257
9010 /* 9257 */ GIM_Try, /*On fail goto*//*Label 504*/ GIMT_Encode4(9268), // Rule ID 161 //
9011 /* 9262 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled),
9012 /* 9265 */ // Combiner Rule #117: ptr_add_immed_chain; wip_match_opcode 'G_PTR_ADD'
9013 /* 9265 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner58),
9014 /* 9268 */ // Label 504: @9268
9015 /* 9268 */ GIM_Try, /*On fail goto*//*Label 505*/ GIMT_Encode4(9279), // Rule ID 204 //
9016 /* 9273 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
9017 /* 9276 */ // Combiner Rule #160: const_ptradd_to_i2p; wip_match_opcode 'G_PTR_ADD'
9018 /* 9276 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
9019 /* 9279 */ // Label 505: @9279
9020 /* 9279 */ GIM_Try, /*On fail goto*//*Label 506*/ GIMT_Encode4(9290), // Rule ID 220 //
9021 /* 9284 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
9022 /* 9287 */ // Combiner Rule #168: ptr_add_with_zero; wip_match_opcode 'G_PTR_ADD'
9023 /* 9287 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner90),
9024 /* 9290 */ // Label 506: @9290
9025 /* 9290 */ GIM_Try, /*On fail goto*//*Label 507*/ GIMT_Encode4(9301), // Rule ID 257 //
9026 /* 9295 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
9027 /* 9298 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_PTR_ADD'
9028 /* 9298 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
9029 /* 9301 */ // Label 507: @9301
9030 /* 9301 */ GIM_Try, /*On fail goto*//*Label 508*/ GIMT_Encode4(9312), // Rule ID 318 //
9031 /* 9306 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
9032 /* 9309 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_PTR_ADD'
9033 /* 9309 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
9034 /* 9312 */ // Label 508: @9312
9035 /* 9312 */ GIM_Try, /*On fail goto*//*Label 509*/ GIMT_Encode4(9335), // Rule ID 117 //
9036 /* 9317 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
9037 /* 9320 */ // MIs[0] dst
9038 /* 9320 */ // No operand predicates
9039 /* 9320 */ // MIs[0] lhs
9040 /* 9320 */ // No operand predicates
9041 /* 9320 */ // MIs[0] Operand 2
9042 /* 9320 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
9043 /* 9324 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9044 /* 9329 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[7]]
9045 /* 9329 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9046 /* 9334 */ GIR_EraseRootFromParent_Done,
9047 /* 9335 */ // Label 509: @9335
9048 /* 9335 */ GIM_Reject,
9049 /* 9336 */ // Label 93: @9336
9050 /* 9336 */ GIM_Try, /*On fail goto*//*Label 510*/ GIMT_Encode4(9347), // Rule ID 270 //
9051 /* 9341 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
9052 /* 9344 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_SMIN'
9053 /* 9344 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
9054 /* 9347 */ // Label 510: @9347
9055 /* 9347 */ GIM_Try, /*On fail goto*//*Label 511*/ GIMT_Encode4(9358), // Rule ID 329 //
9056 /* 9352 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
9057 /* 9355 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_SMIN'
9058 /* 9355 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
9059 /* 9358 */ // Label 511: @9358
9060 /* 9358 */ GIM_Try, /*On fail goto*//*Label 512*/ GIMT_Encode4(9369), // Rule ID 358 //
9061 /* 9363 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
9062 /* 9366 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_SMIN'
9063 /* 9366 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
9064 /* 9369 */ // Label 512: @9369
9065 /* 9369 */ GIM_Reject,
9066 /* 9370 */ // Label 94: @9370
9067 /* 9370 */ GIM_Try, /*On fail goto*//*Label 513*/ GIMT_Encode4(9381), // Rule ID 271 //
9068 /* 9375 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
9069 /* 9378 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_SMAX'
9070 /* 9378 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
9071 /* 9381 */ // Label 513: @9381
9072 /* 9381 */ GIM_Try, /*On fail goto*//*Label 514*/ GIMT_Encode4(9392), // Rule ID 330 //
9073 /* 9386 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
9074 /* 9389 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_SMAX'
9075 /* 9389 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
9076 /* 9392 */ // Label 514: @9392
9077 /* 9392 */ GIM_Try, /*On fail goto*//*Label 515*/ GIMT_Encode4(9403), // Rule ID 359 //
9078 /* 9397 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
9079 /* 9400 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_SMAX'
9080 /* 9400 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
9081 /* 9403 */ // Label 515: @9403
9082 /* 9403 */ GIM_Reject,
9083 /* 9404 */ // Label 95: @9404
9084 /* 9404 */ GIM_Try, /*On fail goto*//*Label 516*/ GIMT_Encode4(9415), // Rule ID 272 //
9085 /* 9409 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
9086 /* 9412 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_UMIN'
9087 /* 9412 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
9088 /* 9415 */ // Label 516: @9415
9089 /* 9415 */ GIM_Try, /*On fail goto*//*Label 517*/ GIMT_Encode4(9426), // Rule ID 331 //
9090 /* 9420 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
9091 /* 9423 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_UMIN'
9092 /* 9423 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
9093 /* 9426 */ // Label 517: @9426
9094 /* 9426 */ GIM_Try, /*On fail goto*//*Label 518*/ GIMT_Encode4(9437), // Rule ID 360 //
9095 /* 9431 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
9096 /* 9434 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_UMIN'
9097 /* 9434 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
9098 /* 9437 */ // Label 518: @9437
9099 /* 9437 */ GIM_Reject,
9100 /* 9438 */ // Label 96: @9438
9101 /* 9438 */ GIM_Try, /*On fail goto*//*Label 519*/ GIMT_Encode4(9449), // Rule ID 273 //
9102 /* 9443 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
9103 /* 9446 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_UMAX'
9104 /* 9446 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
9105 /* 9449 */ // Label 519: @9449
9106 /* 9449 */ GIM_Try, /*On fail goto*//*Label 520*/ GIMT_Encode4(9460), // Rule ID 332 //
9107 /* 9454 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
9108 /* 9457 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_UMAX'
9109 /* 9457 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
9110 /* 9460 */ // Label 520: @9460
9111 /* 9460 */ GIM_Try, /*On fail goto*//*Label 521*/ GIMT_Encode4(9471), // Rule ID 361 //
9112 /* 9465 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
9113 /* 9468 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_UMAX'
9114 /* 9468 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
9115 /* 9471 */ // Label 521: @9471
9116 /* 9471 */ GIM_Reject,
9117 /* 9472 */ // Label 97: @9472
9118 /* 9472 */ GIM_Try, /*On fail goto*//*Label 522*/ GIMT_Encode4(9483), // Rule ID 92 //
9119 /* 9477 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
9120 /* 9480 */ // Combiner Rule #82: unary_undef_to_zero; wip_match_opcode 'G_ABS'
9121 /* 9480 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
9122 /* 9483 */ // Label 522: @9483
9123 /* 9483 */ GIM_Try, /*On fail goto*//*Label 523*/ GIMT_Encode4(9494), // Rule ID 296 //
9124 /* 9488 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9125 /* 9491 */ // MIs[0] dst
9126 /* 9491 */ // No operand predicates
9127 /* 9491 */ // MIs[0] mi.src
9128 /* 9491 */ // No operand predicates
9129 /* 9491 */ // Combiner Rule #191: constant_fold_unary_int_op @ [mi[5]]
9130 /* 9491 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
9131 /* 9494 */ // Label 523: @9494
9132 /* 9494 */ GIM_Reject,
9133 /* 9495 */ // Label 98: @9495
9134 /* 9495 */ GIM_Try, /*On fail goto*//*Label 524*/ GIMT_Encode4(9506), // Rule ID 188 //
9135 /* 9500 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule144Enabled),
9136 /* 9503 */ // Combiner Rule #144: opt_brcond_by_inverting_cond; wip_match_opcode 'G_BR'
9137 /* 9503 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
9138 /* 9506 */ // Label 524: @9506
9139 /* 9506 */ GIM_Reject,
9140 /* 9507 */ // Label 99: @9507
9141 /* 9507 */ GIM_Try, /*On fail goto*//*Label 525*/ GIMT_Encode4(9518), // Rule ID 32 //
9142 /* 9512 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
9143 /* 9515 */ // Combiner Rule #30: insert_vector_elt_oob; wip_match_opcode 'G_INSERT_VECTOR_ELT'
9144 /* 9515 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
9145 /* 9518 */ // Label 525: @9518
9146 /* 9518 */ GIM_Try, /*On fail goto*//*Label 526*/ GIMT_Encode4(9529), // Rule ID 73 //
9147 /* 9523 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
9148 /* 9526 */ // Combiner Rule #71: combine_insert_vec_elts_build_vector; wip_match_opcode 'G_INSERT_VECTOR_ELT'
9149 /* 9526 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
9150 /* 9529 */ // Label 526: @9529
9151 /* 9529 */ GIM_Try, /*On fail goto*//*Label 527*/ GIMT_Encode4(9540), // Rule ID 107 //
9152 /* 9534 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
9153 /* 9537 */ // Combiner Rule #88: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_INSERT_VECTOR_ELT'
9154 /* 9537 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
9155 /* 9540 */ // Label 527: @9540
9156 /* 9540 */ GIM_Try, /*On fail goto*//*Label 528*/ GIMT_Encode4(9579), // Rule ID 44 //
9157 /* 9545 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
9158 /* 9548 */ // MIs[0] root
9159 /* 9548 */ // No operand predicates
9160 /* 9548 */ // MIs[0] src
9161 /* 9548 */ // No operand predicates
9162 /* 9548 */ // MIs[0] elt
9163 /* 9548 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9164 /* 9552 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_EXTRACT_VECTOR_ELT),
9165 /* 9556 */ // MIs[1] src
9166 /* 9556 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
9167 /* 9561 */ // MIs[1] idx
9168 /* 9561 */ // No operand predicates
9169 /* 9561 */ // MIs[0] idx
9170 /* 9561 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
9171 /* 9566 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9172 /* 9571 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9173 /* 9573 */ // Combiner Rule #42: insert_vector_element_extract_vector_element
9174 /* 9573 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9175 /* 9578 */ GIR_EraseRootFromParent_Done,
9176 /* 9579 */ // Label 528: @9579
9177 /* 9579 */ GIM_Try, /*On fail goto*//*Label 529*/ GIMT_Encode4(9612), // Rule ID 30 //
9178 /* 9584 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
9179 /* 9587 */ // MIs[0] root
9180 /* 9587 */ // No operand predicates
9181 /* 9587 */ // MIs[0] src
9182 /* 9587 */ // No operand predicates
9183 /* 9587 */ // MIs[0] elt
9184 /* 9587 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9185 /* 9591 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9186 /* 9595 */ // MIs[0] idx
9187 /* 9595 */ // No operand predicates
9188 /* 9595 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
9189 /* 9599 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9190 /* 9604 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9191 /* 9606 */ // Combiner Rule #28: insert_vector_element_elt_undef
9192 /* 9606 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9193 /* 9611 */ GIR_EraseRootFromParent_Done,
9194 /* 9612 */ // Label 529: @9612
9195 /* 9612 */ GIM_Try, /*On fail goto*//*Label 530*/ GIMT_Encode4(9636), // Rule ID 29 //
9196 /* 9617 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
9197 /* 9620 */ // MIs[0] root
9198 /* 9620 */ // No operand predicates
9199 /* 9620 */ // MIs[0] src
9200 /* 9620 */ // No operand predicates
9201 /* 9620 */ // MIs[0] elt
9202 /* 9620 */ // No operand predicates
9203 /* 9620 */ // MIs[0] idx
9204 /* 9620 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
9205 /* 9624 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9206 /* 9628 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9207 /* 9630 */ // Combiner Rule #27: insert_vector_element_idx_undef
9208 /* 9630 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9209 /* 9633 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
9210 /* 9635 */ GIR_EraseRootFromParent_Done,
9211 /* 9636 */ // Label 530: @9636
9212 /* 9636 */ GIM_Reject,
9213 /* 9637 */ // Label 100: @9637
9214 /* 9637 */ GIM_Try, /*On fail goto*//*Label 531*/ GIMT_Encode4(9648), // Rule ID 31 //
9215 /* 9642 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
9216 /* 9645 */ // Combiner Rule #29: match_extract_of_element; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
9217 /* 9645 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
9218 /* 9648 */ // Label 531: @9648
9219 /* 9648 */ GIM_Try, /*On fail goto*//*Label 532*/ GIMT_Encode4(9659), // Rule ID 74 //
9220 /* 9653 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
9221 /* 9656 */ // Combiner Rule #72: extract_vec_elt_build_vec; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
9222 /* 9656 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner28),
9223 /* 9659 */ // Label 532: @9659
9224 /* 9659 */ GIM_Try, /*On fail goto*//*Label 533*/ GIMT_Encode4(9670), // Rule ID 80 //
9225 /* 9664 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
9226 /* 9667 */ // Combiner Rule #76: combine_extracted_vector_load; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
9227 /* 9667 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
9228 /* 9670 */ // Label 533: @9670
9229 /* 9670 */ GIM_Try, /*On fail goto*//*Label 534*/ GIMT_Encode4(9681), // Rule ID 108 //
9230 /* 9675 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
9231 /* 9678 */ // Combiner Rule #88: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
9232 /* 9678 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
9233 /* 9681 */ // Label 534: @9681
9234 /* 9681 */ GIM_Try, /*On fail goto*//*Label 535*/ GIMT_Encode4(9705), // Rule ID 42 //
9235 /* 9686 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
9236 /* 9689 */ // MIs[0] root
9237 /* 9689 */ // No operand predicates
9238 /* 9689 */ // MIs[0] src
9239 /* 9689 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9240 /* 9693 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9241 /* 9697 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/9,
9242 /* 9700 */ // MIs[1] x
9243 /* 9700 */ // No operand predicates
9244 /* 9700 */ // MIs[1] y
9245 /* 9700 */ // No operand predicates
9246 /* 9700 */ // MIs[1] z
9247 /* 9700 */ // No operand predicates
9248 /* 9700 */ // MIs[1] a
9249 /* 9700 */ // No operand predicates
9250 /* 9700 */ // MIs[1] b
9251 /* 9700 */ // No operand predicates
9252 /* 9700 */ // MIs[1] c
9253 /* 9700 */ // No operand predicates
9254 /* 9700 */ // MIs[1] d
9255 /* 9700 */ // No operand predicates
9256 /* 9700 */ // MIs[1] e
9257 /* 9700 */ // No operand predicates
9258 /* 9700 */ // MIs[0] idx
9259 /* 9700 */ // No operand predicates
9260 /* 9700 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9261 /* 9702 */ // Combiner Rule #40: extract_vector_element_build_vector_trunc8
9262 /* 9702 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
9263 /* 9705 */ // Label 535: @9705
9264 /* 9705 */ GIM_Try, /*On fail goto*//*Label 536*/ GIMT_Encode4(9729), // Rule ID 41 //
9265 /* 9710 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
9266 /* 9713 */ // MIs[0] root
9267 /* 9713 */ // No operand predicates
9268 /* 9713 */ // MIs[0] src
9269 /* 9713 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9270 /* 9717 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9271 /* 9721 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/8,
9272 /* 9724 */ // MIs[1] x
9273 /* 9724 */ // No operand predicates
9274 /* 9724 */ // MIs[1] y
9275 /* 9724 */ // No operand predicates
9276 /* 9724 */ // MIs[1] z
9277 /* 9724 */ // No operand predicates
9278 /* 9724 */ // MIs[1] a
9279 /* 9724 */ // No operand predicates
9280 /* 9724 */ // MIs[1] b
9281 /* 9724 */ // No operand predicates
9282 /* 9724 */ // MIs[1] c
9283 /* 9724 */ // No operand predicates
9284 /* 9724 */ // MIs[1] d
9285 /* 9724 */ // No operand predicates
9286 /* 9724 */ // MIs[0] idx
9287 /* 9724 */ // No operand predicates
9288 /* 9724 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9289 /* 9726 */ // Combiner Rule #39: extract_vector_element_build_vector_trunc7
9290 /* 9726 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
9291 /* 9729 */ // Label 536: @9729
9292 /* 9729 */ GIM_Try, /*On fail goto*//*Label 537*/ GIMT_Encode4(9753), // Rule ID 40 //
9293 /* 9734 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
9294 /* 9737 */ // MIs[0] root
9295 /* 9737 */ // No operand predicates
9296 /* 9737 */ // MIs[0] src
9297 /* 9737 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9298 /* 9741 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9299 /* 9745 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/7,
9300 /* 9748 */ // MIs[1] x
9301 /* 9748 */ // No operand predicates
9302 /* 9748 */ // MIs[1] y
9303 /* 9748 */ // No operand predicates
9304 /* 9748 */ // MIs[1] z
9305 /* 9748 */ // No operand predicates
9306 /* 9748 */ // MIs[1] a
9307 /* 9748 */ // No operand predicates
9308 /* 9748 */ // MIs[1] b
9309 /* 9748 */ // No operand predicates
9310 /* 9748 */ // MIs[1] c
9311 /* 9748 */ // No operand predicates
9312 /* 9748 */ // MIs[0] idx
9313 /* 9748 */ // No operand predicates
9314 /* 9748 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9315 /* 9750 */ // Combiner Rule #38: extract_vector_element_build_vector_trunc6
9316 /* 9750 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
9317 /* 9753 */ // Label 537: @9753
9318 /* 9753 */ GIM_Try, /*On fail goto*//*Label 538*/ GIMT_Encode4(9777), // Rule ID 39 //
9319 /* 9758 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
9320 /* 9761 */ // MIs[0] root
9321 /* 9761 */ // No operand predicates
9322 /* 9761 */ // MIs[0] src
9323 /* 9761 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9324 /* 9765 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9325 /* 9769 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/6,
9326 /* 9772 */ // MIs[1] x
9327 /* 9772 */ // No operand predicates
9328 /* 9772 */ // MIs[1] y
9329 /* 9772 */ // No operand predicates
9330 /* 9772 */ // MIs[1] z
9331 /* 9772 */ // No operand predicates
9332 /* 9772 */ // MIs[1] a
9333 /* 9772 */ // No operand predicates
9334 /* 9772 */ // MIs[1] b
9335 /* 9772 */ // No operand predicates
9336 /* 9772 */ // MIs[0] idx
9337 /* 9772 */ // No operand predicates
9338 /* 9772 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9339 /* 9774 */ // Combiner Rule #37: extract_vector_element_build_vector_trunc5
9340 /* 9774 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
9341 /* 9777 */ // Label 538: @9777
9342 /* 9777 */ GIM_Try, /*On fail goto*//*Label 539*/ GIMT_Encode4(9801), // Rule ID 38 //
9343 /* 9782 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
9344 /* 9785 */ // MIs[0] root
9345 /* 9785 */ // No operand predicates
9346 /* 9785 */ // MIs[0] src
9347 /* 9785 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9348 /* 9789 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9349 /* 9793 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/5,
9350 /* 9796 */ // MIs[1] x
9351 /* 9796 */ // No operand predicates
9352 /* 9796 */ // MIs[1] y
9353 /* 9796 */ // No operand predicates
9354 /* 9796 */ // MIs[1] z
9355 /* 9796 */ // No operand predicates
9356 /* 9796 */ // MIs[1] a
9357 /* 9796 */ // No operand predicates
9358 /* 9796 */ // MIs[0] idx
9359 /* 9796 */ // No operand predicates
9360 /* 9796 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9361 /* 9798 */ // Combiner Rule #36: extract_vector_element_build_vector_trunc4
9362 /* 9798 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
9363 /* 9801 */ // Label 539: @9801
9364 /* 9801 */ GIM_Try, /*On fail goto*//*Label 540*/ GIMT_Encode4(9825), // Rule ID 37 //
9365 /* 9806 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
9366 /* 9809 */ // MIs[0] root
9367 /* 9809 */ // No operand predicates
9368 /* 9809 */ // MIs[0] src
9369 /* 9809 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9370 /* 9813 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9371 /* 9817 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
9372 /* 9820 */ // MIs[1] x
9373 /* 9820 */ // No operand predicates
9374 /* 9820 */ // MIs[1] y
9375 /* 9820 */ // No operand predicates
9376 /* 9820 */ // MIs[1] z
9377 /* 9820 */ // No operand predicates
9378 /* 9820 */ // MIs[0] idx
9379 /* 9820 */ // No operand predicates
9380 /* 9820 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9381 /* 9822 */ // Combiner Rule #35: extract_vector_element_build_vector_trunc3
9382 /* 9822 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
9383 /* 9825 */ // Label 540: @9825
9384 /* 9825 */ GIM_Try, /*On fail goto*//*Label 541*/ GIMT_Encode4(9859), // Rule ID 33 //
9385 /* 9830 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
9386 /* 9833 */ // MIs[0] root
9387 /* 9833 */ // No operand predicates
9388 /* 9833 */ // MIs[0] src
9389 /* 9833 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9390 /* 9837 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
9391 /* 9841 */ // MIs[1] x
9392 /* 9841 */ // No operand predicates
9393 /* 9841 */ // MIs[1] value
9394 /* 9841 */ // No operand predicates
9395 /* 9841 */ // MIs[1] idx
9396 /* 9841 */ // No operand predicates
9397 /* 9841 */ // MIs[0] idx
9398 /* 9841 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
9399 /* 9846 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
9400 /* 9851 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9401 /* 9853 */ // Combiner Rule #31: extract_vector_element_not_const
9402 /* 9853 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
9403 /* 9858 */ GIR_EraseRootFromParent_Done,
9404 /* 9859 */ // Label 541: @9859
9405 /* 9859 */ GIM_Try, /*On fail goto*//*Label 542*/ GIMT_Encode4(9880), // Rule ID 34 //
9406 /* 9864 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
9407 /* 9867 */ // MIs[0] root
9408 /* 9867 */ // No operand predicates
9409 /* 9867 */ // MIs[0] src
9410 /* 9867 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9411 /* 9871 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
9412 /* 9875 */ // MIs[1] x
9413 /* 9875 */ // No operand predicates
9414 /* 9875 */ // MIs[1] value
9415 /* 9875 */ // No operand predicates
9416 /* 9875 */ // MIs[1] idx2
9417 /* 9875 */ // No operand predicates
9418 /* 9875 */ // MIs[0] idx1
9419 /* 9875 */ // No operand predicates
9420 /* 9875 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9421 /* 9877 */ // Combiner Rule #32: extract_vector_element_different_indices
9422 /* 9877 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
9423 /* 9880 */ // Label 542: @9880
9424 /* 9880 */ GIM_Try, /*On fail goto*//*Label 543*/ GIMT_Encode4(9909), // Rule ID 43 //
9425 /* 9885 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
9426 /* 9888 */ // MIs[0] root
9427 /* 9888 */ // No operand predicates
9428 /* 9888 */ // MIs[0] src
9429 /* 9888 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9430 /* 9892 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHUFFLE_VECTOR),
9431 /* 9896 */ // MIs[1] src1
9432 /* 9896 */ // No operand predicates
9433 /* 9896 */ // MIs[1] src2
9434 /* 9896 */ // No operand predicates
9435 /* 9896 */ // MIs[1] mask
9436 /* 9896 */ // No operand predicates
9437 /* 9896 */ // MIs[0] idx
9438 /* 9896 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
9439 /* 9900 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
9440 /* 9904 */ // MIs[2] imm
9441 /* 9904 */ // No operand predicates
9442 /* 9904 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9443 /* 9906 */ // Combiner Rule #41: extract_vector_element_shuffle_vector
9444 /* 9906 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
9445 /* 9909 */ // Label 543: @9909
9446 /* 9909 */ GIM_Try, /*On fail goto*//*Label 544*/ GIMT_Encode4(9933), // Rule ID 36 //
9447 /* 9914 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
9448 /* 9917 */ // MIs[0] root
9449 /* 9917 */ // No operand predicates
9450 /* 9917 */ // MIs[0] src
9451 /* 9917 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9452 /* 9921 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9453 /* 9925 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
9454 /* 9928 */ // MIs[1] x
9455 /* 9928 */ // No operand predicates
9456 /* 9928 */ // MIs[1] y
9457 /* 9928 */ // No operand predicates
9458 /* 9928 */ // MIs[0] idx
9459 /* 9928 */ // No operand predicates
9460 /* 9928 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9461 /* 9930 */ // Combiner Rule #34: extract_vector_element_build_vector_trunc2
9462 /* 9930 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
9463 /* 9933 */ // Label 544: @9933
9464 /* 9933 */ GIM_Try, /*On fail goto*//*Label 545*/ GIMT_Encode4(9965), // Rule ID 35 //
9465 /* 9938 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
9466 /* 9941 */ // MIs[0] root
9467 /* 9941 */ // No operand predicates
9468 /* 9941 */ // MIs[0] src
9469 /* 9941 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9470 /* 9945 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
9471 /* 9949 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
9472 /* 9952 */ // MIs[1] unused
9473 /* 9952 */ // No operand predicates
9474 /* 9952 */ // MIs[0] idx
9475 /* 9952 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
9476 /* 9956 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
9477 /* 9960 */ // MIs[2] imm
9478 /* 9960 */ // No operand predicates
9479 /* 9960 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9480 /* 9962 */ // Combiner Rule #33: extract_vector_element_build_vector
9481 /* 9962 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
9482 /* 9965 */ // Label 545: @9965
9483 /* 9965 */ GIM_Try, /*On fail goto*//*Label 546*/ GIMT_Encode4(9989), // Rule ID 27 //
9484 /* 9970 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
9485 /* 9973 */ // MIs[0] root
9486 /* 9973 */ // No operand predicates
9487 /* 9973 */ // MIs[0] vector
9488 /* 9973 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9489 /* 9977 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9490 /* 9981 */ // MIs[0] idx
9491 /* 9981 */ // No operand predicates
9492 /* 9981 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9493 /* 9983 */ // Combiner Rule #25: match_extract_of_element_undef_vector
9494 /* 9983 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9495 /* 9986 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
9496 /* 9988 */ GIR_EraseRootFromParent_Done,
9497 /* 9989 */ // Label 546: @9989
9498 /* 9989 */ GIM_Try, /*On fail goto*//*Label 547*/ GIMT_Encode4(10013), // Rule ID 28 //
9499 /* 9994 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
9500 /* 9997 */ // MIs[0] root
9501 /* 9997 */ // No operand predicates
9502 /* 9997 */ // MIs[0] vector
9503 /* 9997 */ // No operand predicates
9504 /* 9997 */ // MIs[0] idx
9505 /* 9997 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9506 /* 10001 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9507 /* 10005 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9508 /* 10007 */ // Combiner Rule #26: match_extract_of_element_undef_index
9509 /* 10007 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9510 /* 10010 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
9511 /* 10012 */ GIR_EraseRootFromParent_Done,
9512 /* 10013 */ // Label 547: @10013
9513 /* 10013 */ GIM_Reject,
9514 /* 10014 */ // Label 101: @10014
9515 /* 10014 */ GIM_Try, /*On fail goto*//*Label 548*/ GIMT_Encode4(10025), // Rule ID 103 //
9516 /* 10019 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
9517 /* 10022 */ // Combiner Rule #85: propagate_undef_all_ops; wip_match_opcode 'G_SHUFFLE_VECTOR'
9518 /* 10022 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
9519 /* 10025 */ // Label 548: @10025
9520 /* 10025 */ GIM_Try, /*On fail goto*//*Label 549*/ GIMT_Encode4(10036), // Rule ID 105 //
9521 /* 10030 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
9522 /* 10033 */ // Combiner Rule #86: propagate_undef_shuffle_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
9523 /* 10033 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner41),
9524 /* 10036 */ // Label 549: @10036
9525 /* 10036 */ GIM_Try, /*On fail goto*//*Label 550*/ GIMT_Encode4(10047), // Rule ID 393 //
9526 /* 10041 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule229Enabled),
9527 /* 10044 */ // Combiner Rule #229: combine_shuffle_concat; wip_match_opcode 'G_SHUFFLE_VECTOR'
9528 /* 10044 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner138),
9529 /* 10047 */ // Label 550: @10047
9530 /* 10047 */ GIM_Try, /*On fail goto*//*Label 551*/ GIMT_Encode4(10058), // Rule ID 395 //
9531 /* 10052 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule231Enabled),
9532 /* 10055 */ // Combiner Rule #231: combine_shuffle_disjoint_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
9533 /* 10055 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner140),
9534 /* 10058 */ // Label 551: @10058
9535 /* 10058 */ GIM_Try, /*On fail goto*//*Label 552*/ GIMT_Encode4(10069), // Rule ID 437 //
9536 /* 10063 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule265Enabled),
9537 /* 10066 */ // Combiner Rule #265: combine_shuffle_vector; wip_match_opcode 'G_SHUFFLE_VECTOR'
9538 /* 10066 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner159),
9539 /* 10069 */ // Label 552: @10069
9540 /* 10069 */ GIM_Try, /*On fail goto*//*Label 553*/ GIMT_Encode4(10090), // Rule ID 394 //
9541 /* 10074 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule230Enabled),
9542 /* 10077 */ // MIs[0] root
9543 /* 10077 */ // No operand predicates
9544 /* 10077 */ // MIs[0] src1
9545 /* 10077 */ // No operand predicates
9546 /* 10077 */ // MIs[0] undef
9547 /* 10077 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9548 /* 10081 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9549 /* 10085 */ // MIs[0] mask
9550 /* 10085 */ // No operand predicates
9551 /* 10085 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9552 /* 10087 */ // Combiner Rule #230: combine_shuffle_undef_rhs
9553 /* 10087 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner139),
9554 /* 10090 */ // Label 553: @10090
9555 /* 10090 */ GIM_Reject,
9556 /* 10091 */ // Label 102: @10091
9557 /* 10091 */ GIM_Try, /*On fail goto*//*Label 554*/ GIMT_Encode4(10102), // Rule ID 293 //
9558 /* 10096 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9559 /* 10099 */ // MIs[0] dst
9560 /* 10099 */ // No operand predicates
9561 /* 10099 */ // MIs[0] mi.src
9562 /* 10099 */ // No operand predicates
9563 /* 10099 */ // Combiner Rule #191: constant_fold_unary_int_op @ [mi[2]]
9564 /* 10099 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
9565 /* 10102 */ // Label 554: @10102
9566 /* 10102 */ GIM_Reject,
9567 /* 10103 */ // Label 103: @10103
9568 /* 10103 */ GIM_Try, /*On fail goto*//*Label 555*/ GIMT_Encode4(10114), // Rule ID 294 //
9569 /* 10108 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9570 /* 10111 */ // MIs[0] dst
9571 /* 10111 */ // No operand predicates
9572 /* 10111 */ // MIs[0] mi.src
9573 /* 10111 */ // No operand predicates
9574 /* 10111 */ // Combiner Rule #191: constant_fold_unary_int_op @ [mi[3]]
9575 /* 10111 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
9576 /* 10114 */ // Label 555: @10114
9577 /* 10114 */ GIM_Reject,
9578 /* 10115 */ // Label 104: @10115
9579 /* 10115 */ GIM_Try, /*On fail goto*//*Label 556*/ GIMT_Encode4(10126), // Rule ID 291 //
9580 /* 10120 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9581 /* 10123 */ // MIs[0] dst
9582 /* 10123 */ // No operand predicates
9583 /* 10123 */ // MIs[0] mi.src
9584 /* 10123 */ // No operand predicates
9585 /* 10123 */ // Combiner Rule #191: constant_fold_unary_int_op @ [mi[0]]
9586 /* 10123 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
9587 /* 10126 */ // Label 556: @10126
9588 /* 10126 */ GIM_Try, /*On fail goto*//*Label 557*/ GIMT_Encode4(10137), // Rule ID 416 //
9589 /* 10131 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule250Enabled),
9590 /* 10134 */ // MIs[0] dst
9591 /* 10134 */ // No operand predicates
9592 /* 10134 */ // MIs[0] src
9593 /* 10134 */ // No operand predicates
9594 /* 10134 */ // Combiner Rule #250: ctlz_to_ctls
9595 /* 10134 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner157),
9596 /* 10137 */ // Label 557: @10137
9597 /* 10137 */ GIM_Reject,
9598 /* 10138 */ // Label 105: @10138
9599 /* 10138 */ GIM_Try, /*On fail goto*//*Label 558*/ GIMT_Encode4(10149), // Rule ID 292 //
9600 /* 10143 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9601 /* 10146 */ // MIs[0] dst
9602 /* 10146 */ // No operand predicates
9603 /* 10146 */ // MIs[0] mi.src
9604 /* 10146 */ // No operand predicates
9605 /* 10146 */ // Combiner Rule #191: constant_fold_unary_int_op @ [mi[1]]
9606 /* 10146 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
9607 /* 10149 */ // Label 558: @10149
9608 /* 10149 */ GIM_Try, /*On fail goto*//*Label 559*/ GIMT_Encode4(10160), // Rule ID 417 //
9609 /* 10154 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule251Enabled),
9610 /* 10157 */ // MIs[0] dst
9611 /* 10157 */ // No operand predicates
9612 /* 10157 */ // MIs[0] src
9613 /* 10157 */ // No operand predicates
9614 /* 10157 */ // Combiner Rule #251: ctlz_zero_poison_to_ctls
9615 /* 10157 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner157),
9616 /* 10160 */ // Label 559: @10160
9617 /* 10160 */ GIM_Reject,
9618 /* 10161 */ // Label 106: @10161
9619 /* 10161 */ GIM_Try, /*On fail goto*//*Label 560*/ GIMT_Encode4(10172), // Rule ID 295 //
9620 /* 10166 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9621 /* 10169 */ // MIs[0] dst
9622 /* 10169 */ // No operand predicates
9623 /* 10169 */ // MIs[0] mi.src
9624 /* 10169 */ // No operand predicates
9625 /* 10169 */ // Combiner Rule #191: constant_fold_unary_int_op @ [mi[4]]
9626 /* 10169 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
9627 /* 10172 */ // Label 560: @10172
9628 /* 10172 */ GIM_Reject,
9629 /* 10173 */ // Label 107: @10173
9630 /* 10173 */ GIM_Try, /*On fail goto*//*Label 561*/ GIMT_Encode4(10184), // Rule ID 297 //
9631 /* 10178 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9632 /* 10181 */ // MIs[0] dst
9633 /* 10181 */ // No operand predicates
9634 /* 10181 */ // MIs[0] mi.src
9635 /* 10181 */ // No operand predicates
9636 /* 10181 */ // Combiner Rule #191: constant_fold_unary_int_op @ [mi[6]]
9637 /* 10181 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
9638 /* 10184 */ // Label 561: @10184
9639 /* 10184 */ GIM_Reject,
9640 /* 10185 */ // Label 108: @10185
9641 /* 10185 */ GIM_Try, /*On fail goto*//*Label 562*/ GIMT_Encode4(10229), // Rule ID 248 //
9642 /* 10190 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
9643 /* 10193 */ // MIs[0] d
9644 /* 10193 */ // No operand predicates
9645 /* 10193 */ // MIs[0] src
9646 /* 10193 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9647 /* 10197 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
9648 /* 10201 */ // MIs[1] rev
9649 /* 10201 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
9650 /* 10205 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
9651 /* 10209 */ // MIs[2] val
9652 /* 10209 */ // No operand predicates
9653 /* 10209 */ // MIs[1] amt
9654 /* 10209 */ // No operand predicates
9655 /* 10209 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner14),
9656 /* 10213 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9657 /* 10215 */ // Combiner Rule #181: bitreverse_lshr
9658 /* 10215 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
9659 /* 10218 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
9660 /* 10220 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
9661 /* 10224 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
9662 /* 10228 */ GIR_EraseRootFromParent_Done,
9663 /* 10229 */ // Label 562: @10229
9664 /* 10229 */ GIM_Try, /*On fail goto*//*Label 563*/ GIMT_Encode4(10273), // Rule ID 247 //
9665 /* 10234 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
9666 /* 10237 */ // MIs[0] d
9667 /* 10237 */ // No operand predicates
9668 /* 10237 */ // MIs[0] src
9669 /* 10237 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9670 /* 10241 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
9671 /* 10245 */ // MIs[1] rev
9672 /* 10245 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
9673 /* 10249 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
9674 /* 10253 */ // MIs[2] val
9675 /* 10253 */ // No operand predicates
9676 /* 10253 */ // MIs[1] amt
9677 /* 10253 */ // No operand predicates
9678 /* 10253 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
9679 /* 10257 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9680 /* 10259 */ // Combiner Rule #180: bitreverse_shl
9681 /* 10259 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_LSHR),
9682 /* 10262 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
9683 /* 10264 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
9684 /* 10268 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
9685 /* 10272 */ GIR_EraseRootFromParent_Done,
9686 /* 10273 */ // Label 563: @10273
9687 /* 10273 */ GIM_Try, /*On fail goto*//*Label 564*/ GIMT_Encode4(10284), // Rule ID 298 //
9688 /* 10278 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9689 /* 10281 */ // MIs[0] dst
9690 /* 10281 */ // No operand predicates
9691 /* 10281 */ // MIs[0] mi.src
9692 /* 10281 */ // No operand predicates
9693 /* 10281 */ // Combiner Rule #191: constant_fold_unary_int_op @ [mi[7]]
9694 /* 10281 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
9695 /* 10284 */ // Label 564: @10284
9696 /* 10284 */ GIM_Reject,
9697 /* 10285 */ // Label 109: @10285
9698 /* 10285 */ GIM_Try, /*On fail goto*//*Label 565*/ GIMT_Encode4(10306), // Rule ID 195 //
9699 /* 10290 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
9700 /* 10293 */ // MIs[0] dst
9701 /* 10293 */ // No operand predicates
9702 /* 10293 */ // MIs[0] src0
9703 /* 10293 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9704 /* 10297 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
9705 /* 10301 */ // MIs[1] cst
9706 /* 10301 */ // No operand predicates
9707 /* 10301 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9708 /* 10303 */ // Combiner Rule #151: constant_fold_fceil
9709 /* 10303 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
9710 /* 10306 */ // Label 565: @10306
9711 /* 10306 */ GIM_Reject,
9712 /* 10307 */ // Label 110: @10307
9713 /* 10307 */ GIM_Try, /*On fail goto*//*Label 566*/ GIMT_Encode4(10328), // Rule ID 191 //
9714 /* 10312 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
9715 /* 10315 */ // MIs[0] dst
9716 /* 10315 */ // No operand predicates
9717 /* 10315 */ // MIs[0] src0
9718 /* 10315 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9719 /* 10319 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
9720 /* 10323 */ // MIs[1] cst
9721 /* 10323 */ // No operand predicates
9722 /* 10323 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9723 /* 10325 */ // Combiner Rule #147: constant_fold_fsqrt
9724 /* 10325 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
9725 /* 10328 */ // Label 566: @10328
9726 /* 10328 */ GIM_Reject,
9727 /* 10329 */ // Label 111: @10329
9728 /* 10329 */ GIM_Try, /*On fail goto*//*Label 567*/ GIMT_Encode4(10350), // Rule ID 196 //
9729 /* 10334 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
9730 /* 10337 */ // MIs[0] dst
9731 /* 10337 */ // No operand predicates
9732 /* 10337 */ // MIs[0] src0
9733 /* 10337 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9734 /* 10341 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
9735 /* 10345 */ // MIs[1] cst
9736 /* 10345 */ // No operand predicates
9737 /* 10345 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9738 /* 10347 */ // Combiner Rule #152: constant_fold_ffloor
9739 /* 10347 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
9740 /* 10350 */ // Label 567: @10350
9741 /* 10350 */ GIM_Reject,
9742 /* 10351 */ // Label 112: @10351
9743 /* 10351 */ GIM_Try, /*On fail goto*//*Label 568*/ GIMT_Encode4(10372), // Rule ID 200 //
9744 /* 10356 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
9745 /* 10359 */ // MIs[0] dst
9746 /* 10359 */ // No operand predicates
9747 /* 10359 */ // MIs[0] src0
9748 /* 10359 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9749 /* 10363 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
9750 /* 10367 */ // MIs[1] cst
9751 /* 10367 */ // No operand predicates
9752 /* 10367 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9753 /* 10369 */ // Combiner Rule #156: constant_fold_frint
9754 /* 10369 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
9755 /* 10372 */ // Label 568: @10372
9756 /* 10372 */ GIM_Reject,
9757 /* 10373 */ // Label 113: @10373
9758 /* 10373 */ GIM_Try, /*On fail goto*//*Label 569*/ GIMT_Encode4(10394), // Rule ID 201 //
9759 /* 10378 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
9760 /* 10381 */ // MIs[0] dst
9761 /* 10381 */ // No operand predicates
9762 /* 10381 */ // MIs[0] src0
9763 /* 10381 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9764 /* 10385 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
9765 /* 10389 */ // MIs[1] cst
9766 /* 10389 */ // No operand predicates
9767 /* 10389 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9768 /* 10391 */ // Combiner Rule #157: constant_fold_fnearbyint
9769 /* 10391 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
9770 /* 10394 */ // Label 569: @10394
9771 /* 10394 */ GIM_Reject,
9772 /* 10395 */ // Label 114: @10395
9773 /* 10395 */ GIM_Try, /*On fail goto*//*Label 570*/ GIMT_Encode4(10406), // Rule ID 451 //
9774 /* 10400 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule279Enabled),
9775 /* 10403 */ // MIs[0] dst_addr
9776 /* 10403 */ // No operand predicates
9777 /* 10403 */ // MIs[0] src_addr
9778 /* 10403 */ // No operand predicates
9779 /* 10403 */ // MIs[0] size
9780 /* 10403 */ // No operand predicates
9781 /* 10403 */ // MIs[0] tailcall
9782 /* 10403 */ // No operand predicates
9783 /* 10403 */ // Combiner Rule #279: combine_memcpy
9784 /* 10403 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner167),
9785 /* 10406 */ // Label 570: @10406
9786 /* 10406 */ GIM_Reject,
9787 /* 10407 */ // Label 115: @10407
9788 /* 10407 */ GIM_Try, /*On fail goto*//*Label 571*/ GIMT_Encode4(10418), // Rule ID 449 //
9789 /* 10412 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule277Enabled),
9790 /* 10415 */ // MIs[0] dst_addr
9791 /* 10415 */ // No operand predicates
9792 /* 10415 */ // MIs[0] src_addr
9793 /* 10415 */ // No operand predicates
9794 /* 10415 */ // MIs[0] size
9795 /* 10415 */ // No operand predicates
9796 /* 10415 */ // Combiner Rule #277: combine_memcpy_inline
9797 /* 10415 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner166),
9798 /* 10418 */ // Label 571: @10418
9799 /* 10418 */ GIM_Reject,
9800 /* 10419 */ // Label 116: @10419
9801 /* 10419 */ GIM_Try, /*On fail goto*//*Label 572*/ GIMT_Encode4(10430), // Rule ID 452 //
9802 /* 10424 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule280Enabled),
9803 /* 10427 */ // MIs[0] dst_addr
9804 /* 10427 */ // No operand predicates
9805 /* 10427 */ // MIs[0] src_addr
9806 /* 10427 */ // No operand predicates
9807 /* 10427 */ // MIs[0] size
9808 /* 10427 */ // No operand predicates
9809 /* 10427 */ // MIs[0] tailcall
9810 /* 10427 */ // No operand predicates
9811 /* 10427 */ // Combiner Rule #280: combine_memmove
9812 /* 10427 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner167),
9813 /* 10430 */ // Label 572: @10430
9814 /* 10430 */ GIM_Reject,
9815 /* 10431 */ // Label 117: @10431
9816 /* 10431 */ GIM_Try, /*On fail goto*//*Label 573*/ GIMT_Encode4(10442), // Rule ID 453 //
9817 /* 10436 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule281Enabled),
9818 /* 10439 */ // MIs[0] dst_addr
9819 /* 10439 */ // No operand predicates
9820 /* 10439 */ // MIs[0] value
9821 /* 10439 */ // No operand predicates
9822 /* 10439 */ // MIs[0] size
9823 /* 10439 */ // No operand predicates
9824 /* 10439 */ // MIs[0] tailcall
9825 /* 10439 */ // No operand predicates
9826 /* 10439 */ // Combiner Rule #281: combine_memset
9827 /* 10439 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner167),
9828 /* 10442 */ // Label 573: @10442
9829 /* 10442 */ GIM_Try, /*On fail goto*//*Label 574*/ GIMT_Encode4(10453), // Rule ID 454 //
9830 /* 10447 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule282Enabled),
9831 /* 10450 */ // MIs[0] dst_addr
9832 /* 10450 */ // No operand predicates
9833 /* 10450 */ // MIs[0] value
9834 /* 10450 */ // No operand predicates
9835 /* 10450 */ // MIs[0] size
9836 /* 10450 */ // No operand predicates
9837 /* 10450 */ // MIs[0] tailcall
9838 /* 10450 */ // No operand predicates
9839 /* 10450 */ // Combiner Rule #282: emit_bzero
9840 /* 10450 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner168),
9841 /* 10453 */ // Label 574: @10453
9842 /* 10453 */ GIM_Reject,
9843 /* 10454 */ // Label 118: @10454
9844 /* 10454 */ GIM_Try, /*On fail goto*//*Label 575*/ GIMT_Encode4(10465), // Rule ID 450 //
9845 /* 10459 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule278Enabled),
9846 /* 10462 */ // MIs[0] dst_addr
9847 /* 10462 */ // No operand predicates
9848 /* 10462 */ // MIs[0] value
9849 /* 10462 */ // No operand predicates
9850 /* 10462 */ // MIs[0] size
9851 /* 10462 */ // No operand predicates
9852 /* 10462 */ // Combiner Rule #278: combine_memset_inline
9853 /* 10462 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner166),
9854 /* 10465 */ // Label 575: @10465
9855 /* 10465 */ GIM_Reject,
9856 /* 10466 */ // Label 119: @10466
9857 /* 10466 */ GIM_Try_CheckFeatures, /*On fail goto*//*Label 576*/ GIMT_Encode4(10479), GIMT_Encode2(GIFBS_HasDotProd), // Rule ID 440 //
9858 /* 10473 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule268Enabled),
9859 /* 10476 */ // Combiner Rule #268: ext_addv_to_udot_addv; wip_match_opcode 'G_VECREDUCE_ADD'
9860 /* 10476 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner162),
9861 /* 10479 */ // Label 576: @10479
9862 /* 10479 */ GIM_Try, /*On fail goto*//*Label 577*/ GIMT_Encode4(10490), // Rule ID 441 //
9863 /* 10484 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule269Enabled),
9864 /* 10487 */ // Combiner Rule #269: ext_uaddv_to_uaddlv; wip_match_opcode 'G_VECREDUCE_ADD'
9865 /* 10487 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner163),
9866 /* 10490 */ // Label 577: @10490
9867 /* 10490 */ GIM_Reject,
9868 /* 10491 */ // Label 120: @10491
9869 /* 10491 */ GIM_Reject,
9870 /* 10492 */ }; // Size: 10492 bytes
9871 return MatchTable0;
9872}
9873#undef GIMT_Encode2
9874#undef GIMT_Encode4
9875#undef GIMT_Encode8
9876
9877
9878#endif // GET_GICOMBINER_IMPL
9879
9880#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
9881
9882AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
9883AvailableFunctionFeatures()
9884
9885#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
9886
9887#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
9888
9889, State(0),
9890ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
9891
9892#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
9893
9894