1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* AMDGPUPostLegalizerCombinerImpl 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 AMDGPUPostLegalizerCombinerImplRuleConfig {
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(Radix: 0, Result&: I);
35 if (Parsed)
36 return I;
37
38#ifndef NDEBUG
39 switch (RuleIdentifier.size()) {
40 default: break;
41 case 7: // 1 string to match.
42 if (memcmp(RuleIdentifier.data()+0, "smulu64", 7) != 0)
43 break;
44 return 274; // "smulu64"
45 case 9: // 6 strings to match.
46 switch (RuleIdentifier[0]) {
47 default: break;
48 case 'a': // 1 string to match.
49 if (memcmp(RuleIdentifier.data()+1, "dd_shift", 8) != 0)
50 break;
51 return 252; // "add_shift"
52 case 'c': // 1 string to match.
53 if (memcmp(RuleIdentifier.data()+1, "opy_prop", 8) != 0)
54 break;
55 return 19; // "copy_prop"
56 case 'm': // 3 strings to match.
57 switch (RuleIdentifier[1]) {
58 default: break;
59 case 'a': // 1 string to match.
60 if (memcmp(RuleIdentifier.data()+2, "tch_ors", 7) != 0)
61 break;
62 return 219; // "match_ors"
63 case 'u': // 2 strings to match.
64 if (memcmp(RuleIdentifier.data()+2, "lo_by_", 6) != 0)
65 break;
66 switch (RuleIdentifier[8]) {
67 default: break;
68 case '0': // 1 string to match.
69 return 163; // "mulo_by_0"
70 case '2': // 1 string to match.
71 return 162; // "mulo_by_2"
72 }
73 break;
74 }
75 break;
76 case 'n': // 1 string to match.
77 if (memcmp(RuleIdentifier.data()+1, "neg_zext", 8) != 0)
78 break;
79 return 228; // "nneg_zext"
80 }
81 break;
82 case 10: // 10 strings to match.
83 switch (RuleIdentifier[0]) {
84 default: break;
85 case 'S': // 2 strings to match.
86 if (memcmp(RuleIdentifier.data()+1, "ub", 2) != 0)
87 break;
88 switch (RuleIdentifier[3]) {
89 default: break;
90 case 'S': // 1 string to match.
91 if (memcmp(RuleIdentifier.data()+4, "maxSub", 6) != 0)
92 break;
93 return 257; // "SubSmaxSub"
94 case 'U': // 1 string to match.
95 if (memcmp(RuleIdentifier.data()+4, "maxSub", 6) != 0)
96 break;
97 return 258; // "SubUmaxSub"
98 }
99 break;
100 case 'i': // 1 string to match.
101 if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i", 9) != 0)
102 break;
103 return 96; // "i2p_to_p2i"
104 case 'm': // 2 strings to match.
105 switch (RuleIdentifier[1]) {
106 default: break;
107 case 'a': // 1 string to match.
108 if (memcmp(RuleIdentifier.data()+2, "tch_ands", 8) != 0)
109 break;
110 return 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: // 20 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 'f': // 1 string to match.
282 if (memcmp(RuleIdentifier.data()+1, "oldable_fneg", 12) != 0)
283 break;
284 return 270; // "foldable_fneg"
285 case 'l': // 1 string to match.
286 if (memcmp(RuleIdentifier.data()+1, "oad_and_mask", 12) != 0)
287 break;
288 return 75; // "load_and_mask"
289 case 'm': // 3 strings to match.
290 switch (RuleIdentifier[1]) {
291 default: break;
292 case 'a': // 1 string to match.
293 if (memcmp(RuleIdentifier.data()+2, "tch_selects", 11) != 0)
294 break;
295 return 133; // "match_selects"
296 case 'e': // 1 string to match.
297 if (memcmp(RuleIdentifier.data()+2, "rge_unmerge", 11) != 0)
298 break;
299 return 235; // "merge_unmerge"
300 case 'u': // 1 string to match.
301 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
302 break;
303 return 44; // "mul_of_vscale"
304 }
305 break;
306 case 'r': // 1 string to match.
307 if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
308 break;
309 return 136; // "redundant_and"
310 case 's': // 6 strings to match.
311 switch (RuleIdentifier[1]) {
312 default: break;
313 case 'a': // 1 string to match.
314 if (memcmp(RuleIdentifier.data()+2, "me_val_zero", 11) != 0)
315 break;
316 return 92; // "same_val_zero"
317 case 'd': // 1 string to match.
318 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
319 break;
320 return 211; // "sdiv_by_const"
321 case 'h': // 1 string to match.
322 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
323 break;
324 return 45; // "shl_of_vscale"
325 case 'r': // 1 string to match.
326 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
327 break;
328 return 207; // "srem_by_const"
329 case 'u': // 2 strings to match.
330 if (memcmp(RuleIdentifier.data()+2, "b_", 2) != 0)
331 break;
332 switch (RuleIdentifier[4]) {
333 default: break;
334 case 'm': // 1 string to match.
335 if (memcmp(RuleIdentifier.data()+5, "inus_one", 8) != 0)
336 break;
337 return 255; // "sub_minus_one"
338 case 'o': // 1 string to match.
339 if (memcmp(RuleIdentifier.data()+5, "f_vscale", 8) != 0)
340 break;
341 return 46; // "sub_of_vscale"
342 }
343 break;
344 }
345 break;
346 case 'u': // 4 strings to match.
347 switch (RuleIdentifier[1]) {
348 default: break;
349 case 'd': // 1 string to match.
350 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
351 break;
352 return 210; // "udiv_by_const"
353 case 'n': // 2 strings to match.
354 if (memcmp(RuleIdentifier.data()+2, "merge_", 6) != 0)
355 break;
356 switch (RuleIdentifier[8]) {
357 default: break;
358 case 'm': // 1 string to match.
359 if (memcmp(RuleIdentifier.data()+9, "erge", 4) != 0)
360 break;
361 return 234; // "unmerge_merge"
362 case 'u': // 1 string to match.
363 if (memcmp(RuleIdentifier.data()+9, "ndef", 4) != 0)
364 break;
365 return 237; // "unmerge_undef"
366 }
367 break;
368 case 'r': // 1 string to match.
369 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
370 break;
371 return 206; // "urem_by_const"
372 }
373 break;
374 }
375 break;
376 case 14: // 19 strings to match.
377 switch (RuleIdentifier[0]) {
378 default: break;
379 case 'A': // 2 strings to match.
380 switch (RuleIdentifier[1]) {
381 default: break;
382 case 'M': // 1 string to match.
383 if (memcmp(RuleIdentifier.data()+2, "inusC1PlusC2", 12) != 0)
384 break;
385 return 18; // "AMinusC1PlusC2"
386 case 'P': // 1 string to match.
387 if (memcmp(RuleIdentifier.data()+2, "lusC1MinusC2", 12) != 0)
388 break;
389 return 14; // "APlusC1MinusC2"
390 }
391 break;
392 case 'C': // 1 string to match.
393 if (memcmp(RuleIdentifier.data()+1, "2MinusAPlusC1", 13) != 0)
394 break;
395 return 15; // "C2MinusAPlusC1"
396 case 'N': // 1 string to match.
397 if (memcmp(RuleIdentifier.data()+1, "otAPlusNegOne", 13) != 0)
398 break;
399 return 13; // "NotAPlusNegOne"
400 case 'a': // 2 strings to match.
401 if (memcmp(RuleIdentifier.data()+1, "nyext_of_", 9) != 0)
402 break;
403 switch (RuleIdentifier[10]) {
404 default: break;
405 case 's': // 1 string to match.
406 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
407 break;
408 return 58; // "anyext_of_sext"
409 case 'z': // 1 string to match.
410 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
411 break;
412 return 57; // "anyext_of_zext"
413 }
414 break;
415 case 'b': // 3 strings to match.
416 if (RuleIdentifier[1] != 'i')
417 break;
418 switch (RuleIdentifier[2]) {
419 default: break;
420 case 'n': // 2 strings to match.
421 if (memcmp(RuleIdentifier.data()+3, "op_", 3) != 0)
422 break;
423 switch (RuleIdentifier[6]) {
424 default: break;
425 case 's': // 1 string to match.
426 if (memcmp(RuleIdentifier.data()+7, "ame_val", 7) != 0)
427 break;
428 return 91; // "binop_same_val"
429 case 'w': // 1 string to match.
430 if (memcmp(RuleIdentifier.data()+7, "ith_neg", 7) != 0)
431 break;
432 return 254; // "binop_with_neg"
433 }
434 break;
435 case 't': // 1 string to match.
436 if (memcmp(RuleIdentifier.data()+3, "reverse_shl", 11) != 0)
437 break;
438 return 180; // "bitreverse_shl"
439 }
440 break;
441 case 'c': // 1 string to match.
442 if (memcmp(RuleIdentifier.data()+1, "vt_f32_ubyteN", 13) != 0)
443 break;
444 return 268; // "cvt_f32_ubyteN"
445 case 'f': // 2 strings to match.
446 switch (RuleIdentifier[1]) {
447 default: break;
448 case 'a': // 1 string to match.
449 if (memcmp(RuleIdentifier.data()+2, "bs_fneg_fold", 12) != 0)
450 break;
451 return 192; // "fabs_fneg_fold"
452 case 'n': // 1 string to match.
453 if (memcmp(RuleIdentifier.data()+2, "eg_fneg_fold", 12) != 0)
454 break;
455 return 98; // "fneg_fneg_fold"
456 }
457 break;
458 case 'm': // 1 string to match.
459 if (memcmp(RuleIdentifier.data()+1, "ul_by_neg_one", 13) != 0)
460 break;
461 return 23; // "mul_by_neg_one"
462 case 'r': // 1 string to match.
463 if (memcmp(RuleIdentifier.data()+1, "eassoc_ptradd", 13) != 0)
464 break;
465 return 115; // "reassoc_ptradd"
466 case 's': // 3 strings to match.
467 switch (RuleIdentifier[1]) {
468 default: break;
469 case 'e': // 2 strings to match.
470 switch (RuleIdentifier[2]) {
471 default: break;
472 case 'l': // 1 string to match.
473 if (memcmp(RuleIdentifier.data()+3, "ect_of_zext", 11) != 0)
474 break;
475 return 60; // "select_of_zext"
476 case 'x': // 1 string to match.
477 if (memcmp(RuleIdentifier.data()+3, "t_of_anyext", 11) != 0)
478 break;
479 return 55; // "sext_of_anyext"
480 }
481 break;
482 case 'h': // 1 string to match.
483 if (memcmp(RuleIdentifier.data()+2, "ifts_too_big", 12) != 0)
484 break;
485 return 114; // "shifts_too_big"
486 }
487 break;
488 case 'u': // 1 string to match.
489 if (memcmp(RuleIdentifier.data()+1, "char_to_float", 13) != 0)
490 break;
491 return 267; // "uchar_to_float"
492 case 'z': // 1 string to match.
493 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
494 break;
495 return 53; // "zext_of_anyext"
496 }
497 break;
498 case 15: // 15 strings to match.
499 switch (RuleIdentifier[0]) {
500 default: break;
501 case 'A': // 2 strings to match.
502 switch (RuleIdentifier[1]) {
503 default: break;
504 case 'M': // 1 string to match.
505 if (memcmp(RuleIdentifier.data()+2, "inusC1MinusC2", 13) != 0)
506 break;
507 return 16; // "AMinusC1MinusC2"
508 case 'P': // 1 string to match.
509 if (memcmp(RuleIdentifier.data()+2, "lusZeroMinusB", 13) != 0)
510 break;
511 return 3; // "APlusZeroMinusB"
512 }
513 break;
514 case 'C': // 1 string to match.
515 if (memcmp(RuleIdentifier.data()+1, "1Minus2MinusC2", 14) != 0)
516 break;
517 return 17; // "C1Minus2MinusC2"
518 case 'Z': // 1 string to match.
519 if (memcmp(RuleIdentifier.data()+1, "eroMinusAPlusB", 14) != 0)
520 break;
521 return 2; // "ZeroMinusAPlusB"
522 case 'a': // 2 strings to match.
523 if (memcmp(RuleIdentifier.data()+1, "vgceil_", 7) != 0)
524 break;
525 switch (RuleIdentifier[8]) {
526 default: break;
527 case 's': // 1 string to match.
528 if (memcmp(RuleIdentifier.data()+9, "_match", 6) != 0)
529 break;
530 return 262; // "avgceil_s_match"
531 case 'u': // 1 string to match.
532 if (memcmp(RuleIdentifier.data()+9, "_match", 6) != 0)
533 break;
534 return 261; // "avgceil_u_match"
535 }
536 break;
537 case 'b': // 1 string to match.
538 if (memcmp(RuleIdentifier.data()+1, "itreverse_lshr", 14) != 0)
539 break;
540 return 181; // "bitreverse_lshr"
541 case 'e': // 1 string to match.
542 if (memcmp(RuleIdentifier.data()+1, "xtending_loads", 14) != 0)
543 break;
544 return 74; // "extending_loads"
545 case 'i': // 1 string to match.
546 if (memcmp(RuleIdentifier.data()+1, "dempotent_prop", 14) != 0)
547 break;
548 return 24; // "idempotent_prop"
549 case 'l': // 1 string to match.
550 if (memcmp(RuleIdentifier.data()+1, "oad_or_combine", 14) != 0)
551 break;
552 return 171; // "load_or_combine"
553 case 'n': // 1 string to match.
554 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_or", 14) != 0)
555 break;
556 return 68; // "narrow_binop_or"
557 case 'o': // 1 string to match.
558 if (memcmp(RuleIdentifier.data()+1, "verlapping_and", 14) != 0)
559 break;
560 return 161; // "overlapping_and"
561 case 'r': // 1 string to match.
562 if (memcmp(RuleIdentifier.data()+1, "cp_sqrt_to_rsq", 14) != 0)
563 break;
564 return 271; // "rcp_sqrt_to_rsq"
565 case 's': // 1 string to match.
566 if (memcmp(RuleIdentifier.data()+1, "elect_same_val", 14) != 0)
567 break;
568 return 89; // "select_same_val"
569 case 'z': // 1 string to match.
570 if (memcmp(RuleIdentifier.data()+1, "ext_trunc_fold", 14) != 0)
571 break;
572 return 140; // "zext_trunc_fold"
573 }
574 break;
575 case 16: // 18 strings to match.
576 switch (RuleIdentifier[0]) {
577 default: break;
578 case 'A': // 1 string to match.
579 if (memcmp(RuleIdentifier.data()+1, "MinusZeroMinusB", 15) != 0)
580 break;
581 return 11; // "AMinusZeroMinusB"
582 case 'a': // 3 strings to match.
583 switch (RuleIdentifier[1]) {
584 default: break;
585 case 'n': // 1 string to match.
586 if (memcmp(RuleIdentifier.data()+2, "yext_of_anyext", 14) != 0)
587 break;
588 return 56; // "anyext_of_anyext"
589 case 'v': // 2 strings to match.
590 if (memcmp(RuleIdentifier.data()+2, "gfloor_", 7) != 0)
591 break;
592 switch (RuleIdentifier[9]) {
593 default: break;
594 case 's': // 1 string to match.
595 if (memcmp(RuleIdentifier.data()+10, "_match", 6) != 0)
596 break;
597 return 260; // "avgfloor_s_match"
598 case 'u': // 1 string to match.
599 if (memcmp(RuleIdentifier.data()+10, "_match", 6) != 0)
600 break;
601 return 259; // "avgfloor_u_match"
602 }
603 break;
604 }
605 break;
606 case 'n': // 5 strings to match.
607 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_", 12) != 0)
608 break;
609 switch (RuleIdentifier[13]) {
610 default: break;
611 case 'a': // 2 strings to match.
612 switch (RuleIdentifier[14]) {
613 default: break;
614 case 'd': // 1 string to match.
615 if (RuleIdentifier[15] != 'd')
616 break;
617 return 64; // "narrow_binop_add"
618 case 'n': // 1 string to match.
619 if (RuleIdentifier[15] != 'd')
620 break;
621 return 67; // "narrow_binop_and"
622 }
623 break;
624 case 'm': // 1 string to match.
625 if (memcmp(RuleIdentifier.data()+14, "ul", 2) != 0)
626 break;
627 return 66; // "narrow_binop_mul"
628 case 's': // 1 string to match.
629 if (memcmp(RuleIdentifier.data()+14, "ub", 2) != 0)
630 break;
631 return 65; // "narrow_binop_sub"
632 case 'x': // 1 string to match.
633 if (memcmp(RuleIdentifier.data()+14, "or", 2) != 0)
634 break;
635 return 69; // "narrow_binop_xor"
636 }
637 break;
638 case 'o': // 1 string to match.
639 if (memcmp(RuleIdentifier.data()+1, "r_and_xor_to_or", 15) != 0)
640 break;
641 return 220; // "or_and_xor_to_or"
642 case 's': // 5 strings to match.
643 switch (RuleIdentifier[1]) {
644 default: break;
645 case 'e': // 3 strings to match.
646 if (memcmp(RuleIdentifier.data()+2, "lect_", 5) != 0)
647 break;
648 switch (RuleIdentifier[7]) {
649 default: break;
650 case 'o': // 1 string to match.
651 if (memcmp(RuleIdentifier.data()+8, "f_anyext", 8) != 0)
652 break;
653 return 61; // "select_of_anyext"
654 case 't': // 1 string to match.
655 if (memcmp(RuleIdentifier.data()+8, "o_minmax", 8) != 0)
656 break;
657 return 214; // "select_to_minmax"
658 case 'u': // 1 string to match.
659 if (memcmp(RuleIdentifier.data()+8, "ndef_cmp", 8) != 0)
660 break;
661 return 130; // "select_undef_cmp"
662 }
663 break;
664 case 'u': // 2 strings to match.
665 if (memcmp(RuleIdentifier.data()+2, "b_o", 3) != 0)
666 break;
667 switch (RuleIdentifier[5]) {
668 default: break;
669 case 'f': // 1 string to match.
670 if (memcmp(RuleIdentifier.data()+6, "_mul_const", 10) != 0)
671 break;
672 return 256; // "sub_of_mul_const"
673 case 'n': // 1 string to match.
674 if (memcmp(RuleIdentifier.data()+6, "e_from_sub", 10) != 0)
675 break;
676 return 253; // "sub_one_from_sub"
677 }
678 break;
679 }
680 break;
681 case 't': // 2 strings to match.
682 if (memcmp(RuleIdentifier.data()+1, "runcate_of_", 11) != 0)
683 break;
684 switch (RuleIdentifier[12]) {
685 default: break;
686 case 's': // 1 string to match.
687 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
688 break;
689 return 50; // "truncate_of_sext"
690 case 'z': // 1 string to match.
691 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
692 break;
693 return 49; // "truncate_of_zext"
694 }
695 break;
696 case 'u': // 1 string to match.
697 if (memcmp(RuleIdentifier.data()+1, "ndef_to_fp_zero", 15) != 0)
698 break;
699 return 77; // "undef_to_fp_zero"
700 }
701 break;
702 case 17: // 18 strings to match.
703 switch (RuleIdentifier[0]) {
704 default: break;
705 case 'A': // 2 strings to match.
706 if (memcmp(RuleIdentifier.data()+1, "PlusBMinus", 10) != 0)
707 break;
708 switch (RuleIdentifier[11]) {
709 default: break;
710 case 'A': // 1 string to match.
711 if (memcmp(RuleIdentifier.data()+12, "plusC", 5) != 0)
712 break;
713 return 8; // "APlusBMinusAplusC"
714 case 'C': // 1 string to match.
715 if (memcmp(RuleIdentifier.data()+12, "PlusA", 5) != 0)
716 break;
717 return 10; // "APlusBMinusCPlusA"
718 }
719 break;
720 case 'a': // 3 strings to match.
721 switch (RuleIdentifier[1]) {
722 default: break;
723 case 'd': // 1 string to match.
724 if (memcmp(RuleIdentifier.data()+2, "d_p2i_to_ptradd", 15) != 0)
725 break;
726 return 22; // "add_p2i_to_ptradd"
727 case 'n': // 2 strings to match.
728 switch (RuleIdentifier[2]) {
729 default: break;
730 case 'd': // 1 string to match.
731 if (memcmp(RuleIdentifier.data()+3, "_xor_or_to_and", 14) != 0)
732 break;
733 return 222; // "and_xor_or_to_and"
734 case 'y': // 1 string to match.
735 if (memcmp(RuleIdentifier.data()+3, "ext_trunc_fold", 14) != 0)
736 break;
737 return 97; // "anyext_trunc_fold"
738 }
739 break;
740 }
741 break;
742 case 'c': // 4 strings to match.
743 switch (RuleIdentifier[1]) {
744 default: break;
745 case 'a': // 2 strings to match.
746 if (memcmp(RuleIdentifier.data()+2, "nonicalize_", 11) != 0)
747 break;
748 switch (RuleIdentifier[13]) {
749 default: break;
750 case 'f': // 1 string to match.
751 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
752 break;
753 return 119; // "canonicalize_fcmp"
754 case 'i': // 1 string to match.
755 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
756 break;
757 return 118; // "canonicalize_icmp"
758 }
759 break;
760 case 'o': // 2 strings to match.
761 switch (RuleIdentifier[2]) {
762 default: break;
763 case 'm': // 1 string to match.
764 if (memcmp(RuleIdentifier.data()+3, "bine_or_of_and", 14) != 0)
765 break;
766 return 263; // "combine_or_of_and"
767 case 'n': // 1 string to match.
768 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fma", 14) != 0)
769 break;
770 return 189; // "constant_fold_fma"
771 }
772 break;
773 }
774 break;
775 case 'd': // 1 string to match.
776 if (memcmp(RuleIdentifier.data()+1, "iv_rem_to_divrem", 16) != 0)
777 break;
778 return 172; // "div_rem_to_divrem"
779 case 'e': // 1 string to match.
780 if (memcmp(RuleIdentifier.data()+1, "rase_undef_store", 16) != 0)
781 break;
782 return 87; // "erase_undef_store"
783 case 'p': // 1 string to match.
784 if (memcmp(RuleIdentifier.data()+1, "tr_add_with_zero", 16) != 0)
785 break;
786 return 168; // "ptr_add_with_zero"
787 case 's': // 4 strings to match.
788 switch (RuleIdentifier[1]) {
789 default: break;
790 case 'e': // 2 strings to match.
791 if (memcmp(RuleIdentifier.data()+2, "lect_", 5) != 0)
792 break;
793 switch (RuleIdentifier[7]) {
794 default: break;
795 case 't': // 1 string to match.
796 if (memcmp(RuleIdentifier.data()+8, "o_iminmax", 9) != 0)
797 break;
798 return 132; // "select_to_iminmax"
799 case 'z': // 1 string to match.
800 if (memcmp(RuleIdentifier.data()+8, "ero_false", 9) != 0)
801 break;
802 return 134; // "select_zero_false"
803 }
804 break;
805 case 'h': // 1 string to match.
806 if (memcmp(RuleIdentifier.data()+2, "ift_immed_chain", 15) != 0)
807 break;
808 return 169; // "shift_immed_chain"
809 case 'r': // 1 string to match.
810 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
811 break;
812 return 205; // "srem_pow2_to_mask"
813 }
814 break;
815 case 'u': // 2 strings to match.
816 switch (RuleIdentifier[1]) {
817 default: break;
818 case 'n': // 1 string to match.
819 if (memcmp(RuleIdentifier.data()+2, "def_to_int_zero", 15) != 0)
820 break;
821 return 78; // "undef_to_int_zero"
822 case 'r': // 1 string to match.
823 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
824 break;
825 return 139; // "urem_pow2_to_mask"
826 }
827 break;
828 }
829 break;
830 case 18: // 13 strings to match.
831 switch (RuleIdentifier[0]) {
832 default: break;
833 case 'A': // 3 strings to match.
834 switch (RuleIdentifier[1]) {
835 default: break;
836 case 'M': // 2 strings to match.
837 if (memcmp(RuleIdentifier.data()+2, "inusBPlus", 9) != 0)
838 break;
839 switch (RuleIdentifier[11]) {
840 default: break;
841 case 'B': // 1 string to match.
842 if (memcmp(RuleIdentifier.data()+12, "MinusC", 6) != 0)
843 break;
844 return 7; // "AMinusBPlusBMinusC"
845 case 'C': // 1 string to match.
846 if (memcmp(RuleIdentifier.data()+12, "MinusA", 6) != 0)
847 break;
848 return 6; // "AMinusBPlusCMinusA"
849 }
850 break;
851 case 'P': // 1 string to match.
852 if (memcmp(RuleIdentifier.data()+2, "lusBMinusCMinusB", 16) != 0)
853 break;
854 return 0; // "APlusBMinusCMinusB"
855 }
856 break;
857 case 'b': // 1 string to match.
858 if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
859 break;
860 return 93; // "binop_left_to_zero"
861 case 'c': // 4 strings to match.
862 if (RuleIdentifier[1] != 'o')
863 break;
864 switch (RuleIdentifier[2]) {
865 default: break;
866 case 'm': // 2 strings to match.
867 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
868 break;
869 switch (RuleIdentifier[8]) {
870 default: break;
871 case 'm': // 1 string to match.
872 if (memcmp(RuleIdentifier.data()+9, "inmax_nan", 9) != 0)
873 break;
874 return 165; // "combine_minmax_nan"
875 case 'o': // 1 string to match.
876 if (memcmp(RuleIdentifier.data()+9, "r_s64_s32", 9) != 0)
877 break;
878 return 277; // "combine_or_s64_s32"
879 }
880 break;
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': // 1 string to match.
903 if (memcmp(RuleIdentifier.data()+1, "ptrunc_fpext_fold", 17) != 0)
904 break;
905 return 107; // "fptrunc_fpext_fold"
906 case 's': // 2 strings to match.
907 if (RuleIdentifier[1] != 'e')
908 break;
909 switch (RuleIdentifier[2]) {
910 default: break;
911 case 'l': // 1 string to match.
912 if (memcmp(RuleIdentifier.data()+3, "ect_of_truncate", 15) != 0)
913 break;
914 return 62; // "select_of_truncate"
915 case 'x': // 1 string to match.
916 if (memcmp(RuleIdentifier.data()+3, "t_inreg_of_load", 15) != 0)
917 break;
918 return 127; // "sext_inreg_of_load"
919 }
920 break;
921 case 't': // 1 string to match.
922 if (memcmp(RuleIdentifier.data()+1, "runcate_of_anyext", 17) != 0)
923 break;
924 return 51; // "truncate_of_anyext"
925 }
926 break;
927 case 19: // 19 strings to match.
928 switch (RuleIdentifier[0]) {
929 default: break;
930 case 'A': // 1 string to match.
931 if (memcmp(RuleIdentifier.data()+1, "MinusBMinusCMinusC", 18) != 0)
932 break;
933 return 1; // "AMinusBMinusCMinusC"
934 case 'b': // 1 string to match.
935 if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
936 break;
937 return 94; // "binop_right_to_zero"
938 case 'c': // 7 strings to match.
939 if (memcmp(RuleIdentifier.data()+1, "onst", 4) != 0)
940 break;
941 switch (RuleIdentifier[5]) {
942 default: break;
943 case '_': // 1 string to match.
944 if (memcmp(RuleIdentifier.data()+6, "ptradd_to_i2p", 13) != 0)
945 break;
946 return 160; // "const_ptradd_to_i2p"
947 case 'a': // 6 strings to match.
948 if (memcmp(RuleIdentifier.data()+6, "nt_fold_", 8) != 0)
949 break;
950 switch (RuleIdentifier[14]) {
951 default: break;
952 case 'b': // 1 string to match.
953 if (memcmp(RuleIdentifier.data()+15, "inop", 4) != 0)
954 break;
955 return 187; // "constant_fold_binop"
956 case 'f': // 5 strings to match.
957 switch (RuleIdentifier[15]) {
958 default: break;
959 case 'c': // 1 string to match.
960 if (memcmp(RuleIdentifier.data()+16, "eil", 3) != 0)
961 break;
962 return 151; // "constant_fold_fceil"
963 case 'l': // 1 string to match.
964 if (memcmp(RuleIdentifier.data()+16, "og2", 3) != 0)
965 break;
966 return 148; // "constant_fold_flog2"
967 case 'p': // 1 string to match.
968 if (memcmp(RuleIdentifier.data()+16, "ext", 3) != 0)
969 break;
970 return 150; // "constant_fold_fpext"
971 case 'r': // 1 string to match.
972 if (memcmp(RuleIdentifier.data()+16, "int", 3) != 0)
973 break;
974 return 156; // "constant_fold_frint"
975 case 's': // 1 string to match.
976 if (memcmp(RuleIdentifier.data()+16, "qrt", 3) != 0)
977 break;
978 return 147; // "constant_fold_fsqrt"
979 }
980 break;
981 }
982 break;
983 }
984 break;
985 case 'e': // 1 string to match.
986 if (memcmp(RuleIdentifier.data()+1, "xtend_through_phis", 18) != 0)
987 break;
988 return 111; // "extend_through_phis"
989 case 'i': // 1 string to match.
990 if (memcmp(RuleIdentifier.data()+1, "nteger_of_truncate", 18) != 0)
991 break;
992 return 70; // "integer_of_truncate"
993 case 'm': // 1 string to match.
994 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_zero", 18) != 0)
995 break;
996 return 241; // "merge_of_x_and_zero"
997 case 'p': // 1 string to match.
998 if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
999 break;
1000 return 117; // "ptr_add_immed_chain"
1001 case 'r': // 2 strings to match.
1002 switch (RuleIdentifier[1]) {
1003 default: break;
1004 case 'e': // 1 string to match.
1005 if (memcmp(RuleIdentifier.data()+2, "assoc_comm_binops", 17) != 0)
1006 break;
1007 return 116; // "reassoc_comm_binops"
1008 case 'i': // 1 string to match.
1009 if (memcmp(RuleIdentifier.data()+2, "ght_identity_zero", 17) != 0)
1010 break;
1011 return 90; // "right_identity_zero"
1012 }
1013 break;
1014 case 's': // 3 strings to match.
1015 switch (RuleIdentifier[1]) {
1016 default: break;
1017 case 'e': // 1 string to match.
1018 if (memcmp(RuleIdentifier.data()+2, "lect_constant_cmp", 17) != 0)
1019 break;
1020 return 131; // "select_constant_cmp"
1021 case 'i': // 2 strings to match.
1022 if (memcmp(RuleIdentifier.data()+2, "mplify_", 7) != 0)
1023 break;
1024 switch (RuleIdentifier[9]) {
1025 default: break;
1026 case 'a': // 1 string to match.
1027 if (memcmp(RuleIdentifier.data()+10, "dd_to_sub", 9) != 0)
1028 break;
1029 return 112; // "simplify_add_to_sub"
1030 case 'n': // 1 string to match.
1031 if (memcmp(RuleIdentifier.data()+10, "eg_minmax", 9) != 0)
1032 break;
1033 return 224; // "simplify_neg_minmax"
1034 }
1035 break;
1036 }
1037 break;
1038 case 'u': // 1 string to match.
1039 if (memcmp(RuleIdentifier.data()+1, "nary_undef_to_zero", 18) != 0)
1040 break;
1041 return 82; // "unary_undef_to_zero"
1042 }
1043 break;
1044 case 20: // 10 strings to match.
1045 switch (RuleIdentifier[0]) {
1046 default: break;
1047 case 'a': // 1 string to match.
1048 if (memcmp(RuleIdentifier.data()+1, "nd_or_disjoint_mask", 19) != 0)
1049 break;
1050 return 195; // "and_or_disjoint_mask"
1051 case 'b': // 1 string to match.
1052 if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold", 19) != 0)
1053 break;
1054 return 105; // "bitcast_bitcast_fold"
1055 case 'c': // 1 string to match.
1056 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_ffloor", 19) != 0)
1057 break;
1058 return 152; // "constant_fold_ffloor"
1059 case 'm': // 1 string to match.
1060 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_undef", 19) != 0)
1061 break;
1062 return 240; // "merge_of_x_and_undef"
1063 case 'o': // 1 string to match.
1064 if (memcmp(RuleIdentifier.data()+1, "r_and_xor_to_xor_or", 19) != 0)
1065 break;
1066 return 221; // "or_and_xor_to_xor_or"
1067 case 'r': // 3 strings to match.
1068 if (RuleIdentifier[1] != 'e')
1069 break;
1070 switch (RuleIdentifier[2]) {
1071 default: break;
1072 case 'd': // 2 strings to match.
1073 if (RuleIdentifier[3] != 'u')
1074 break;
1075 switch (RuleIdentifier[4]) {
1076 default: break;
1077 case 'c': // 1 string to match.
1078 if (memcmp(RuleIdentifier.data()+5, "e_shl_of_extend", 15) != 0)
1079 break;
1080 return 128; // "reduce_shl_of_extend"
1081 case 'n': // 1 string to match.
1082 if (memcmp(RuleIdentifier.data()+5, "dant_sext_inreg", 15) != 0)
1083 break;
1084 return 137; // "redundant_sext_inreg"
1085 }
1086 break;
1087 case 'm': // 1 string to match.
1088 if (memcmp(RuleIdentifier.data()+3, "ove_fcanonicalize", 17) != 0)
1089 break;
1090 return 269; // "remove_fcanonicalize"
1091 }
1092 break;
1093 case 'u': // 2 strings to match.
1094 if (RuleIdentifier[1] != 'n')
1095 break;
1096 switch (RuleIdentifier[2]) {
1097 default: break;
1098 case 'a': // 1 string to match.
1099 if (memcmp(RuleIdentifier.data()+3, "ry_undef_to_undef", 17) != 0)
1100 break;
1101 return 83; // "unary_undef_to_undef"
1102 case 'm': // 1 string to match.
1103 if (memcmp(RuleIdentifier.data()+3, "erge_zext_to_zext", 17) != 0)
1104 break;
1105 return 239; // "unmerge_zext_to_zext"
1106 }
1107 break;
1108 }
1109 break;
1110 case 21: // 13 strings to match.
1111 switch (RuleIdentifier[0]) {
1112 default: break;
1113 case 'a': // 1 string to match.
1114 if (memcmp(RuleIdentifier.data()+1, "nd_xor_or_to_xor_and", 20) != 0)
1115 break;
1116 return 223; // "and_xor_or_to_xor_and"
1117 case 'c': // 4 strings to match.
1118 if (RuleIdentifier[1] != 'o')
1119 break;
1120 switch (RuleIdentifier[2]) {
1121 default: break;
1122 case 'm': // 2 strings to match.
1123 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1124 break;
1125 switch (RuleIdentifier[8]) {
1126 default: break;
1127 case 'b': // 1 string to match.
1128 if (memcmp(RuleIdentifier.data()+9, "uild_unmerge", 12) != 0)
1129 break;
1130 return 242; // "combine_build_unmerge"
1131 case 'c': // 1 string to match.
1132 if (memcmp(RuleIdentifier.data()+9, "oncat_vector", 12) != 0)
1133 break;
1134 return 225; // "combine_concat_vector"
1135 }
1136 break;
1137 case 'n': // 2 strings to match.
1138 if (memcmp(RuleIdentifier.data()+3, "stant_fold_", 11) != 0)
1139 break;
1140 switch (RuleIdentifier[14]) {
1141 default: break;
1142 case 'c': // 1 string to match.
1143 if (memcmp(RuleIdentifier.data()+15, "ast_op", 6) != 0)
1144 break;
1145 return 190; // "constant_fold_cast_op"
1146 case 'f': // 1 string to match.
1147 if (memcmp(RuleIdentifier.data()+15, "ptrunc", 6) != 0)
1148 break;
1149 return 149; // "constant_fold_fptrunc"
1150 }
1151 break;
1152 }
1153 break;
1154 case 'e': // 1 string to match.
1155 if (memcmp(RuleIdentifier.data()+1, "xpand_promoted_fmed3", 20) != 0)
1156 break;
1157 return 265; // "expand_promoted_fmed3"
1158 case 'f': // 1 string to match.
1159 if (memcmp(RuleIdentifier.data()+1, "div_repeated_divison", 20) != 0)
1160 break;
1161 return 212; // "fdiv_repeated_divison"
1162 case 'i': // 1 string to match.
1163 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_elt_oob", 20) != 0)
1164 break;
1165 return 30; // "insert_vector_elt_oob"
1166 case 'l': // 1 string to match.
1167 if (memcmp(RuleIdentifier.data()+1, "shr_of_trunc_of_lshr", 20) != 0)
1168 break;
1169 return 249; // "lshr_of_trunc_of_lshr"
1170 case 'r': // 1 string to match.
1171 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
1172 break;
1173 return 100; // "right_identity_one_fp"
1174 case 's': // 1 string to match.
1175 if (memcmp(RuleIdentifier.data()+1, "ign_extension_in_reg", 20) != 0)
1176 break;
1177 return 273; // "sign_extension_in_reg"
1178 case 'u': // 2 strings to match.
1179 if (RuleIdentifier[1] != 'n')
1180 break;
1181 switch (RuleIdentifier[2]) {
1182 default: break;
1183 case 'd': // 1 string to match.
1184 if (memcmp(RuleIdentifier.data()+3, "ef_to_negative_one", 18) != 0)
1185 break;
1186 return 79; // "undef_to_negative_one"
1187 case 'm': // 1 string to match.
1188 if (memcmp(RuleIdentifier.data()+3, "erge_dead_to_trunc", 18) != 0)
1189 break;
1190 return 238; // "unmerge_dead_to_trunc"
1191 }
1192 break;
1193 }
1194 break;
1195 case 22: // 13 strings to match.
1196 switch (RuleIdentifier[0]) {
1197 default: break;
1198 case 'c': // 2 strings to match.
1199 if (RuleIdentifier[1] != 'o')
1200 break;
1201 switch (RuleIdentifier[2]) {
1202 default: break;
1203 case 'm': // 1 string to match.
1204 if (memcmp(RuleIdentifier.data()+3, "bine_shuffle_concat", 19) != 0)
1205 break;
1206 return 229; // "combine_shuffle_concat"
1207 case 'n': // 1 string to match.
1208 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fp_binop", 19) != 0)
1209 break;
1210 return 188; // "constant_fold_fp_binop"
1211 }
1212 break;
1213 case 'f': // 4 strings to match.
1214 switch (RuleIdentifier[1]) {
1215 default: break;
1216 case 'o': // 1 string to match.
1217 if (memcmp(RuleIdentifier.data()+2, "ld_binop_into_select", 20) != 0)
1218 break;
1219 return 204; // "fold_binop_into_select"
1220 case 'u': // 3 strings to match.
1221 if (memcmp(RuleIdentifier.data()+2, "nnel_shift_", 11) != 0)
1222 break;
1223 switch (RuleIdentifier[13]) {
1224 default: break;
1225 case 'l': // 1 string to match.
1226 if (memcmp(RuleIdentifier.data()+14, "eft_zero", 8) != 0)
1227 break;
1228 return 176; // "funnel_shift_left_zero"
1229 case 'o': // 1 string to match.
1230 if (memcmp(RuleIdentifier.data()+14, "vershift", 8) != 0)
1231 break;
1232 return 177; // "funnel_shift_overshift"
1233 case 't': // 1 string to match.
1234 if (memcmp(RuleIdentifier.data()+14, "o_rotate", 8) != 0)
1235 break;
1236 return 174; // "funnel_shift_to_rotate"
1237 }
1238 break;
1239 }
1240 break;
1241 case 'i': // 1 string to match.
1242 if (memcmp(RuleIdentifier.data()+1, "cmp_to_lhs_known_bits", 21) != 0)
1243 break;
1244 return 121; // "icmp_to_lhs_known_bits"
1245 case 'm': // 1 string to match.
1246 if (memcmp(RuleIdentifier.data()+1, "atch_subo_no_overflow", 21) != 0)
1247 break;
1248 return 244; // "match_subo_no_overflow"
1249 case 'p': // 1 string to match.
1250 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_any_op", 21) != 0)
1251 break;
1252 return 84; // "propagate_undef_any_op"
1253 case 'r': // 2 strings to match.
1254 switch (RuleIdentifier[1]) {
1255 default: break;
1256 case 'e': // 1 string to match.
1257 if (memcmp(RuleIdentifier.data()+2, "dundant_neg_operands", 20) != 0)
1258 break;
1259 return 194; // "redundant_neg_operands"
1260 case 'i': // 1 string to match.
1261 if (memcmp(RuleIdentifier.data()+2, "ght_identity_one_int", 20) != 0)
1262 break;
1263 return 99; // "right_identity_one_int"
1264 }
1265 break;
1266 case 's': // 1 string to match.
1267 if (memcmp(RuleIdentifier.data()+1, "hl_ashr_to_sext_inreg", 21) != 0)
1268 break;
1269 return 125; // "shl_ashr_to_sext_inreg"
1270 case 't': // 1 string to match.
1271 if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold", 21) != 0)
1272 break;
1273 return 103; // "trunc_buildvector_fold"
1274 }
1275 break;
1276 case 23: // 7 strings to match.
1277 switch (RuleIdentifier[0]) {
1278 default: break;
1279 case 'b': // 1 string to match.
1280 if (memcmp(RuleIdentifier.data()+1, "uildvector_of_truncate", 22) != 0)
1281 break;
1282 return 63; // "buildvector_of_truncate"
1283 case 'f': // 2 strings to match.
1284 switch (RuleIdentifier[1]) {
1285 default: break;
1286 case 'd': // 1 string to match.
1287 if (memcmp(RuleIdentifier.data()+2, "iv_by_sqrt_to_rsq_f16", 21) != 0)
1288 break;
1289 return 272; // "fdiv_by_sqrt_to_rsq_f16"
1290 case 'u': // 1 string to match.
1291 if (memcmp(RuleIdentifier.data()+2, "nnel_shift_right_zero", 21) != 0)
1292 break;
1293 return 175; // "funnel_shift_right_zero"
1294 }
1295 break;
1296 case 'i': // 2 strings to match.
1297 if (memcmp(RuleIdentifier.data()+1, "tof_const_zero_fold_", 20) != 0)
1298 break;
1299 switch (RuleIdentifier[21]) {
1300 default: break;
1301 case 's': // 1 string to match.
1302 if (RuleIdentifier[22] != 'i')
1303 break;
1304 return 158; // "itof_const_zero_fold_si"
1305 case 'u': // 1 string to match.
1306 if (RuleIdentifier[22] != 'i')
1307 break;
1308 return 159; // "itof_const_zero_fold_ui"
1309 }
1310 break;
1311 case 'p': // 1 string to match.
1312 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_all_ops", 22) != 0)
1313 break;
1314 return 85; // "propagate_undef_all_ops"
1315 case 't': // 1 string to match.
1316 if (memcmp(RuleIdentifier.data()+1, "runcusatu_to_fptouisat", 22) != 0)
1317 break;
1318 return 248; // "truncusatu_to_fptouisat"
1319 }
1320 break;
1321 case 24: // 8 strings to match.
1322 switch (RuleIdentifier[0]) {
1323 default: break;
1324 case 'b': // 1 string to match.
1325 if (memcmp(RuleIdentifier.data()+1, "inop_left_undef_to_zero", 23) != 0)
1326 break;
1327 return 80; // "binop_left_undef_to_zero"
1328 case 'c': // 2 strings to match.
1329 switch (RuleIdentifier[1]) {
1330 default: break;
1331 case 'o': // 1 string to match.
1332 if (memcmp(RuleIdentifier.data()+2, "nstant_fold_fnearbyint", 22) != 0)
1333 break;
1334 return 157; // "constant_fold_fnearbyint"
1335 case 't': // 1 string to match.
1336 if (memcmp(RuleIdentifier.data()+2, "lz_zero_poison_to_ctls", 22) != 0)
1337 break;
1338 return 251; // "ctlz_zero_poison_to_ctls"
1339 }
1340 break;
1341 case 'm': // 1 string to match.
1342 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element", 23) != 0)
1343 break;
1344 return 29; // "match_extract_of_element"
1345 case 'n': // 1 string to match.
1346 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_feeding_and", 23) != 0)
1347 break;
1348 return 129; // "narrow_binop_feeding_and"
1349 case 's': // 2 strings to match.
1350 if (memcmp(RuleIdentifier.data()+1, "ext_inreg_", 10) != 0)
1351 break;
1352 switch (RuleIdentifier[11]) {
1353 default: break;
1354 case 'o': // 1 string to match.
1355 if (memcmp(RuleIdentifier.data()+12, "f_sext_inreg", 12) != 0)
1356 break;
1357 return 59; // "sext_inreg_of_sext_inreg"
1358 case 't': // 1 string to match.
1359 if (memcmp(RuleIdentifier.data()+12, "o_zext_inreg", 12) != 0)
1360 break;
1361 return 141; // "sext_inreg_to_zext_inreg"
1362 }
1363 break;
1364 case 'x': // 1 string to match.
1365 if (memcmp(RuleIdentifier.data()+1, "or_of_and_with_same_reg", 23) != 0)
1366 break;
1367 return 167; // "xor_of_and_with_same_reg"
1368 }
1369 break;
1370 case 25: // 7 strings to match.
1371 switch (RuleIdentifier[0]) {
1372 default: break;
1373 case 'b': // 3 strings to match.
1374 switch (RuleIdentifier[1]) {
1375 default: break;
1376 case 'i': // 2 strings to match.
1377 if (memcmp(RuleIdentifier.data()+2, "tfield_extract_from_", 20) != 0)
1378 break;
1379 switch (RuleIdentifier[22]) {
1380 default: break;
1381 case 'a': // 1 string to match.
1382 if (memcmp(RuleIdentifier.data()+23, "nd", 2) != 0)
1383 break;
1384 return 184; // "bitfield_extract_from_and"
1385 case 's': // 1 string to match.
1386 if (memcmp(RuleIdentifier.data()+23, "hr", 2) != 0)
1387 break;
1388 return 185; // "bitfield_extract_from_shr"
1389 }
1390 break;
1391 case 'u': // 1 string to match.
1392 if (memcmp(RuleIdentifier.data()+2, "ildvector_identity_fold", 23) != 0)
1393 break;
1394 return 102; // "buildvector_identity_fold"
1395 }
1396 break;
1397 case 'c': // 1 string to match.
1398 if (memcmp(RuleIdentifier.data()+1, "ombine_shuffle_undef_rhs", 24) != 0)
1399 break;
1400 return 230; // "combine_shuffle_undef_rhs"
1401 case 'e': // 1 string to match.
1402 if (memcmp(RuleIdentifier.data()+1, "xtract_vec_elt_build_vec", 24) != 0)
1403 break;
1404 return 72; // "extract_vec_elt_build_vec"
1405 case 'n': // 1 string to match.
1406 if (memcmp(RuleIdentifier.data()+1, "eg_and_one_to_sext_inreg", 24) != 0)
1407 break;
1408 return 126; // "neg_and_one_to_sext_inreg"
1409 case 'r': // 1 string to match.
1410 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_one_fp", 24) != 0)
1411 break;
1412 return 110; // "right_identity_neg_one_fp"
1413 }
1414 break;
1415 case 26: // 6 strings to match.
1416 switch (RuleIdentifier[0]) {
1417 default: break;
1418 case 'b': // 2 strings to match.
1419 if (RuleIdentifier[1] != 'i')
1420 break;
1421 switch (RuleIdentifier[2]) {
1422 default: break;
1423 case 'n': // 1 string to match.
1424 if (memcmp(RuleIdentifier.data()+3, "op_right_undef_to_undef", 23) != 0)
1425 break;
1426 return 81; // "binop_right_undef_to_undef"
1427 case 't': // 1 string to match.
1428 if (memcmp(RuleIdentifier.data()+3, "cast_bitcast_to_bitcast", 23) != 0)
1429 break;
1430 return 106; // "bitcast_bitcast_to_bitcast"
1431 }
1432 break;
1433 case 'c': // 2 strings to match.
1434 if (RuleIdentifier[1] != 'o')
1435 break;
1436 switch (RuleIdentifier[2]) {
1437 default: break;
1438 case 'm': // 1 string to match.
1439 if (memcmp(RuleIdentifier.data()+3, "mute_fp_constant_to_rhs", 23) != 0)
1440 break;
1441 return 217; // "commute_fp_constant_to_rhs"
1442 case 'n': // 1 string to match.
1443 if (memcmp(RuleIdentifier.data()+3, "stant_fold_unary_int_op", 23) != 0)
1444 break;
1445 return 191; // "constant_fold_unary_int_op"
1446 }
1447 break;
1448 case 'f': // 1 string to match.
1449 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_from_or_shift", 25) != 0)
1450 break;
1451 return 173; // "funnel_shift_from_or_shift"
1452 case 'r': // 1 string to match.
1453 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp", 25) != 0)
1454 break;
1455 return 108; // "right_identity_neg_zero_fp"
1456 }
1457 break;
1458 case 27: // 6 strings to match.
1459 switch (RuleIdentifier[0]) {
1460 default: break;
1461 case 'c': // 2 strings to match.
1462 if (memcmp(RuleIdentifier.data()+1, "om", 2) != 0)
1463 break;
1464 switch (RuleIdentifier[3]) {
1465 default: break;
1466 case 'b': // 1 string to match.
1467 if (memcmp(RuleIdentifier.data()+4, "ine_use_vector_truncate", 23) != 0)
1468 break;
1469 return 232; // "combine_use_vector_truncate"
1470 case 'm': // 1 string to match.
1471 if (memcmp(RuleIdentifier.data()+4, "ute_int_constant_to_rhs", 23) != 0)
1472 break;
1473 return 216; // "commute_int_constant_to_rhs"
1474 }
1475 break;
1476 case 'd': // 1 string to match.
1477 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_or_combine", 26) != 0)
1478 break;
1479 return 123; // "double_icmp_zero_or_combine"
1480 case 'r': // 1 string to match.
1481 if (memcmp(RuleIdentifier.data()+1, "edundant_binop_in_equality", 26) != 0)
1482 break;
1483 return 124; // "redundant_binop_in_equality"
1484 case 't': // 1 string to match.
1485 if (memcmp(RuleIdentifier.data()+1, "runc_lshr_buildvector_fold", 26) != 0)
1486 break;
1487 return 104; // "trunc_lshr_buildvector_fold"
1488 case 'u': // 1 string to match.
1489 if (memcmp(RuleIdentifier.data()+1, "nmerge_anyext_build_vector", 26) != 0)
1490 break;
1491 return 233; // "unmerge_anyext_build_vector"
1492 }
1493 break;
1494 case 28: // 5 strings to match.
1495 switch (RuleIdentifier[0]) {
1496 default: break;
1497 case 'c': // 1 string to match.
1498 if (memcmp(RuleIdentifier.data()+1, "ombine_or_s64_with_s32_mask", 27) != 0)
1499 break;
1500 return 275; // "combine_or_s64_with_s32_mask"
1501 case 'd': // 1 string to match.
1502 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_and_combine", 27) != 0)
1503 break;
1504 return 122; // "double_icmp_zero_and_combine"
1505 case 'o': // 1 string to match.
1506 if (memcmp(RuleIdentifier.data()+1, "pt_brcond_by_inverting_cond", 27) != 0)
1507 break;
1508 return 144; // "opt_brcond_by_inverting_cond"
1509 case 'p': // 1 string to match.
1510 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_shuffle_mask", 27) != 0)
1511 break;
1512 return 86; // "propagate_undef_shuffle_mask"
1513 case 's': // 1 string to match.
1514 if (memcmp(RuleIdentifier.data()+1, "hift_of_shifted_logic_chain", 27) != 0)
1515 break;
1516 return 170; // "shift_of_shifted_logic_chain"
1517 }
1518 break;
1519 case 29: // 7 strings to match.
1520 switch (RuleIdentifier[0]) {
1521 default: break;
1522 case 'b': // 1 string to match.
1523 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_shr_and", 28) != 0)
1524 break;
1525 return 186; // "bitfield_extract_from_shr_and"
1526 case 'c': // 5 strings to match.
1527 if (RuleIdentifier[1] != 'o')
1528 break;
1529 switch (RuleIdentifier[2]) {
1530 default: break;
1531 case 'm': // 3 strings to match.
1532 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1533 break;
1534 switch (RuleIdentifier[8]) {
1535 default: break;
1536 case 'a': // 1 string to match.
1537 if (memcmp(RuleIdentifier.data()+9, "nd_s64_with_s32_mask", 20) != 0)
1538 break;
1539 return 276; // "combine_and_s64_with_s32_mask"
1540 case 'e': // 1 string to match.
1541 if (memcmp(RuleIdentifier.data()+9, "xtracted_vector_load", 20) != 0)
1542 break;
1543 return 76; // "combine_extracted_vector_load"
1544 case 's': // 1 string to match.
1545 if (memcmp(RuleIdentifier.data()+9, "huffle_disjoint_mask", 20) != 0)
1546 break;
1547 return 231; // "combine_shuffle_disjoint_mask"
1548 }
1549 break;
1550 case 'n': // 2 strings to match.
1551 if (memcmp(RuleIdentifier.data()+3, "stant_fold_intrinsic_", 21) != 0)
1552 break;
1553 switch (RuleIdentifier[24]) {
1554 default: break;
1555 case 'r': // 1 string to match.
1556 if (memcmp(RuleIdentifier.data()+25, "ound", 4) != 0)
1557 break;
1558 return 154; // "constant_fold_intrinsic_round"
1559 case 't': // 1 string to match.
1560 if (memcmp(RuleIdentifier.data()+25, "runc", 4) != 0)
1561 break;
1562 return 153; // "constant_fold_intrinsic_trunc"
1563 }
1564 break;
1565 }
1566 break;
1567 case 'i': // 1 string to match.
1568 if (memcmp(RuleIdentifier.data()+1, "cmp_to_true_false_known_bits", 28) != 0)
1569 break;
1570 return 120; // "icmp_to_true_false_known_bits"
1571 }
1572 break;
1573 case 30: // 2 strings to match.
1574 switch (RuleIdentifier[0]) {
1575 default: break;
1576 case 'f': // 1 string to match.
1577 if (memcmp(RuleIdentifier.data()+1, "reeze_of_non_undef_non_poison", 29) != 0)
1578 break;
1579 return 47; // "freeze_of_non_undef_non_poison"
1580 case 'r': // 1 string to match.
1581 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp_nsz", 29) != 0)
1582 break;
1583 return 109; // "right_identity_neg_zero_fp_nsz"
1584 }
1585 break;
1586 case 31: // 3 strings to match.
1587 switch (RuleIdentifier[0]) {
1588 default: break;
1589 case 'f': // 1 string to match.
1590 if (memcmp(RuleIdentifier.data()+1, "cmp_select_to_fmin_fmax_legacy", 30) != 0)
1591 break;
1592 return 264; // "fcmp_select_to_fmin_fmax_legacy"
1593 case 'i': // 2 strings to match.
1594 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_element_", 21) != 0)
1595 break;
1596 switch (RuleIdentifier[22]) {
1597 default: break;
1598 case 'e': // 1 string to match.
1599 if (memcmp(RuleIdentifier.data()+23, "lt_undef", 8) != 0)
1600 break;
1601 return 28; // "insert_vector_element_elt_undef"
1602 case 'i': // 1 string to match.
1603 if (memcmp(RuleIdentifier.data()+23, "dx_undef", 8) != 0)
1604 break;
1605 return 27; // "insert_vector_element_idx_undef"
1606 }
1607 break;
1608 }
1609 break;
1610 case 32: // 4 strings to match.
1611 switch (RuleIdentifier[0]) {
1612 default: break;
1613 case 'b': // 1 string to match.
1614 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_sext_inreg", 31) != 0)
1615 break;
1616 return 183; // "bitfield_extract_from_sext_inreg"
1617 case 'c': // 2 strings to match.
1618 if (memcmp(RuleIdentifier.data()+1, "ombine_f", 8) != 0)
1619 break;
1620 switch (RuleIdentifier[9]) {
1621 default: break;
1622 case 'a': // 1 string to match.
1623 if (memcmp(RuleIdentifier.data()+10, "dd_fmul_to_fmad_or_fma", 22) != 0)
1624 break;
1625 return 196; // "combine_fadd_fmul_to_fmad_or_fma"
1626 case 's': // 1 string to match.
1627 if (memcmp(RuleIdentifier.data()+10, "ub_fmul_to_fmad_or_fma", 22) != 0)
1628 break;
1629 return 200; // "combine_fsub_fmul_to_fmad_or_fma"
1630 }
1631 break;
1632 case 'e': // 1 string to match.
1633 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_not_const", 31) != 0)
1634 break;
1635 return 31; // "extract_vector_element_not_const"
1636 }
1637 break;
1638 case 33: // 1 string to match.
1639 if (memcmp(RuleIdentifier.data()+0, "constant_fold_intrinsic_roundeven", 33) != 0)
1640 break;
1641 return 155; // "constant_fold_intrinsic_roundeven"
1642 case 34: // 2 strings to match.
1643 switch (RuleIdentifier[0]) {
1644 default: break;
1645 case 'c': // 1 string to match.
1646 if (memcmp(RuleIdentifier.data()+1, "ombine_fmul_with_select_to_fldexp", 33) != 0)
1647 break;
1648 return 266; // "combine_fmul_with_select_to_fldexp"
1649 case 'e': // 1 string to match.
1650 if (memcmp(RuleIdentifier.data()+1, "xtract_all_elts_from_build_vector", 33) != 0)
1651 break;
1652 return 73; // "extract_all_elts_from_build_vector"
1653 }
1654 break;
1655 case 35: // 1 string to match.
1656 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_build_vector", 35) != 0)
1657 break;
1658 return 33; // "extract_vector_element_build_vector"
1659 case 36: // 4 strings to match.
1660 switch (RuleIdentifier[0]) {
1661 default: break;
1662 case 'c': // 2 strings to match.
1663 if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
1664 break;
1665 switch (RuleIdentifier[8]) {
1666 default: break;
1667 case 'f': // 1 string to match.
1668 if (memcmp(RuleIdentifier.data()+9, "add_fma_fmul_to_fmad_or_fma", 27) != 0)
1669 break;
1670 return 198; // "combine_fadd_fma_fmul_to_fmad_or_fma"
1671 case 'i': // 1 string to match.
1672 if (memcmp(RuleIdentifier.data()+9, "nsert_vec_elts_build_vector", 27) != 0)
1673 break;
1674 return 71; // "combine_insert_vec_elts_build_vector"
1675 }
1676 break;
1677 case 'i': // 1 string to match.
1678 if (memcmp(RuleIdentifier.data()+1, "nsert_extract_vec_elt_out_of_bounds", 35) != 0)
1679 break;
1680 return 88; // "insert_extract_vec_elt_out_of_bounds"
1681 case 'm': // 1 string to match.
1682 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_index", 35) != 0)
1683 break;
1684 return 26; // "match_extract_of_element_undef_index"
1685 }
1686 break;
1687 case 37: // 4 strings to match.
1688 switch (RuleIdentifier[0]) {
1689 default: break;
1690 case 'c': // 1 string to match.
1691 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fneg_fmul_to_fmad_or_fma", 36) != 0)
1692 break;
1693 return 201; // "combine_fsub_fneg_fmul_to_fmad_or_fma"
1694 case 'e': // 1 string to match.
1695 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_shuffle_vector", 36) != 0)
1696 break;
1697 return 41; // "extract_vector_element_shuffle_vector"
1698 case 'h': // 1 string to match.
1699 if (memcmp(RuleIdentifier.data()+1, "oist_logic_op_with_same_opcode_hands", 36) != 0)
1700 break;
1701 return 113; // "hoist_logic_op_with_same_opcode_hands"
1702 case 'm': // 1 string to match.
1703 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_vector", 36) != 0)
1704 break;
1705 return 25; // "match_extract_of_element_undef_vector"
1706 }
1707 break;
1708 case 38: // 2 strings to match.
1709 if (memcmp(RuleIdentifier.data()+0, "combine_f", 9) != 0)
1710 break;
1711 switch (RuleIdentifier[9]) {
1712 default: break;
1713 case 'a': // 1 string to match.
1714 if (memcmp(RuleIdentifier.data()+10, "dd_fpext_fmul_to_fmad_or_fma", 28) != 0)
1715 break;
1716 return 197; // "combine_fadd_fpext_fmul_to_fmad_or_fma"
1717 case 's': // 1 string to match.
1718 if (memcmp(RuleIdentifier.data()+10, "ub_fpext_fmul_to_fmad_or_fma", 28) != 0)
1719 break;
1720 return 202; // "combine_fsub_fpext_fmul_to_fmad_or_fma"
1721 }
1722 break;
1723 case 40: // 1 string to match.
1724 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_different_indices", 40) != 0)
1725 break;
1726 return 32; // "extract_vector_element_different_indices"
1727 case 42: // 9 strings to match.
1728 switch (RuleIdentifier[0]) {
1729 default: break;
1730 case 'c': // 1 string to match.
1731 if (memcmp(RuleIdentifier.data()+1, "ombine_fadd_fpext_fma_fmul_to_fmad_or_fma", 41) != 0)
1732 break;
1733 return 199; // "combine_fadd_fpext_fma_fmul_to_fmad_or_fma"
1734 case 'e': // 7 strings to match.
1735 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_build_vector_trunc", 40) != 0)
1736 break;
1737 switch (RuleIdentifier[41]) {
1738 default: break;
1739 case '2': // 1 string to match.
1740 return 34; // "extract_vector_element_build_vector_trunc2"
1741 case '3': // 1 string to match.
1742 return 35; // "extract_vector_element_build_vector_trunc3"
1743 case '4': // 1 string to match.
1744 return 36; // "extract_vector_element_build_vector_trunc4"
1745 case '5': // 1 string to match.
1746 return 37; // "extract_vector_element_build_vector_trunc5"
1747 case '6': // 1 string to match.
1748 return 38; // "extract_vector_element_build_vector_trunc6"
1749 case '7': // 1 string to match.
1750 return 39; // "extract_vector_element_build_vector_trunc7"
1751 case '8': // 1 string to match.
1752 return 40; // "extract_vector_element_build_vector_trunc8"
1753 }
1754 break;
1755 case 'f': // 1 string to match.
1756 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_left", 41) != 0)
1757 break;
1758 return 178; // "funnel_shift_or_shift_to_funnel_shift_left"
1759 }
1760 break;
1761 case 43: // 2 strings to match.
1762 switch (RuleIdentifier[0]) {
1763 default: break;
1764 case 'c': // 1 string to match.
1765 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fpext_fneg_fmul_to_fmad_or_fma", 42) != 0)
1766 break;
1767 return 203; // "combine_fsub_fpext_fneg_fmul_to_fmad_or_fma"
1768 case 'f': // 1 string to match.
1769 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_right", 42) != 0)
1770 break;
1771 return 179; // "funnel_shift_or_shift_to_funnel_shift_right"
1772 }
1773 break;
1774 case 44: // 1 string to match.
1775 if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_extract_vector_element", 44) != 0)
1776 break;
1777 return 42; // "insert_vector_element_extract_vector_element"
1778 case 46: // 1 string to match.
1779 if (memcmp(RuleIdentifier.data()+0, "push_freeze_to_prevent_poison_from_propagating", 46) != 0)
1780 break;
1781 return 48; // "push_freeze_to_prevent_poison_from_propagating"
1782 }
1783#endif // ifndef NDEBUG
1784
1785 return std::nullopt;
1786}
1787static std::optional<std::pair<uint64_t, uint64_t>> getRuleRangeForIdentifier(StringRef RuleIdentifier) {
1788 std::pair<StringRef, StringRef> RangePair = RuleIdentifier.split(Separator: '-');
1789 if (!RangePair.second.empty()) {
1790 const auto First = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
1791 const auto Last = getRuleIdxForIdentifier(RuleIdentifier: RangePair.second);
1792 if (!First || !Last)
1793 return std::nullopt;
1794 if (First >= Last)
1795 report_fatal_error(reason: "Beginning of range should be before end of range");
1796 return {{*First, *Last + 1}};
1797 }
1798 if (RangePair.first == "*") {
1799 return {{0, 278}};
1800 }
1801 const auto I = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
1802 if (!I)
1803 return std::nullopt;
1804 return {{*I, *I + 1}};
1805}
1806
1807bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleEnabled(StringRef RuleIdentifier) {
1808 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1809 if (!MaybeRange)
1810 return false;
1811 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1812 DisabledRules.reset(Idx: I);
1813 return true;
1814}
1815
1816bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleDisabled(StringRef RuleIdentifier) {
1817 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1818 if (!MaybeRange)
1819 return false;
1820 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1821 DisabledRules.set(I);
1822 return true;
1823}
1824
1825static std::vector<std::string> AMDGPUPostLegalizerCombinerOption;
1826static cl::list<std::string> AMDGPUPostLegalizerCombinerDisableOption(
1827 "amdgpupostlegalizercombiner-disable-rule",
1828 cl::desc("Disable one or more combiner rules temporarily in the AMDGPUPostLegalizerCombiner pass"),
1829 cl::CommaSeparated,
1830 cl::Hidden,
1831 cl::cat(GICombinerOptionCategory),
1832 cl::callback(CB: [](const std::string &Str) {
1833 AMDGPUPostLegalizerCombinerOption.push_back(x: Str);
1834 }));
1835static cl::list<std::string> AMDGPUPostLegalizerCombinerOnlyEnableOption(
1836 "amdgpupostlegalizercombiner-only-enable-rule",
1837 cl::desc("Disable all rules in the AMDGPUPostLegalizerCombiner pass then re-enable the specified ones"),
1838 cl::Hidden,
1839 cl::cat(GICombinerOptionCategory),
1840 cl::callback(CB: [](const std::string &CommaSeparatedArg) {
1841 StringRef Str = CommaSeparatedArg;
1842 AMDGPUPostLegalizerCombinerOption.push_back(x: "*");
1843 do {
1844 auto X = Str.split(Separator: ",");
1845 AMDGPUPostLegalizerCombinerOption.push_back(x: ("!" + X.first).str());
1846 Str = X.second;
1847 } while (!Str.empty());
1848 }));
1849
1850
1851bool AMDGPUPostLegalizerCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
1852 return !DisabledRules.test(Idx: RuleID);
1853}
1854bool AMDGPUPostLegalizerCombinerImplRuleConfig::parseCommandLineOption() {
1855 for (StringRef Identifier : AMDGPUPostLegalizerCombinerOption) {
1856 bool Enabled = Identifier.consume_front(Prefix: "!");
1857 if (Enabled && !setRuleEnabled(Identifier))
1858 return false;
1859 if (!Enabled && !setRuleDisabled(Identifier))
1860 return false;
1861 }
1862 return true;
1863}
1864
1865
1866#endif // GET_GICOMBINER_TYPES
1867
1868#ifdef GET_GICOMBINER_TYPES
1869
1870const unsigned MAX_SUBTARGET_PREDICATES = 3;
1871using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
1872
1873#endif // GET_GICOMBINER_TYPES
1874
1875#ifdef GET_GICOMBINER_CLASS_MEMBERS
1876
1877PredicateBitset AvailableModuleFeatures;
1878mutable PredicateBitset AvailableFunctionFeatures;
1879PredicateBitset getAvailableFeatures() const {
1880 return AvailableModuleFeatures | AvailableFunctionFeatures;
1881}
1882PredicateBitset
1883computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const;
1884PredicateBitset
1885computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget,
1886 const MachineFunction *MF) const;
1887void setupGeneratedPerFunctionState(MachineFunction &MF) override;
1888
1889#endif // GET_GICOMBINER_CLASS_MEMBERS
1890
1891#ifdef GET_GICOMBINER_CLASS_MEMBERS
1892
1893 mutable MatcherState State;
1894 typedef ComplexRendererFns(AMDGPUPostLegalizerCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
1895 typedef void(AMDGPUPostLegalizerCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
1896 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
1897 static AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
1898 static AMDGPUPostLegalizerCombinerImpl::CustomRendererFn CustomRenderers[];
1899 bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
1900 bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
1901 bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
1902 const uint8_t *getMatchTable() const override;
1903 bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
1904 bool testMOPredicate_MO(unsigned PredicateID, const MachineOperand &MO, const MatcherState &State) const override;
1905 bool testSimplePredicate(unsigned PredicateID) const override;
1906 bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
1907
1908#endif // GET_GICOMBINER_CLASS_MEMBERS
1909
1910#ifdef GET_GICOMBINER_IMPL
1911
1912// LLT Objects.
1913enum {
1914 GILLT_s16,
1915 GILLT_s32,
1916 GILLT_s64,
1917};
1918const static size_t NumTypeObjects = 3;
1919const static LLT TypeObjects[] = {
1920 LLT::scalar(16),
1921 LLT::scalar(32),
1922 LLT::scalar(64),
1923};
1924
1925// Bits for subtarget features that participate in instruction matching.
1926enum SubtargetFeatureBits : uint8_t {
1927 Feature_Has16BitInstsBit = 1,
1928 Feature_NotHasMed3_16Bit = 2,
1929 Feature_HasFminFmaxLegacyBit = 0,
1930};
1931
1932PredicateBitset AMDGPUPostLegalizerCombinerImpl::
1933computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const {
1934 PredicateBitset Features{};
1935 if (Subtarget->has16BitInsts())
1936 Features.set(Feature_Has16BitInstsBit);
1937 if (!Subtarget->hasMed3_16())
1938 Features.set(Feature_NotHasMed3_16Bit);
1939 if (Subtarget->hasFminFmaxLegacy())
1940 Features.set(Feature_HasFminFmaxLegacyBit);
1941 return Features;
1942}
1943
1944void AMDGPUPostLegalizerCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) {
1945 AvailableFunctionFeatures = computeAvailableFunctionFeatures((const AMDGPUSubtarget *)&MF.getSubtarget(), &MF);
1946}
1947PredicateBitset AMDGPUPostLegalizerCombinerImpl::
1948computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget, const MachineFunction *MF) const {
1949 PredicateBitset Features{};
1950 return Features;
1951}
1952
1953// Feature bitsets.
1954enum {
1955 GIFBS_Invalid,
1956 GIFBS_HasFminFmaxLegacy,
1957 GIFBS_Has16BitInsts_NotHasMed3_16,
1958};
1959constexpr static PredicateBitset FeatureBitsets[] {
1960 {}, // GIFBS_Invalid
1961 {Feature_HasFminFmaxLegacyBit, },
1962 {Feature_Has16BitInstsBit, Feature_NotHasMed3_16Bit, },
1963};
1964
1965// ComplexPattern predicates.
1966enum {
1967 GICP_Invalid,
1968};
1969// See constructor for table contents
1970
1971AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn
1972AMDGPUPostLegalizerCombinerImpl::ComplexPredicateFns[] = {
1973 nullptr, // GICP_Invalid
1974};
1975
1976enum {
1977 GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
1978 GICXXPred_MI_Predicate_GICombiner1,
1979 GICXXPred_MI_Predicate_GICombiner2,
1980 GICXXPred_MI_Predicate_GICombiner3,
1981 GICXXPred_MI_Predicate_GICombiner4,
1982 GICXXPred_MI_Predicate_GICombiner5,
1983 GICXXPred_MI_Predicate_GICombiner6,
1984 GICXXPred_MI_Predicate_GICombiner7,
1985 GICXXPred_MI_Predicate_GICombiner8,
1986 GICXXPred_MI_Predicate_GICombiner9,
1987 GICXXPred_MI_Predicate_GICombiner10,
1988 GICXXPred_MI_Predicate_GICombiner11,
1989 GICXXPred_MI_Predicate_GICombiner12,
1990 GICXXPred_MI_Predicate_GICombiner13,
1991 GICXXPred_MI_Predicate_GICombiner14,
1992 GICXXPred_MI_Predicate_GICombiner15,
1993 GICXXPred_MI_Predicate_GICombiner16,
1994 GICXXPred_MI_Predicate_GICombiner17,
1995 GICXXPred_MI_Predicate_GICombiner18,
1996 GICXXPred_MI_Predicate_GICombiner19,
1997 GICXXPred_MI_Predicate_GICombiner20,
1998 GICXXPred_MI_Predicate_GICombiner21,
1999 GICXXPred_MI_Predicate_GICombiner22,
2000 GICXXPred_MI_Predicate_GICombiner23,
2001 GICXXPred_MI_Predicate_GICombiner24,
2002};
2003bool AMDGPUPostLegalizerCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
2004 switch (PredicateID) {
2005 case GICXXPred_MI_Predicate_GICombiner0: {
2006 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg());
2007 }
2008 case GICXXPred_MI_Predicate_GICombiner1: {
2009 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg());
2010 }
2011 case GICXXPred_MI_Predicate_GICombiner2: {
2012 return isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI);
2013 }
2014 case GICXXPred_MI_Predicate_GICombiner3: {
2015 return isGuaranteedNotToBeUndefOrPoison(State.MIs[0]->getOperand(1).getReg(), MRI);
2016 }
2017 case GICXXPred_MI_Predicate_GICombiner4: {
2018 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
2019 }
2020 case GICXXPred_MI_Predicate_GICombiner5: {
2021 return MRI.getType(State.MIs[1]->getOperand(1).getReg()) != MRI.getType(State.MIs[0]->getOperand(0).getReg());
2022 }
2023 case GICXXPred_MI_Predicate_GICombiner6: {
2024 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
2025 }
2026 case GICXXPred_MI_Predicate_GICombiner7: {
2027 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 0.0);
2028 }
2029 case GICXXPred_MI_Predicate_GICombiner8: {
2030 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0);
2031 }
2032 case GICXXPred_MI_Predicate_GICombiner9: {
2033 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_EQ &&
2034 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
2035 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
2036 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
2037 }
2038 case GICXXPred_MI_Predicate_GICombiner10: {
2039 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_NE &&
2040 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
2041 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
2042 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
2043 }
2044 case GICXXPred_MI_Predicate_GICombiner11: {
2045 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
2046 Helper.isLegalOrBeforeLegalizer(
2047 {TargetOpcode::G_SEXT_INREG, {MRI.getType(State.MIs[1]->getOperand(1).getReg())}});
2048 }
2049 case GICXXPred_MI_Predicate_GICombiner12: {
2050 return MRI.getType(State.MIs[0]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg()) &&
2051 VT->computeNumSignBits(State.MIs[0]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg()).getScalarSizeInBits();
2052 }
2053 case GICXXPred_MI_Predicate_GICombiner13: {
2054 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_LSHR,
2055 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
2056 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
2057 }
2058 case GICXXPred_MI_Predicate_GICombiner14: {
2059 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_SHL,
2060 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
2061 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
2062 }
2063 case GICXXPred_MI_Predicate_GICombiner15: {
2064 return Helper.matchTruncUSatU(*State.MIs[0], *State.MIs[1]);
2065 }
2066 case GICXXPred_MI_Predicate_GICombiner16: {
2067 return Helper.matchTruncUSatUToFPTOUISat(*State.MIs[0], *State.MIs[1]);
2068 }
2069 case GICXXPred_MI_Predicate_GICombiner17: {
2070 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
2071 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
2072 }
2073 case GICXXPred_MI_Predicate_GICombiner18: {
2074 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
2075 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
2076 }
2077 case GICXXPred_MI_Predicate_GICombiner19: {
2078 return MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(2).getReg()) &&
2079 MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg());
2080 }
2081 case GICXXPred_MI_Predicate_GICombiner20: {
2082 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[2]->getOperand(1).getReg(), State.MIs[3]->getOperand(1).getReg(), TargetOpcode::G_UAVGFLOOR);
2083 }
2084 case GICXXPred_MI_Predicate_GICombiner21: {
2085 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[2]->getOperand(1).getReg(), State.MIs[3]->getOperand(1).getReg(), TargetOpcode::G_SAVGFLOOR);
2086 }
2087 case GICXXPred_MI_Predicate_GICombiner22: {
2088 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[3]->getOperand(1).getReg(), State.MIs[4]->getOperand(1).getReg(), TargetOpcode::G_UAVGCEIL);
2089 }
2090 case GICXXPred_MI_Predicate_GICombiner23: {
2091 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[3]->getOperand(1).getReg(), State.MIs[4]->getOperand(1).getReg(), TargetOpcode::G_SAVGCEIL);
2092 }
2093 case GICXXPred_MI_Predicate_GICombiner24: {
2094 return Helper.matchConstantIs32BitMask(State.MIs[0]->getOperand(1).getReg()) ||
2095 Helper.matchConstantIs32BitMask(State.MIs[0]->getOperand(2).getReg());
2096 }
2097 }
2098 llvm_unreachable("Unknown predicate");
2099 return false;
2100}
2101bool AMDGPUPostLegalizerCombinerImpl::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
2102 llvm_unreachable("Unknown predicate");
2103 return false;
2104}
2105bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
2106 llvm_unreachable("Unknown predicate");
2107 return false;
2108}
2109bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
2110 llvm_unreachable("Unknown predicate");
2111 return false;
2112}
2113bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
2114 llvm_unreachable("Unknown predicate");
2115 return false;
2116}
2117enum {
2118 GICXXPred_Simple_IsRule0Enabled = GICXXPred_Invalid + 1,
2119 GICXXPred_Simple_IsRule1Enabled,
2120 GICXXPred_Simple_IsRule2Enabled,
2121 GICXXPred_Simple_IsRule3Enabled,
2122 GICXXPred_Simple_IsRule4Enabled,
2123 GICXXPred_Simple_IsRule5Enabled,
2124 GICXXPred_Simple_IsRule6Enabled,
2125 GICXXPred_Simple_IsRule7Enabled,
2126 GICXXPred_Simple_IsRule8Enabled,
2127 GICXXPred_Simple_IsRule9Enabled,
2128 GICXXPred_Simple_IsRule10Enabled,
2129 GICXXPred_Simple_IsRule11Enabled,
2130 GICXXPred_Simple_IsRule12Enabled,
2131 GICXXPred_Simple_IsRule13Enabled,
2132 GICXXPred_Simple_IsRule14Enabled,
2133 GICXXPred_Simple_IsRule15Enabled,
2134 GICXXPred_Simple_IsRule16Enabled,
2135 GICXXPred_Simple_IsRule17Enabled,
2136 GICXXPred_Simple_IsRule18Enabled,
2137 GICXXPred_Simple_IsRule19Enabled,
2138 GICXXPred_Simple_IsRule20Enabled,
2139 GICXXPred_Simple_IsRule21Enabled,
2140 GICXXPred_Simple_IsRule22Enabled,
2141 GICXXPred_Simple_IsRule23Enabled,
2142 GICXXPred_Simple_IsRule24Enabled,
2143 GICXXPred_Simple_IsRule25Enabled,
2144 GICXXPred_Simple_IsRule26Enabled,
2145 GICXXPred_Simple_IsRule27Enabled,
2146 GICXXPred_Simple_IsRule28Enabled,
2147 GICXXPred_Simple_IsRule29Enabled,
2148 GICXXPred_Simple_IsRule30Enabled,
2149 GICXXPred_Simple_IsRule31Enabled,
2150 GICXXPred_Simple_IsRule32Enabled,
2151 GICXXPred_Simple_IsRule33Enabled,
2152 GICXXPred_Simple_IsRule34Enabled,
2153 GICXXPred_Simple_IsRule35Enabled,
2154 GICXXPred_Simple_IsRule36Enabled,
2155 GICXXPred_Simple_IsRule37Enabled,
2156 GICXXPred_Simple_IsRule38Enabled,
2157 GICXXPred_Simple_IsRule39Enabled,
2158 GICXXPred_Simple_IsRule40Enabled,
2159 GICXXPred_Simple_IsRule41Enabled,
2160 GICXXPred_Simple_IsRule42Enabled,
2161 GICXXPred_Simple_IsRule43Enabled,
2162 GICXXPred_Simple_IsRule44Enabled,
2163 GICXXPred_Simple_IsRule45Enabled,
2164 GICXXPred_Simple_IsRule46Enabled,
2165 GICXXPred_Simple_IsRule47Enabled,
2166 GICXXPred_Simple_IsRule48Enabled,
2167 GICXXPred_Simple_IsRule49Enabled,
2168 GICXXPred_Simple_IsRule50Enabled,
2169 GICXXPred_Simple_IsRule51Enabled,
2170 GICXXPred_Simple_IsRule52Enabled,
2171 GICXXPred_Simple_IsRule53Enabled,
2172 GICXXPred_Simple_IsRule54Enabled,
2173 GICXXPred_Simple_IsRule55Enabled,
2174 GICXXPred_Simple_IsRule56Enabled,
2175 GICXXPred_Simple_IsRule57Enabled,
2176 GICXXPred_Simple_IsRule58Enabled,
2177 GICXXPred_Simple_IsRule59Enabled,
2178 GICXXPred_Simple_IsRule60Enabled,
2179 GICXXPred_Simple_IsRule61Enabled,
2180 GICXXPred_Simple_IsRule62Enabled,
2181 GICXXPred_Simple_IsRule63Enabled,
2182 GICXXPred_Simple_IsRule64Enabled,
2183 GICXXPred_Simple_IsRule65Enabled,
2184 GICXXPred_Simple_IsRule66Enabled,
2185 GICXXPred_Simple_IsRule67Enabled,
2186 GICXXPred_Simple_IsRule68Enabled,
2187 GICXXPred_Simple_IsRule69Enabled,
2188 GICXXPred_Simple_IsRule70Enabled,
2189 GICXXPred_Simple_IsRule71Enabled,
2190 GICXXPred_Simple_IsRule72Enabled,
2191 GICXXPred_Simple_IsRule73Enabled,
2192 GICXXPred_Simple_IsRule74Enabled,
2193 GICXXPred_Simple_IsRule75Enabled,
2194 GICXXPred_Simple_IsRule76Enabled,
2195 GICXXPred_Simple_IsRule77Enabled,
2196 GICXXPred_Simple_IsRule78Enabled,
2197 GICXXPred_Simple_IsRule79Enabled,
2198 GICXXPred_Simple_IsRule80Enabled,
2199 GICXXPred_Simple_IsRule81Enabled,
2200 GICXXPred_Simple_IsRule82Enabled,
2201 GICXXPred_Simple_IsRule83Enabled,
2202 GICXXPred_Simple_IsRule84Enabled,
2203 GICXXPred_Simple_IsRule85Enabled,
2204 GICXXPred_Simple_IsRule86Enabled,
2205 GICXXPred_Simple_IsRule87Enabled,
2206 GICXXPred_Simple_IsRule88Enabled,
2207 GICXXPred_Simple_IsRule89Enabled,
2208 GICXXPred_Simple_IsRule90Enabled,
2209 GICXXPred_Simple_IsRule91Enabled,
2210 GICXXPred_Simple_IsRule92Enabled,
2211 GICXXPred_Simple_IsRule93Enabled,
2212 GICXXPred_Simple_IsRule94Enabled,
2213 GICXXPred_Simple_IsRule95Enabled,
2214 GICXXPred_Simple_IsRule96Enabled,
2215 GICXXPred_Simple_IsRule97Enabled,
2216 GICXXPred_Simple_IsRule98Enabled,
2217 GICXXPred_Simple_IsRule99Enabled,
2218 GICXXPred_Simple_IsRule100Enabled,
2219 GICXXPred_Simple_IsRule101Enabled,
2220 GICXXPred_Simple_IsRule102Enabled,
2221 GICXXPred_Simple_IsRule103Enabled,
2222 GICXXPred_Simple_IsRule104Enabled,
2223 GICXXPred_Simple_IsRule105Enabled,
2224 GICXXPred_Simple_IsRule106Enabled,
2225 GICXXPred_Simple_IsRule107Enabled,
2226 GICXXPred_Simple_IsRule108Enabled,
2227 GICXXPred_Simple_IsRule109Enabled,
2228 GICXXPred_Simple_IsRule110Enabled,
2229 GICXXPred_Simple_IsRule111Enabled,
2230 GICXXPred_Simple_IsRule112Enabled,
2231 GICXXPred_Simple_IsRule113Enabled,
2232 GICXXPred_Simple_IsRule114Enabled,
2233 GICXXPred_Simple_IsRule115Enabled,
2234 GICXXPred_Simple_IsRule116Enabled,
2235 GICXXPred_Simple_IsRule117Enabled,
2236 GICXXPred_Simple_IsRule118Enabled,
2237 GICXXPred_Simple_IsRule119Enabled,
2238 GICXXPred_Simple_IsRule120Enabled,
2239 GICXXPred_Simple_IsRule121Enabled,
2240 GICXXPred_Simple_IsRule122Enabled,
2241 GICXXPred_Simple_IsRule123Enabled,
2242 GICXXPred_Simple_IsRule124Enabled,
2243 GICXXPred_Simple_IsRule125Enabled,
2244 GICXXPred_Simple_IsRule126Enabled,
2245 GICXXPred_Simple_IsRule127Enabled,
2246 GICXXPred_Simple_IsRule128Enabled,
2247 GICXXPred_Simple_IsRule129Enabled,
2248 GICXXPred_Simple_IsRule130Enabled,
2249 GICXXPred_Simple_IsRule131Enabled,
2250 GICXXPred_Simple_IsRule132Enabled,
2251 GICXXPred_Simple_IsRule133Enabled,
2252 GICXXPred_Simple_IsRule134Enabled,
2253 GICXXPred_Simple_IsRule135Enabled,
2254 GICXXPred_Simple_IsRule136Enabled,
2255 GICXXPred_Simple_IsRule137Enabled,
2256 GICXXPred_Simple_IsRule138Enabled,
2257 GICXXPred_Simple_IsRule139Enabled,
2258 GICXXPred_Simple_IsRule140Enabled,
2259 GICXXPred_Simple_IsRule141Enabled,
2260 GICXXPred_Simple_IsRule142Enabled,
2261 GICXXPred_Simple_IsRule143Enabled,
2262 GICXXPred_Simple_IsRule144Enabled,
2263 GICXXPred_Simple_IsRule145Enabled,
2264 GICXXPred_Simple_IsRule146Enabled,
2265 GICXXPred_Simple_IsRule147Enabled,
2266 GICXXPred_Simple_IsRule148Enabled,
2267 GICXXPred_Simple_IsRule149Enabled,
2268 GICXXPred_Simple_IsRule150Enabled,
2269 GICXXPred_Simple_IsRule151Enabled,
2270 GICXXPred_Simple_IsRule152Enabled,
2271 GICXXPred_Simple_IsRule153Enabled,
2272 GICXXPred_Simple_IsRule154Enabled,
2273 GICXXPred_Simple_IsRule155Enabled,
2274 GICXXPred_Simple_IsRule156Enabled,
2275 GICXXPred_Simple_IsRule157Enabled,
2276 GICXXPred_Simple_IsRule158Enabled,
2277 GICXXPred_Simple_IsRule159Enabled,
2278 GICXXPred_Simple_IsRule160Enabled,
2279 GICXXPred_Simple_IsRule161Enabled,
2280 GICXXPred_Simple_IsRule162Enabled,
2281 GICXXPred_Simple_IsRule163Enabled,
2282 GICXXPred_Simple_IsRule164Enabled,
2283 GICXXPred_Simple_IsRule165Enabled,
2284 GICXXPred_Simple_IsRule166Enabled,
2285 GICXXPred_Simple_IsRule167Enabled,
2286 GICXXPred_Simple_IsRule168Enabled,
2287 GICXXPred_Simple_IsRule169Enabled,
2288 GICXXPred_Simple_IsRule170Enabled,
2289 GICXXPred_Simple_IsRule171Enabled,
2290 GICXXPred_Simple_IsRule172Enabled,
2291 GICXXPred_Simple_IsRule173Enabled,
2292 GICXXPred_Simple_IsRule174Enabled,
2293 GICXXPred_Simple_IsRule175Enabled,
2294 GICXXPred_Simple_IsRule176Enabled,
2295 GICXXPred_Simple_IsRule177Enabled,
2296 GICXXPred_Simple_IsRule178Enabled,
2297 GICXXPred_Simple_IsRule179Enabled,
2298 GICXXPred_Simple_IsRule180Enabled,
2299 GICXXPred_Simple_IsRule181Enabled,
2300 GICXXPred_Simple_IsRule182Enabled,
2301 GICXXPred_Simple_IsRule183Enabled,
2302 GICXXPred_Simple_IsRule184Enabled,
2303 GICXXPred_Simple_IsRule185Enabled,
2304 GICXXPred_Simple_IsRule186Enabled,
2305 GICXXPred_Simple_IsRule187Enabled,
2306 GICXXPred_Simple_IsRule188Enabled,
2307 GICXXPred_Simple_IsRule189Enabled,
2308 GICXXPred_Simple_IsRule190Enabled,
2309 GICXXPred_Simple_IsRule191Enabled,
2310 GICXXPred_Simple_IsRule192Enabled,
2311 GICXXPred_Simple_IsRule193Enabled,
2312 GICXXPred_Simple_IsRule194Enabled,
2313 GICXXPred_Simple_IsRule195Enabled,
2314 GICXXPred_Simple_IsRule196Enabled,
2315 GICXXPred_Simple_IsRule197Enabled,
2316 GICXXPred_Simple_IsRule198Enabled,
2317 GICXXPred_Simple_IsRule199Enabled,
2318 GICXXPred_Simple_IsRule200Enabled,
2319 GICXXPred_Simple_IsRule201Enabled,
2320 GICXXPred_Simple_IsRule202Enabled,
2321 GICXXPred_Simple_IsRule203Enabled,
2322 GICXXPred_Simple_IsRule204Enabled,
2323 GICXXPred_Simple_IsRule205Enabled,
2324 GICXXPred_Simple_IsRule206Enabled,
2325 GICXXPred_Simple_IsRule207Enabled,
2326 GICXXPred_Simple_IsRule208Enabled,
2327 GICXXPred_Simple_IsRule209Enabled,
2328 GICXXPred_Simple_IsRule210Enabled,
2329 GICXXPred_Simple_IsRule211Enabled,
2330 GICXXPred_Simple_IsRule212Enabled,
2331 GICXXPred_Simple_IsRule213Enabled,
2332 GICXXPred_Simple_IsRule214Enabled,
2333 GICXXPred_Simple_IsRule215Enabled,
2334 GICXXPred_Simple_IsRule216Enabled,
2335 GICXXPred_Simple_IsRule217Enabled,
2336 GICXXPred_Simple_IsRule218Enabled,
2337 GICXXPred_Simple_IsRule219Enabled,
2338 GICXXPred_Simple_IsRule220Enabled,
2339 GICXXPred_Simple_IsRule221Enabled,
2340 GICXXPred_Simple_IsRule222Enabled,
2341 GICXXPred_Simple_IsRule223Enabled,
2342 GICXXPred_Simple_IsRule224Enabled,
2343 GICXXPred_Simple_IsRule225Enabled,
2344 GICXXPred_Simple_IsRule226Enabled,
2345 GICXXPred_Simple_IsRule227Enabled,
2346 GICXXPred_Simple_IsRule228Enabled,
2347 GICXXPred_Simple_IsRule229Enabled,
2348 GICXXPred_Simple_IsRule230Enabled,
2349 GICXXPred_Simple_IsRule231Enabled,
2350 GICXXPred_Simple_IsRule232Enabled,
2351 GICXXPred_Simple_IsRule233Enabled,
2352 GICXXPred_Simple_IsRule234Enabled,
2353 GICXXPred_Simple_IsRule235Enabled,
2354 GICXXPred_Simple_IsRule236Enabled,
2355 GICXXPred_Simple_IsRule237Enabled,
2356 GICXXPred_Simple_IsRule238Enabled,
2357 GICXXPred_Simple_IsRule239Enabled,
2358 GICXXPred_Simple_IsRule240Enabled,
2359 GICXXPred_Simple_IsRule241Enabled,
2360 GICXXPred_Simple_IsRule242Enabled,
2361 GICXXPred_Simple_IsRule243Enabled,
2362 GICXXPred_Simple_IsRule244Enabled,
2363 GICXXPred_Simple_IsRule245Enabled,
2364 GICXXPred_Simple_IsRule246Enabled,
2365 GICXXPred_Simple_IsRule247Enabled,
2366 GICXXPred_Simple_IsRule248Enabled,
2367 GICXXPred_Simple_IsRule249Enabled,
2368 GICXXPred_Simple_IsRule250Enabled,
2369 GICXXPred_Simple_IsRule251Enabled,
2370 GICXXPred_Simple_IsRule252Enabled,
2371 GICXXPred_Simple_IsRule253Enabled,
2372 GICXXPred_Simple_IsRule254Enabled,
2373 GICXXPred_Simple_IsRule255Enabled,
2374 GICXXPred_Simple_IsRule256Enabled,
2375 GICXXPred_Simple_IsRule257Enabled,
2376 GICXXPred_Simple_IsRule258Enabled,
2377 GICXXPred_Simple_IsRule259Enabled,
2378 GICXXPred_Simple_IsRule260Enabled,
2379 GICXXPred_Simple_IsRule261Enabled,
2380 GICXXPred_Simple_IsRule262Enabled,
2381 GICXXPred_Simple_IsRule263Enabled,
2382 GICXXPred_Simple_IsRule264Enabled,
2383 GICXXPred_Simple_IsRule265Enabled,
2384 GICXXPred_Simple_IsRule266Enabled,
2385 GICXXPred_Simple_IsRule267Enabled,
2386 GICXXPred_Simple_IsRule268Enabled,
2387 GICXXPred_Simple_IsRule269Enabled,
2388 GICXXPred_Simple_IsRule270Enabled,
2389 GICXXPred_Simple_IsRule271Enabled,
2390 GICXXPred_Simple_IsRule272Enabled,
2391 GICXXPred_Simple_IsRule273Enabled,
2392 GICXXPred_Simple_IsRule274Enabled,
2393 GICXXPred_Simple_IsRule275Enabled,
2394 GICXXPred_Simple_IsRule276Enabled,
2395 GICXXPred_Simple_IsRule277Enabled,
2396};
2397
2398bool AMDGPUPostLegalizerCombinerImpl::testSimplePredicate(unsigned Predicate) const {
2399 return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1);
2400}
2401// Custom renderers.
2402enum {
2403 GICR_Invalid,
2404};
2405AMDGPUPostLegalizerCombinerImpl::CustomRendererFn
2406AMDGPUPostLegalizerCombinerImpl::CustomRenderers[] = {
2407 nullptr, // GICR_Invalid
2408};
2409
2410static bool AMDGPUPostLegalizerCombinerImpl_canMatchOpcode(unsigned Opc) {
2411 switch (Opc) {
2412 case TargetOpcode::G_FCMP:
2413 case TargetOpcode::G_FSHL:
2414 case TargetOpcode::G_FSHR:
2415 case TargetOpcode::G_ICMP:
2416 case TargetOpcode::G_INSERT_VECTOR_ELT:
2417 case TargetOpcode::G_SELECT:
2418 case TargetOpcode::G_SHUFFLE_VECTOR:
2419 case TargetOpcode::G_ADD:
2420 case TargetOpcode::G_AND:
2421 case TargetOpcode::G_ASHR:
2422 case TargetOpcode::G_EXTRACT_VECTOR_ELT:
2423 case TargetOpcode::G_FADD:
2424 case TargetOpcode::G_FCOPYSIGN:
2425 case TargetOpcode::G_FDIV:
2426 case TargetOpcode::G_FMAXIMUM:
2427 case TargetOpcode::G_FMAXIMUMNUM:
2428 case TargetOpcode::G_FMAXNUM:
2429 case TargetOpcode::G_FMINIMUM:
2430 case TargetOpcode::G_FMINIMUMNUM:
2431 case TargetOpcode::G_FMINNUM:
2432 case TargetOpcode::G_FMUL:
2433 case TargetOpcode::G_FPOWI:
2434 case TargetOpcode::G_FREM:
2435 case TargetOpcode::G_FSUB:
2436 case TargetOpcode::G_LSHR:
2437 case TargetOpcode::G_MERGE_VALUES:
2438 case TargetOpcode::G_MUL:
2439 case TargetOpcode::G_OR:
2440 case TargetOpcode::G_PTR_ADD:
2441 case TargetOpcode::G_ROTL:
2442 case TargetOpcode::G_ROTR:
2443 case TargetOpcode::G_SDIV:
2444 case TargetOpcode::G_SEXT_INREG:
2445 case TargetOpcode::G_SHL:
2446 case TargetOpcode::G_SREM:
2447 case TargetOpcode::G_SUB:
2448 case TargetOpcode::G_UDIV:
2449 case TargetOpcode::G_UREM:
2450 case TargetOpcode::G_XOR:
2451 case TargetOpcode::COPY:
2452 case TargetOpcode::G_ABS:
2453 case TargetOpcode::G_ANYEXT:
2454 case TargetOpcode::G_BITCAST:
2455 case TargetOpcode::G_BITREVERSE:
2456 case TargetOpcode::G_BSWAP:
2457 case TargetOpcode::G_BUILD_VECTOR:
2458 case TargetOpcode::G_CTLZ:
2459 case TargetOpcode::G_CTLZ_ZERO_POISON:
2460 case TargetOpcode::G_CTPOP:
2461 case TargetOpcode::G_CTTZ:
2462 case TargetOpcode::G_CTTZ_ZERO_POISON:
2463 case TargetOpcode::G_FABS:
2464 case TargetOpcode::G_FCANONICALIZE:
2465 case TargetOpcode::G_FCEIL:
2466 case TargetOpcode::G_FFLOOR:
2467 case TargetOpcode::G_FLOG2:
2468 case TargetOpcode::G_FNEARBYINT:
2469 case TargetOpcode::G_FNEG:
2470 case TargetOpcode::G_FPEXT:
2471 case TargetOpcode::G_FPTOSI:
2472 case TargetOpcode::G_FPTOUI:
2473 case TargetOpcode::G_FPTRUNC:
2474 case TargetOpcode::G_FREEZE:
2475 case TargetOpcode::G_FRINT:
2476 case TargetOpcode::G_FSQRT:
2477 case TargetOpcode::G_INTRINSIC_ROUND:
2478 case TargetOpcode::G_INTRINSIC_ROUNDEVEN:
2479 case TargetOpcode::G_INTRINSIC_TRUNC:
2480 case TargetOpcode::G_INTTOPTR:
2481 case TargetOpcode::G_PTRTOINT:
2482 case TargetOpcode::G_SEXT:
2483 case TargetOpcode::G_SITOFP:
2484 case TargetOpcode::G_TRUNC:
2485 case TargetOpcode::G_TRUNC_USAT_U:
2486 case TargetOpcode::G_UITOFP:
2487 case TargetOpcode::G_ZEXT:
2488 case AMDGPU::G_AMDGPU_CVT_F32_UBYTE0:
2489 case AMDGPU::G_AMDGPU_CVT_F32_UBYTE1:
2490 case AMDGPU::G_AMDGPU_CVT_F32_UBYTE2:
2491 case AMDGPU::G_AMDGPU_CVT_F32_UBYTE3:
2492 case TargetOpcode::G_BR:
2493 case TargetOpcode::G_BUILD_VECTOR_TRUNC:
2494 case TargetOpcode::G_CONCAT_VECTORS:
2495 case TargetOpcode::G_FMA:
2496 case TargetOpcode::G_FMAD:
2497 case TargetOpcode::G_FMAXNUM_IEEE:
2498 case TargetOpcode::G_FMINNUM_IEEE:
2499 case TargetOpcode::G_INTRINSIC:
2500 case TargetOpcode::G_LOAD:
2501 case TargetOpcode::G_PHI:
2502 case TargetOpcode::G_SADDE:
2503 case TargetOpcode::G_SADDO:
2504 case TargetOpcode::G_SADDSAT:
2505 case TargetOpcode::G_SEXTLOAD:
2506 case TargetOpcode::G_SMAX:
2507 case TargetOpcode::G_SMIN:
2508 case TargetOpcode::G_SMULFIX:
2509 case TargetOpcode::G_SMULFIXSAT:
2510 case TargetOpcode::G_SMULH:
2511 case TargetOpcode::G_SMULO:
2512 case TargetOpcode::G_SSHLSAT:
2513 case TargetOpcode::G_SSUBE:
2514 case TargetOpcode::G_SSUBO:
2515 case TargetOpcode::G_STORE:
2516 case TargetOpcode::G_UADDE:
2517 case TargetOpcode::G_UADDO:
2518 case TargetOpcode::G_UADDSAT:
2519 case TargetOpcode::G_UMAX:
2520 case TargetOpcode::G_UMIN:
2521 case TargetOpcode::G_UMULFIX:
2522 case TargetOpcode::G_UMULFIXSAT:
2523 case TargetOpcode::G_UMULH:
2524 case TargetOpcode::G_UMULO:
2525 case TargetOpcode::G_UNMERGE_VALUES:
2526 case TargetOpcode::G_USHLSAT:
2527 case TargetOpcode::G_USUBE:
2528 case TargetOpcode::G_USUBO:
2529 case TargetOpcode::G_ZEXTLOAD:
2530 return true;
2531 default:
2532 return false;
2533 }
2534}
2535
2536bool AMDGPUPostLegalizerCombinerImpl::tryCombineAllImpl(MachineInstr &I) const {
2537 if (!AMDGPUPostLegalizerCombinerImpl_canMatchOpcode(I.getOpcode()))
2538 return false;
2539 const PredicateBitset AvailableFeatures = getAvailableFeatures();
2540 State.MIs.clear();
2541 State.MIs.push_back(&I);
2542 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), Helper.getTII(), MRI, Helper.getTRI(), Helper.getRBI(), AvailableFeatures, /*CoverageInfo*/ nullptr)) {
2543 return true;
2544 }
2545
2546 return false;
2547}
2548
2549enum {
2550 GICXXCustomAction_GICombiner0 = GICXXCustomAction_Invalid + 1,
2551 GICXXCustomAction_GICombiner1,
2552 GICXXCustomAction_GICombiner2,
2553 GICXXCustomAction_GICombiner3,
2554 GICXXCustomAction_GICombiner4,
2555 GICXXCustomAction_GICombiner5,
2556 GICXXCustomAction_GICombiner6,
2557 GICXXCustomAction_GICombiner7,
2558 GICXXCustomAction_GICombiner8,
2559 GICXXCustomAction_GICombiner9,
2560 GICXXCustomAction_GICombiner10,
2561 GICXXCustomAction_GICombiner11,
2562 GICXXCustomAction_GICombiner12,
2563 GICXXCustomAction_GICombiner13,
2564 GICXXCustomAction_GICombiner14,
2565 GICXXCustomAction_GICombiner15,
2566 GICXXCustomAction_GICombiner16,
2567 GICXXCustomAction_GICombiner17,
2568 GICXXCustomAction_GICombiner18,
2569 GICXXCustomAction_GICombiner19,
2570 GICXXCustomAction_GICombiner20,
2571 GICXXCustomAction_GICombiner21,
2572 GICXXCustomAction_GICombiner22,
2573 GICXXCustomAction_GICombiner23,
2574 GICXXCustomAction_GICombiner24,
2575 GICXXCustomAction_GICombiner25,
2576 GICXXCustomAction_GICombiner26,
2577 GICXXCustomAction_GICombiner27,
2578 GICXXCustomAction_GICombiner28,
2579 GICXXCustomAction_GICombiner29,
2580 GICXXCustomAction_GICombiner30,
2581 GICXXCustomAction_GICombiner31,
2582 GICXXCustomAction_GICombiner32,
2583 GICXXCustomAction_GICombiner33,
2584 GICXXCustomAction_GICombiner34,
2585 GICXXCustomAction_GICombiner35,
2586 GICXXCustomAction_GICombiner36,
2587 GICXXCustomAction_GICombiner37,
2588 GICXXCustomAction_GICombiner38,
2589 GICXXCustomAction_GICombiner39,
2590 GICXXCustomAction_GICombiner40,
2591 GICXXCustomAction_GICombiner41,
2592 GICXXCustomAction_GICombiner42,
2593 GICXXCustomAction_GICombiner43,
2594 GICXXCustomAction_GICombiner44,
2595 GICXXCustomAction_GICombiner45,
2596 GICXXCustomAction_GICombiner46,
2597 GICXXCustomAction_GICombiner47,
2598 GICXXCustomAction_GICombiner48,
2599 GICXXCustomAction_GICombiner49,
2600 GICXXCustomAction_GICombiner50,
2601 GICXXCustomAction_GICombiner51,
2602 GICXXCustomAction_GICombiner52,
2603 GICXXCustomAction_GICombiner53,
2604 GICXXCustomAction_GICombiner54,
2605 GICXXCustomAction_GICombiner55,
2606 GICXXCustomAction_GICombiner56,
2607 GICXXCustomAction_GICombiner57,
2608 GICXXCustomAction_GICombiner58,
2609 GICXXCustomAction_GICombiner59,
2610 GICXXCustomAction_GICombiner60,
2611 GICXXCustomAction_GICombiner61,
2612 GICXXCustomAction_GICombiner62,
2613 GICXXCustomAction_GICombiner63,
2614 GICXXCustomAction_GICombiner64,
2615 GICXXCustomAction_GICombiner65,
2616 GICXXCustomAction_GICombiner66,
2617 GICXXCustomAction_GICombiner67,
2618 GICXXCustomAction_GICombiner68,
2619 GICXXCustomAction_GICombiner69,
2620 GICXXCustomAction_GICombiner70,
2621 GICXXCustomAction_GICombiner71,
2622 GICXXCustomAction_GICombiner72,
2623 GICXXCustomAction_GICombiner73,
2624 GICXXCustomAction_GICombiner74,
2625 GICXXCustomAction_GICombiner75,
2626 GICXXCustomAction_GICombiner76,
2627 GICXXCustomAction_GICombiner77,
2628 GICXXCustomAction_GICombiner78,
2629 GICXXCustomAction_GICombiner79,
2630 GICXXCustomAction_GICombiner80,
2631 GICXXCustomAction_GICombiner81,
2632 GICXXCustomAction_GICombiner82,
2633 GICXXCustomAction_GICombiner83,
2634 GICXXCustomAction_GICombiner84,
2635 GICXXCustomAction_GICombiner85,
2636 GICXXCustomAction_GICombiner86,
2637 GICXXCustomAction_GICombiner87,
2638 GICXXCustomAction_GICombiner88,
2639 GICXXCustomAction_GICombiner89,
2640 GICXXCustomAction_GICombiner90,
2641 GICXXCustomAction_GICombiner91,
2642 GICXXCustomAction_GICombiner92,
2643 GICXXCustomAction_GICombiner93,
2644 GICXXCustomAction_GICombiner94,
2645 GICXXCustomAction_GICombiner95,
2646 GICXXCustomAction_GICombiner96,
2647 GICXXCustomAction_GICombiner97,
2648 GICXXCustomAction_GICombiner98,
2649 GICXXCustomAction_GICombiner99,
2650 GICXXCustomAction_GICombiner100,
2651 GICXXCustomAction_GICombiner101,
2652 GICXXCustomAction_GICombiner102,
2653 GICXXCustomAction_GICombiner103,
2654 GICXXCustomAction_GICombiner104,
2655 GICXXCustomAction_GICombiner105,
2656 GICXXCustomAction_GICombiner106,
2657 GICXXCustomAction_GICombiner107,
2658 GICXXCustomAction_GICombiner108,
2659 GICXXCustomAction_GICombiner109,
2660 GICXXCustomAction_GICombiner110,
2661 GICXXCustomAction_GICombiner111,
2662 GICXXCustomAction_GICombiner112,
2663 GICXXCustomAction_GICombiner113,
2664 GICXXCustomAction_GICombiner114,
2665 GICXXCustomAction_GICombiner115,
2666 GICXXCustomAction_GICombiner116,
2667 GICXXCustomAction_GICombiner117,
2668 GICXXCustomAction_GICombiner118,
2669 GICXXCustomAction_GICombiner119,
2670 GICXXCustomAction_GICombiner120,
2671 GICXXCustomAction_GICombiner121,
2672 GICXXCustomAction_GICombiner122,
2673 GICXXCustomAction_GICombiner123,
2674 GICXXCustomAction_GICombiner124,
2675 GICXXCustomAction_GICombiner125,
2676 GICXXCustomAction_GICombiner126,
2677 GICXXCustomAction_GICombiner127,
2678 GICXXCustomAction_GICombiner128,
2679 GICXXCustomAction_GICombiner129,
2680 GICXXCustomAction_GICombiner130,
2681 GICXXCustomAction_GICombiner131,
2682 GICXXCustomAction_GICombiner132,
2683 GICXXCustomAction_GICombiner133,
2684 GICXXCustomAction_GICombiner134,
2685 GICXXCustomAction_GICombiner135,
2686 GICXXCustomAction_GICombiner136,
2687 GICXXCustomAction_GICombiner137,
2688 GICXXCustomAction_GICombiner138,
2689 GICXXCustomAction_GICombiner139,
2690 GICXXCustomAction_GICombiner140,
2691 GICXXCustomAction_GICombiner141,
2692 GICXXCustomAction_GICombiner142,
2693 GICXXCustomAction_GICombiner143,
2694 GICXXCustomAction_GICombiner144,
2695 GICXXCustomAction_GICombiner145,
2696 GICXXCustomAction_GICombiner146,
2697 GICXXCustomAction_GICombiner147,
2698 GICXXCustomAction_GICombiner148,
2699 GICXXCustomAction_GICombiner149,
2700 GICXXCustomAction_GICombiner150,
2701 GICXXCustomAction_GICombiner151,
2702 GICXXCustomAction_GICombiner152,
2703 GICXXCustomAction_GICombiner153,
2704 GICXXCustomAction_GICombiner154,
2705 GICXXCustomAction_GICombiner155,
2706 GICXXCustomAction_GICombiner156,
2707 GICXXCustomAction_GICombiner157,
2708 GICXXCustomAction_GICombiner158,
2709 GICXXCustomAction_GICombiner159,
2710 GICXXCustomAction_GICombiner160,
2711 GICXXCustomAction_GICombiner161,
2712 GICXXCustomAction_GICombiner162,
2713 GICXXCustomAction_GICombiner163,
2714 GICXXCustomAction_GICombiner164,
2715 GICXXCustomAction_GICombiner165,
2716 GICXXCustomAction_GICombiner166,
2717 GICXXCustomAction_GICombiner167,
2718 GICXXCustomAction_GICombiner168,
2719 GICXXCustomAction_GICombiner169,
2720};
2721bool AMDGPUPostLegalizerCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const {
2722 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
2723 switch(ApplyID) {
2724 case GICXXCustomAction_GICombiner0:{
2725 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2726 // Match Patterns
2727 if(![&](){return Helper.matchFoldAPlusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2728 return false;
2729 }
2730 // Apply Patterns
2731 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2732 return true;
2733 }
2734 case GICXXCustomAction_GICombiner1:{
2735 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2736 // Match Patterns
2737 if(![&](){return Helper.matchFoldC2MinusAPlusC1(*State.MIs[0], GIMatchData_matchinfo);}()) {
2738 return false;
2739 }
2740 // Apply Patterns
2741 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2742 return true;
2743 }
2744 case GICXXCustomAction_GICombiner2:{
2745 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2746 // Match Patterns
2747 if(![&](){return Helper.matchFoldAMinusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2748 return false;
2749 }
2750 // Apply Patterns
2751 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2752 return true;
2753 }
2754 case GICXXCustomAction_GICombiner3:{
2755 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2756 // Match Patterns
2757 if(![&](){return Helper.matchFoldC1Minus2MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2758 return false;
2759 }
2760 // Apply Patterns
2761 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2762 return true;
2763 }
2764 case GICXXCustomAction_GICombiner4:{
2765 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2766 // Match Patterns
2767 if(![&](){return Helper.matchFoldAMinusC1PlusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2768 return false;
2769 }
2770 // Apply Patterns
2771 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2772 return true;
2773 }
2774 case GICXXCustomAction_GICombiner5:{
2775 // Match Patterns
2776 if(![&](){return Helper.matchCombineCopy(*State.MIs[0]);}()) {
2777 return false;
2778 }
2779 // Apply Patterns
2780 Helper.applyCombineCopy(*State.MIs[0]);
2781 return true;
2782 }
2783 case GICXXCustomAction_GICombiner6:{
2784 unsigned GIMatchData_matchinfo;
2785 // Match Patterns
2786 if(![&](){return Helper.matchCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);}()) {
2787 return false;
2788 }
2789 // Apply Patterns
2790 Helper.applyCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);
2791 return true;
2792 }
2793 case GICXXCustomAction_GICombiner7:{
2794 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2795 // Match Patterns
2796 if(![&](){return Helper.matchCombineSubToAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2797 return false;
2798 }
2799 // Apply Patterns
2800 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2801 return true;
2802 }
2803 case GICXXCustomAction_GICombiner8:{
2804 std::pair<Register, bool> GIMatchData_info;
2805 // Match Patterns
2806 if(![&](){return Helper.matchCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info);}()) {
2807 return false;
2808 }
2809 // Apply Patterns
2810 Helper.applyCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info);
2811 return true;
2812 }
2813 case GICXXCustomAction_GICombiner9:{
2814 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2815 // Match Patterns
2816 if(![&](){return Helper.matchExtractVectorElement(*State.MIs[0], GIMatchData_matchinfo);}()) {
2817 return false;
2818 }
2819 // Apply Patterns
2820 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2821 return true;
2822 }
2823 case GICXXCustomAction_GICombiner10:{
2824 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2825 // Match Patterns
2826 if(![&](){return Helper.matchInsertVectorElementOOB(*State.MIs[0], GIMatchData_matchinfo);}()) {
2827 return false;
2828 }
2829 // Apply Patterns
2830 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2831 return true;
2832 }
2833 case GICXXCustomAction_GICombiner11:{
2834 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2835 // Match Patterns
2836 if(![&](){return Helper.matchExtractVectorElementWithDifferentIndices(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2837 return false;
2838 }
2839 // Apply Patterns
2840 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2841 return true;
2842 }
2843 case GICXXCustomAction_GICombiner12:{
2844 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2845 // Match Patterns
2846 if(![&](){return Helper.matchExtractVectorElementWithBuildVector(*State.MIs[0], *State.MIs[1],
2847 GIMatchData_matchinfo);}()) {
2848 return false;
2849 }
2850 // Apply Patterns
2851 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2852 return true;
2853 }
2854 case GICXXCustomAction_GICombiner13:{
2855 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2856 // Match Patterns
2857 if(![&](){return Helper.matchExtractVectorElementWithBuildVectorTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2858 return false;
2859 }
2860 // Apply Patterns
2861 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2862 return true;
2863 }
2864 case GICXXCustomAction_GICombiner14:{
2865 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2866 // Match Patterns
2867 if(![&](){return Helper.matchExtractVectorElementWithShuffleVector(*State.MIs[0], *State.MIs[1],
2868 GIMatchData_matchinfo);}()) {
2869 return false;
2870 }
2871 // Apply Patterns
2872 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2873 return true;
2874 }
2875 case GICXXCustomAction_GICombiner15:{
2876 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2877 // Match Patterns
2878 if(![&](){return Helper.matchAddOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2879 return false;
2880 }
2881 // Apply Patterns
2882 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2883 return true;
2884 }
2885 case GICXXCustomAction_GICombiner16:{
2886 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2887 // Match Patterns
2888 if(![&](){return Helper.matchMulOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2889 return false;
2890 }
2891 // Apply Patterns
2892 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2893 return true;
2894 }
2895 case GICXXCustomAction_GICombiner17:{
2896 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2897 // Match Patterns
2898 if(![&](){return Helper.matchShlOfVScale(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_GICombiner18:{
2906 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2907 // Match Patterns
2908 if(![&](){return Helper.matchSubOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2909 return false;
2910 }
2911 // Apply Patterns
2912 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2913 return true;
2914 }
2915 case GICXXCustomAction_GICombiner19:{
2916 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2917 // Match Patterns
2918 if(![&](){return !isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI) && Helper.matchFreezeOfSingleMaybePoisonOperand(*State.MIs[0], GIMatchData_matchinfo);}()) {
2919 return false;
2920 }
2921 // Apply Patterns
2922 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2923 return true;
2924 }
2925 case GICXXCustomAction_GICombiner20:{
2926 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2927 // Match Patterns
2928 if(![&](){return Helper.matchTruncateOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2929 return false;
2930 }
2931 // Apply Patterns
2932 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2933 return true;
2934 }
2935 case GICXXCustomAction_GICombiner21:{
2936 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2937 // Match Patterns
2938 if(![&](){return Helper.matchExtOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2939 return false;
2940 }
2941 // Apply Patterns
2942 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2943 return true;
2944 }
2945 case GICXXCustomAction_GICombiner22:{
2946 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2947 // Match Patterns
2948 if(![&](){return Helper.matchRedundantSextInReg(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2949 return false;
2950 }
2951 // Apply Patterns
2952 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2953 return true;
2954 }
2955 case GICXXCustomAction_GICombiner23:{
2956 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2957 // Match Patterns
2958 if(![&](){return Helper.matchCastOfSelect(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2959 return false;
2960 }
2961 // Apply Patterns
2962 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2963 return true;
2964 }
2965 case GICXXCustomAction_GICombiner24:{
2966 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2967 // Match Patterns
2968 if(![&](){return Helper.matchCastOfBuildVector(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2969 return false;
2970 }
2971 // Apply Patterns
2972 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2973 return true;
2974 }
2975 case GICXXCustomAction_GICombiner25:{
2976 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2977 // Match Patterns
2978 if(![&](){return Helper.matchNarrowBinop(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2979 return false;
2980 }
2981 // Apply Patterns
2982 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2983 return true;
2984 }
2985 case GICXXCustomAction_GICombiner26:{
2986 APInt GIMatchData_matchinfo;
2987 // Match Patterns
2988 if(![&](){return Helper.matchCastOfInteger(*State.MIs[0], GIMatchData_matchinfo);}()) {
2989 return false;
2990 }
2991 // Apply Patterns
2992 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
2993 return true;
2994 }
2995 case GICXXCustomAction_GICombiner27:{
2996 SmallVector<Register> GIMatchData_info;
2997 // Match Patterns
2998 if(![&](){return Helper.matchCombineInsertVecElts(*State.MIs[0], GIMatchData_info);}()) {
2999 return false;
3000 }
3001 // Apply Patterns
3002 Helper.applyCombineInsertVecElts(*State.MIs[0], GIMatchData_info);
3003 return true;
3004 }
3005 case GICXXCustomAction_GICombiner28:{
3006 Register GIMatchData_matchinfo;
3007 // Match Patterns
3008 if(![&](){return Helper.matchExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);}()) {
3009 return false;
3010 }
3011 // Apply Patterns
3012 Helper.applyExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);
3013 return true;
3014 }
3015 case GICXXCustomAction_GICombiner29:{
3016 SmallVector<std::pair<Register, MachineInstr*>> GIMatchData_matchinfo;
3017 // Match Patterns
3018 if(![&](){return Helper.matchExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
3019 return false;
3020 }
3021 // Apply Patterns
3022 Helper.applyExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);
3023 return true;
3024 }
3025 case GICXXCustomAction_GICombiner30:{
3026 PreferredTuple GIMatchData_matchinfo;
3027 // Match Patterns
3028 if(![&](){return Helper.matchCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);}()) {
3029 return false;
3030 }
3031 // Apply Patterns
3032 Helper.applyCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);
3033 return true;
3034 }
3035 case GICXXCustomAction_GICombiner31:{
3036 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3037 // Match Patterns
3038 if(![&](){return Helper.matchCombineLoadWithAndMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
3039 return false;
3040 }
3041 // Apply Patterns
3042 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3043 return true;
3044 }
3045 case GICXXCustomAction_GICombiner32:{
3046 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3047 // Match Patterns
3048 if(![&](){return Helper.matchCombineExtractedVectorLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
3049 return false;
3050 }
3051 // Apply Patterns
3052 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3053 return true;
3054 }
3055 case GICXXCustomAction_GICombiner33:{
3056 // Match Patterns
3057 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
3058 return false;
3059 }
3060 // Apply Patterns
3061 Helper.replaceInstWithFConstant(*State.MIs[0], 0.0);
3062 return true;
3063 }
3064 case GICXXCustomAction_GICombiner34:{
3065 // Match Patterns
3066 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
3067 return false;
3068 }
3069 // Apply Patterns
3070 Helper.replaceInstWithConstant(*State.MIs[0], 0);
3071 return true;
3072 }
3073 case GICXXCustomAction_GICombiner35:{
3074 // Match Patterns
3075 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
3076 return false;
3077 }
3078 // Apply Patterns
3079 Helper.replaceInstWithConstant(*State.MIs[0], -1);
3080 return true;
3081 }
3082 case GICXXCustomAction_GICombiner36:{
3083 // Match Patterns
3084 if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 1);}()) {
3085 return false;
3086 }
3087 // Apply Patterns
3088 Helper.replaceInstWithConstant(*State.MIs[0], 0);
3089 return true;
3090 }
3091 case GICXXCustomAction_GICombiner37:{
3092 // Match Patterns
3093 if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 2);}()) {
3094 return false;
3095 }
3096 // Apply Patterns
3097 Helper.replaceInstWithUndef(*State.MIs[0]);
3098 return true;
3099 }
3100 case GICXXCustomAction_GICombiner38:{
3101 // Apply Patterns
3102 Helper.replaceInstWithUndef(*State.MIs[0]->getOperand(0).getParent());
3103 return true;
3104 }
3105 case GICXXCustomAction_GICombiner39:{
3106 // Match Patterns
3107 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
3108 return false;
3109 }
3110 // Apply Patterns
3111 Helper.replaceInstWithUndef(*State.MIs[0]);
3112 return true;
3113 }
3114 case GICXXCustomAction_GICombiner40:{
3115 // Match Patterns
3116 if(![&](){return Helper.matchAllExplicitUsesAreUndef(*State.MIs[0]);}()) {
3117 return false;
3118 }
3119 // Apply Patterns
3120 Helper.replaceInstWithUndef(*State.MIs[0]);
3121 return true;
3122 }
3123 case GICXXCustomAction_GICombiner41:{
3124 // Match Patterns
3125 if(![&](){return Helper.matchUndefShuffleVectorMask(*State.MIs[0]);}()) {
3126 return false;
3127 }
3128 // Apply Patterns
3129 Helper.replaceInstWithUndef(*State.MIs[0]);
3130 return true;
3131 }
3132 case GICXXCustomAction_GICombiner42:{
3133 // Match Patterns
3134 if(![&](){return Helper.matchUndefStore(*State.MIs[0]);}()) {
3135 return false;
3136 }
3137 // Apply Patterns
3138 Helper.eraseInst(*State.MIs[0]);
3139 return true;
3140 }
3141 case GICXXCustomAction_GICombiner43:{
3142 // Match Patterns
3143 if(![&](){return Helper.matchInsertExtractVecEltOutOfBounds(*State.MIs[0]);}()) {
3144 return false;
3145 }
3146 // Apply Patterns
3147 Helper.replaceInstWithUndef(*State.MIs[0]);
3148 return true;
3149 }
3150 case GICXXCustomAction_GICombiner44:{
3151 // Match Patterns
3152 if(![&](){return Helper.matchSelectSameVal(*State.MIs[0]);}()) {
3153 return false;
3154 }
3155 // Apply Patterns
3156 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 2);
3157 return true;
3158 }
3159 case GICXXCustomAction_GICombiner45:{
3160 Register GIMatchData_info;
3161 // Match Patterns
3162 if(![&](){return Helper.matchCombineI2PToP2I(*State.MIs[0], GIMatchData_info);}()) {
3163 return false;
3164 }
3165 // Apply Patterns
3166 Helper.applyCombineI2PToP2I(*State.MIs[0], GIMatchData_info);
3167 return true;
3168 }
3169 case GICXXCustomAction_GICombiner46:{
3170 Register GIMatchData_info;
3171 // Match Patterns
3172 if(![&](){GIMatchData_info = State.MIs[1]->getOperand(1).getReg(); return true;}()) {
3173 return false;
3174 }
3175 // Apply Patterns
3176 Helper.applyCombineP2IToI2P(*State.MIs[0], GIMatchData_info);
3177 return true;
3178 }
3179 case GICXXCustomAction_GICombiner47:{
3180 Register GIMatchData_matchinfo;
3181 // Match Patterns
3182 if(![&](){return Helper.matchCombineAnyExtTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
3183 return false;
3184 }
3185 // Apply Patterns
3186 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3187 return true;
3188 }
3189 case GICXXCustomAction_GICombiner48:{
3190 Register GIMatchData_matchinfo;
3191 // Match Patterns
3192 if(![&](){return Helper.matchBuildVectorIdentityFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3193 return false;
3194 }
3195 // Apply Patterns
3196 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3197 return true;
3198 }
3199 case GICXXCustomAction_GICombiner49:{
3200 Register GIMatchData_matchinfo;
3201 // Match Patterns
3202 if(![&](){return Helper.matchTruncBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3203 return false;
3204 }
3205 // Apply Patterns
3206 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3207 return true;
3208 }
3209 case GICXXCustomAction_GICombiner50:{
3210 Register GIMatchData_matchinfo;
3211 // Match Patterns
3212 if(![&](){return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3213 return false;
3214 }
3215 // Apply Patterns
3216 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3217 return true;
3218 }
3219 case GICXXCustomAction_GICombiner51:{
3220 // Match Patterns
3221 if(![&](){return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());}()) {
3222 return false;
3223 }
3224 // Apply Patterns
3225 Helper.replaceSingleDefInstWithReg(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
3226 return true;
3227 }
3228 case GICXXCustomAction_GICombiner52:{
3229 MachineInstr* GIMatchData_matchinfo;
3230 // Match Patterns
3231 if(![&](){return Helper.matchExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);}()) {
3232 return false;
3233 }
3234 // Apply Patterns
3235 Helper.applyExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);
3236 return true;
3237 }
3238 case GICXXCustomAction_GICombiner53:{
3239 std::tuple<Register, Register> GIMatchData_info;
3240 // Match Patterns
3241 if(![&](){return Helper.matchSimplifyAddToSub(*State.MIs[0], GIMatchData_info);}()) {
3242 return false;
3243 }
3244 // Apply Patterns
3245 Helper.applySimplifyAddToSub(*State.MIs[0], GIMatchData_info);
3246 return true;
3247 }
3248 case GICXXCustomAction_GICombiner54:{
3249 InstructionStepsMatchInfo GIMatchData_info;
3250 // Match Patterns
3251 if(![&](){return Helper.matchHoistLogicOpWithSameOpcodeHands(*State.MIs[0], GIMatchData_info);}()) {
3252 return false;
3253 }
3254 // Apply Patterns
3255 Helper.applyBuildInstructionSteps(*State.MIs[0], GIMatchData_info);
3256 return true;
3257 }
3258 case GICXXCustomAction_GICombiner55:{
3259 std::optional<int64_t> GIMatchData_matchinfo;
3260 // Match Patterns
3261 if(![&](){return Helper.matchShiftsTooBig(*State.MIs[0], GIMatchData_matchinfo);}()) {
3262 return false;
3263 }
3264 // Apply Patterns
3265 if (GIMatchData_matchinfo) {
3266 Helper.replaceInstWithConstant(*State.MIs[0], *GIMatchData_matchinfo);
3267 } else {
3268 Helper.replaceInstWithUndef(*State.MIs[0]);
3269 }
3270 return true;
3271 }
3272 case GICXXCustomAction_GICombiner56:{
3273 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3274 // Match Patterns
3275 if(![&](){return Helper.matchReassocPtrAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3276 return false;
3277 }
3278 // Apply Patterns
3279 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3280 return true;
3281 }
3282 case GICXXCustomAction_GICombiner57:{
3283 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3284 // Match Patterns
3285 if(![&](){return Helper.matchReassocCommBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3286 return false;
3287 }
3288 // Apply Patterns
3289 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3290 return true;
3291 }
3292 case GICXXCustomAction_GICombiner58:{
3293 PtrAddChain GIMatchData_matchinfo;
3294 // Match Patterns
3295 if(![&](){return Helper.matchPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
3296 return false;
3297 }
3298 // Apply Patterns
3299 Helper.applyPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);
3300 return true;
3301 }
3302 case GICXXCustomAction_GICombiner59:{
3303 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3304 // Match Patterns
3305 if(![&](){return Helper.matchCanonicalizeICmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3306 return false;
3307 }
3308 // Apply Patterns
3309 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3310 return true;
3311 }
3312 case GICXXCustomAction_GICombiner60:{
3313 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3314 // Match Patterns
3315 if(![&](){return Helper.matchCanonicalizeFCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3316 return false;
3317 }
3318 // Apply Patterns
3319 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3320 return true;
3321 }
3322 case GICXXCustomAction_GICombiner61:{
3323 int64_t GIMatchData_matchinfo;
3324 // Match Patterns
3325 if(![&](){return Helper.matchICmpToTrueFalseKnownBits(*State.MIs[0], GIMatchData_matchinfo);}()) {
3326 return false;
3327 }
3328 // Apply Patterns
3329 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3330 return true;
3331 }
3332 case GICXXCustomAction_GICombiner62:{
3333 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3334 // Match Patterns
3335 if(![&](){return Helper.matchICmpToLHSKnownBits(*State.MIs[0], GIMatchData_info);}()) {
3336 return false;
3337 }
3338 // Apply Patterns
3339 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3340 return true;
3341 }
3342 case GICXXCustomAction_GICombiner63:{
3343 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3344 // Match Patterns
3345 if(![&](){return Helper.matchRedundantBinOpInEquality(*State.MIs[0], GIMatchData_info);}()) {
3346 return false;
3347 }
3348 // Apply Patterns
3349 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3350 return true;
3351 }
3352 case GICXXCustomAction_GICombiner64:{
3353 std::tuple<Register, int64_t> GIMatchData_info;
3354 // Match Patterns
3355 if(![&](){return Helper.matchAshrShlToSextInreg(*State.MIs[0], GIMatchData_info);}()) {
3356 return false;
3357 }
3358 // Apply Patterns
3359 Helper.applyAshShlToSextInreg(*State.MIs[0], GIMatchData_info);
3360 return true;
3361 }
3362 case GICXXCustomAction_GICombiner65:{
3363 std::tuple<Register, unsigned> GIMatchData_matchinfo;
3364 // Match Patterns
3365 if(![&](){return Helper.matchSextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
3366 return false;
3367 }
3368 // Apply Patterns
3369 Helper.applySextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);
3370 return true;
3371 }
3372 case GICXXCustomAction_GICombiner66:{
3373 RegisterImmPair GIMatchData_matchinfo;
3374 // Match Patterns
3375 if(![&](){return Helper.matchCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);}()) {
3376 return false;
3377 }
3378 // Apply Patterns
3379 Helper.applyCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);
3380 return true;
3381 }
3382 case GICXXCustomAction_GICombiner67:{
3383 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3384 // Match Patterns
3385 if(![&](){return Helper.matchNarrowBinopFeedingAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3386 return false;
3387 }
3388 // Apply Patterns
3389 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3390 return true;
3391 }
3392 case GICXXCustomAction_GICombiner68:{
3393 unsigned GIMatchData_matchinfo;
3394 // Match Patterns
3395 if(![&](){return Helper.matchConstantSelectCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3396 return false;
3397 }
3398 // Apply Patterns
3399 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_matchinfo);
3400 return true;
3401 }
3402 case GICXXCustomAction_GICombiner69:{
3403 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3404 // Match Patterns
3405 if(![&](){return Helper.matchSelectIMinMax(State.MIs[0]->getOperand(0), GIMatchData_info);}()) {
3406 return false;
3407 }
3408 // Apply Patterns
3409 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_info);
3410 return true;
3411 }
3412 case GICXXCustomAction_GICombiner70:{
3413 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3414 // Match Patterns
3415 if(![&](){return Helper.matchSelect(*State.MIs[0], GIMatchData_matchinfo);}()) {
3416 return false;
3417 }
3418 // Apply Patterns
3419 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3420 return true;
3421 }
3422 case GICXXCustomAction_GICombiner71:{
3423 Register GIMatchData_matchinfo;
3424 // Match Patterns
3425 if(![&](){return Helper.matchRedundantAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3426 return false;
3427 }
3428 // Apply Patterns
3429 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3430 return true;
3431 }
3432 case GICXXCustomAction_GICombiner72:{
3433 // Match Patterns
3434 if(![&](){return Helper.matchRedundantSExtInReg(*State.MIs[0]);}()) {
3435 return false;
3436 }
3437 // Apply Patterns
3438 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 1);
3439 return true;
3440 }
3441 case GICXXCustomAction_GICombiner73:{
3442 Register GIMatchData_matchinfo;
3443 // Match Patterns
3444 if(![&](){return Helper.matchRedundantOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
3445 return false;
3446 }
3447 // Apply Patterns
3448 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3449 return true;
3450 }
3451 case GICXXCustomAction_GICombiner74:{
3452 // Match Patterns
3453 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(State.MIs[0]->getOperand(2));}()) {
3454 return false;
3455 }
3456 // Apply Patterns
3457 Helper.applySimplifyURemByPow2(*State.MIs[0]);
3458 return true;
3459 }
3460 case GICXXCustomAction_GICombiner75:{
3461 Register GIMatchData_matchinfo;
3462 // Match Patterns
3463 if(![&](){return Helper.matchCombineZextTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
3464 return false;
3465 }
3466 // Apply Patterns
3467 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3468 return true;
3469 }
3470 case GICXXCustomAction_GICombiner76:{
3471 // Match Patterns
3472 if(![&](){unsigned BitWidth = MRI.getType(State.MIs[0]->getOperand(1).getReg()).getScalarSizeInBits();
3473 return Helper.getValueTracking()->maskedValueIsZero(State.MIs[0]->getOperand(1).getReg(),
3474 APInt::getOneBitSet(BitWidth, State.MIs[0]->getOperand(2).getImm() - 1));}()) {
3475 return false;
3476 }
3477 // Apply Patterns
3478 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
3479 Helper.getBuilder().buildZExtInReg(State.MIs[0]->getOperand(0), State.MIs[0]->getOperand(1), State.MIs[0]->getOperand(2).getImm());
3480 State.MIs[0]->eraseFromParent();
3481 return true;
3482 }
3483 case GICXXCustomAction_GICombiner77:{
3484 std::pair<MachineInstr*, LLT> GIMatchData_matchinfo;
3485 // Match Patterns
3486 if(![&](){return Helper.matchCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
3487 return false;
3488 }
3489 // Apply Patterns
3490 Helper.applyCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);
3491 return true;
3492 }
3493 case GICXXCustomAction_GICombiner78:{
3494 SmallVector<Register> GIMatchData_info;
3495 // Match Patterns
3496 if(![&](){return Helper.matchNotCmp(*State.MIs[0], GIMatchData_info);}()) {
3497 return false;
3498 }
3499 // Apply Patterns
3500 Helper.applyNotCmp(*State.MIs[0], GIMatchData_info);
3501 return true;
3502 }
3503 case GICXXCustomAction_GICombiner79:{
3504 MachineInstr * GIMatchData_matchinfo;
3505 // Match Patterns
3506 if(![&](){return Helper.matchOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);}()) {
3507 return false;
3508 }
3509 // Apply Patterns
3510 Helper.applyOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);
3511 return true;
3512 }
3513 case GICXXCustomAction_GICombiner80:{
3514 // Apply Patterns
3515 Helper.applyCombineConstantFoldFpUnary(*State.MIs[0], State.MIs[1]->getOperand(1).getFPImm());
3516 return true;
3517 }
3518 case GICXXCustomAction_GICombiner81:{
3519 // Apply Patterns
3520 Helper.replaceInstWithFConstant(*State.MIs[0]->getOperand(0).getParent(), 0.0);
3521 return true;
3522 }
3523 case GICXXCustomAction_GICombiner82:{
3524 APInt GIMatchData_info;
3525 // Match Patterns
3526 if(![&](){return Helper.matchCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info);}()) {
3527 return false;
3528 }
3529 // Apply Patterns
3530 Helper.applyCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info);
3531 return true;
3532 }
3533 case GICXXCustomAction_GICombiner83:{
3534 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3535 // Match Patterns
3536 if(![&](){return Helper.matchOverlappingAnd(*State.MIs[0], GIMatchData_info);}()) {
3537 return false;
3538 }
3539 // Apply Patterns
3540 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3541 return true;
3542 }
3543 case GICXXCustomAction_GICombiner84:{
3544 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3545 // Match Patterns
3546 if(![&](){return Helper.matchMulOBy2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3547 return false;
3548 }
3549 // Apply Patterns
3550 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3551 return true;
3552 }
3553 case GICXXCustomAction_GICombiner85:{
3554 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3555 // Match Patterns
3556 if(![&](){return Helper.matchMulOBy0(*State.MIs[0], GIMatchData_matchinfo);}()) {
3557 return false;
3558 }
3559 // Apply Patterns
3560 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3561 return true;
3562 }
3563 case GICXXCustomAction_GICombiner86:{
3564 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3565 // Match Patterns
3566 if(![&](){return Helper.matchAddEToAddO(*State.MIs[0], GIMatchData_matchinfo);}()) {
3567 return false;
3568 }
3569 // Apply Patterns
3570 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3571 return true;
3572 }
3573 case GICXXCustomAction_GICombiner87:{
3574 unsigned GIMatchData_info;
3575 // Match Patterns
3576 if(![&](){return Helper.matchCombineFMinMaxNaN(*State.MIs[0], GIMatchData_info);}()) {
3577 return false;
3578 }
3579 // Apply Patterns
3580 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_info);
3581 return true;
3582 }
3583 case GICXXCustomAction_GICombiner88:{
3584 // Match Patterns
3585 if(![&](){return Helper.matchFPowIExpansion(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());}()) {
3586 return false;
3587 }
3588 // Apply Patterns
3589 Helper.applyExpandFPowI(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());
3590 return true;
3591 }
3592 case GICXXCustomAction_GICombiner89:{
3593 std::pair<Register, Register> GIMatchData_matchinfo;
3594 // Match Patterns
3595 if(![&](){return Helper.matchXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3596 return false;
3597 }
3598 // Apply Patterns
3599 Helper.applyXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);
3600 return true;
3601 }
3602 case GICXXCustomAction_GICombiner90:{
3603 // Match Patterns
3604 if(![&](){return Helper.matchPtrAddZero(*State.MIs[0]);}()) {
3605 return false;
3606 }
3607 // Apply Patterns
3608 Helper.applyPtrAddZero(*State.MIs[0]);
3609 return true;
3610 }
3611 case GICXXCustomAction_GICombiner91:{
3612 RegisterImmPair GIMatchData_matchinfo;
3613 // Match Patterns
3614 if(![&](){return Helper.matchShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
3615 return false;
3616 }
3617 // Apply Patterns
3618 Helper.applyShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);
3619 return true;
3620 }
3621 case GICXXCustomAction_GICombiner92:{
3622 ShiftOfShiftedLogic GIMatchData_matchinfo;
3623 // Match Patterns
3624 if(![&](){return Helper.matchShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);}()) {
3625 return false;
3626 }
3627 // Apply Patterns
3628 Helper.applyShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);
3629 return true;
3630 }
3631 case GICXXCustomAction_GICombiner93:{
3632 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3633 // Match Patterns
3634 if(![&](){return Helper.matchLoadOrCombine(*State.MIs[0], GIMatchData_info);}()) {
3635 return false;
3636 }
3637 // Apply Patterns
3638 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3639 return true;
3640 }
3641 case GICXXCustomAction_GICombiner94:{
3642 MachineInstr * GIMatchData_matchinfo;
3643 // Match Patterns
3644 if(![&](){return Helper.matchCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);}()) {
3645 return false;
3646 }
3647 // Apply Patterns
3648 Helper.applyCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);
3649 return true;
3650 }
3651 case GICXXCustomAction_GICombiner95:{
3652 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3653 // Match Patterns
3654 if(![&](){return Helper.matchOrShiftToFunnelShift(*State.MIs[0], false, GIMatchData_info);}()) {
3655 return false;
3656 }
3657 // Apply Patterns
3658 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3659 return true;
3660 }
3661 case GICXXCustomAction_GICombiner96:{
3662 // Match Patterns
3663 if(![&](){return Helper.matchFunnelShiftToRotate(*State.MIs[0]);}()) {
3664 return false;
3665 }
3666 // Apply Patterns
3667 Helper.applyFunnelShiftToRotate(*State.MIs[0]);
3668 return true;
3669 }
3670 case GICXXCustomAction_GICombiner97:{
3671 // Match Patterns
3672 if(![&](){return Helper.matchConstantLargerBitWidth(*State.MIs[0], 3);}()) {
3673 return false;
3674 }
3675 // Apply Patterns
3676 Helper.applyFunnelShiftConstantModulo(*State.MIs[0]);
3677 return true;
3678 }
3679 case GICXXCustomAction_GICombiner98:{
3680 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3681 // Match Patterns
3682 if(![&](){return Helper.matchCommuteShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
3683 return false;
3684 }
3685 // Apply Patterns
3686 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3687 return true;
3688 }
3689 case GICXXCustomAction_GICombiner99:{
3690 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3691 // Match Patterns
3692 if(![&](){return Helper.matchBitfieldExtractFromSExtInReg(*State.MIs[0], GIMatchData_info);}()) {
3693 return false;
3694 }
3695 // Apply Patterns
3696 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3697 return true;
3698 }
3699 case GICXXCustomAction_GICombiner100:{
3700 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3701 // Match Patterns
3702 if(![&](){return Helper.matchBitfieldExtractFromAnd(*State.MIs[0], GIMatchData_info);}()) {
3703 return false;
3704 }
3705 // Apply Patterns
3706 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3707 return true;
3708 }
3709 case GICXXCustomAction_GICombiner101:{
3710 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3711 // Match Patterns
3712 if(![&](){return Helper.matchBitfieldExtractFromShr(*State.MIs[0], GIMatchData_info);}()) {
3713 return false;
3714 }
3715 // Apply Patterns
3716 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3717 return true;
3718 }
3719 case GICXXCustomAction_GICombiner102:{
3720 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3721 // Match Patterns
3722 if(![&](){return Helper.matchBitfieldExtractFromShrAnd(*State.MIs[0], GIMatchData_info);}()) {
3723 return false;
3724 }
3725 // Apply Patterns
3726 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3727 return true;
3728 }
3729 case GICXXCustomAction_GICombiner103:{
3730 APInt GIMatchData_matchinfo;
3731 // Match Patterns
3732 if(![&](){return Helper.matchConstantFoldBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3733 return false;
3734 }
3735 // Apply Patterns
3736 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3737 return true;
3738 }
3739 case GICXXCustomAction_GICombiner104:{
3740 ConstantFP* GIMatchData_matchinfo;
3741 // Match Patterns
3742 if(![&](){return Helper.matchConstantFoldFPBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3743 return false;
3744 }
3745 // Apply Patterns
3746 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3747 return true;
3748 }
3749 case GICXXCustomAction_GICombiner105:{
3750 ConstantFP* GIMatchData_matchinfo;
3751 // Match Patterns
3752 if(![&](){return Helper.matchConstantFoldFMA(*State.MIs[0], GIMatchData_matchinfo);}()) {
3753 return false;
3754 }
3755 // Apply Patterns
3756 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3757 return true;
3758 }
3759 case GICXXCustomAction_GICombiner106:{
3760 APInt GIMatchData_matchinfo;
3761 // Match Patterns
3762 if(![&](){return Helper.matchConstantFoldCastOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3763 return false;
3764 }
3765 // Apply Patterns
3766 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3767 return true;
3768 }
3769 case GICXXCustomAction_GICombiner107:{
3770 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3771 // Match Patterns
3772 if(![&](){return Helper.matchConstantFoldUnaryIntOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3773 return false;
3774 }
3775 // Apply Patterns
3776 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3777 return true;
3778 }
3779 case GICXXCustomAction_GICombiner108:{
3780 // Match Patterns
3781 if(![&](){return Helper.matchUMulHToLShr(*State.MIs[0]);}()) {
3782 return false;
3783 }
3784 // Apply Patterns
3785 Helper.applyUMulHToLShr(*State.MIs[0]);
3786 return true;
3787 }
3788 case GICXXCustomAction_GICombiner109:{
3789 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3790 // Match Patterns
3791 if(![&](){return Helper.matchRedundantNegOperands(*State.MIs[0], GIMatchData_matchinfo);}()) {
3792 return false;
3793 }
3794 // Apply Patterns
3795 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3796 return true;
3797 }
3798 case GICXXCustomAction_GICombiner110:{
3799 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3800 // Match Patterns
3801 if(![&](){return Helper.matchAndOrDisjointMask(*State.MIs[0], GIMatchData_info);}()) {
3802 return false;
3803 }
3804 // Apply Patterns
3805 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_info);
3806 return true;
3807 }
3808 case GICXXCustomAction_GICombiner111:{
3809 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3810 // Match Patterns
3811 if(![&](){return Helper.matchCombineFAddFMulToFMadOrFMA(*State.MIs[0],
3812 GIMatchData_info);}()) {
3813 return false;
3814 }
3815 // Apply Patterns
3816 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3817 return true;
3818 }
3819 case GICXXCustomAction_GICombiner112:{
3820 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3821 // Match Patterns
3822 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMA(*State.MIs[0],
3823 GIMatchData_info);}()) {
3824 return false;
3825 }
3826 // Apply Patterns
3827 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3828 return true;
3829 }
3830 case GICXXCustomAction_GICombiner113:{
3831 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3832 // Match Patterns
3833 if(![&](){return Helper.matchCombineFAddFMAFMulToFMadOrFMA(*State.MIs[0],
3834 GIMatchData_info);}()) {
3835 return false;
3836 }
3837 // Apply Patterns
3838 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3839 return true;
3840 }
3841 case GICXXCustomAction_GICombiner114:{
3842 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3843 // Match Patterns
3844 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMAAggressive(
3845 *State.MIs[0], GIMatchData_info);}()) {
3846 return false;
3847 }
3848 // Apply Patterns
3849 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3850 return true;
3851 }
3852 case GICXXCustomAction_GICombiner115:{
3853 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3854 // Match Patterns
3855 if(![&](){return Helper.matchCombineFSubFMulToFMadOrFMA(*State.MIs[0],
3856 GIMatchData_info);}()) {
3857 return false;
3858 }
3859 // Apply Patterns
3860 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3861 return true;
3862 }
3863 case GICXXCustomAction_GICombiner116:{
3864 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3865 // Match Patterns
3866 if(![&](){return Helper.matchCombineFSubFNegFMulToFMadOrFMA(*State.MIs[0],
3867 GIMatchData_info);}()) {
3868 return false;
3869 }
3870 // Apply Patterns
3871 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3872 return true;
3873 }
3874 case GICXXCustomAction_GICombiner117:{
3875 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3876 // Match Patterns
3877 if(![&](){return Helper.matchCombineFSubFpExtFMulToFMadOrFMA(*State.MIs[0],
3878 GIMatchData_info);}()) {
3879 return false;
3880 }
3881 // Apply Patterns
3882 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3883 return true;
3884 }
3885 case GICXXCustomAction_GICombiner118:{
3886 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3887 // Match Patterns
3888 if(![&](){return Helper.matchCombineFSubFpExtFNegFMulToFMadOrFMA(
3889 *State.MIs[0], GIMatchData_info);}()) {
3890 return false;
3891 }
3892 // Apply Patterns
3893 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3894 return true;
3895 }
3896 case GICXXCustomAction_GICombiner119:{
3897 unsigned GIMatchData_select_op_no;
3898 // Match Patterns
3899 if(![&](){return Helper.matchFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);}()) {
3900 return false;
3901 }
3902 // Apply Patterns
3903 Helper.applyFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);
3904 return true;
3905 }
3906 case GICXXCustomAction_GICombiner120:{
3907 // Match Patterns
3908 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(State.MIs[0]->getOperand(2),
3909 /*OrNegative=*/true);}()) {
3910 return false;
3911 }
3912 // Apply Patterns
3913 Helper.applySimplifySRemByPow2(*State.MIs[0]);
3914 return true;
3915 }
3916 case GICXXCustomAction_GICombiner121:{
3917 // Match Patterns
3918 if(![&](){return Helper.matchUDivOrURemByConst(*State.MIs[0]);}()) {
3919 return false;
3920 }
3921 // Apply Patterns
3922 Helper.applyUDivOrURemByConst(*State.MIs[0]);
3923 return true;
3924 }
3925 case GICXXCustomAction_GICombiner122:{
3926 // Match Patterns
3927 if(![&](){return Helper.matchSDivOrSRemByConst(*State.MIs[0]);}()) {
3928 return false;
3929 }
3930 // Apply Patterns
3931 Helper.applySDivOrSRemByConst(*State.MIs[0]);
3932 return true;
3933 }
3934 case GICXXCustomAction_GICombiner123:{
3935 // Match Patterns
3936 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/false);}()) {
3937 return false;
3938 }
3939 // Apply Patterns
3940 Helper.applyUDivByPow2(*State.MIs[0]);
3941 return true;
3942 }
3943 case GICXXCustomAction_GICombiner124:{
3944 // Match Patterns
3945 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/true);}()) {
3946 return false;
3947 }
3948 // Apply Patterns
3949 Helper.applySDivByPow2(*State.MIs[0]);
3950 return true;
3951 }
3952 case GICXXCustomAction_GICombiner125:{
3953 SmallVector<MachineInstr *> GIMatchData_matchinfo;
3954 // Match Patterns
3955 if(![&](){return Helper.matchRepeatedFPDivisor(*State.MIs[0], GIMatchData_matchinfo);}()) {
3956 return false;
3957 }
3958 // Apply Patterns
3959 Helper.applyRepeatedFPDivisor(GIMatchData_matchinfo);
3960 return true;
3961 }
3962 case GICXXCustomAction_GICombiner126:{
3963 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3964 // Match Patterns
3965 if(![&](){return Helper.matchSubAddSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3966 return false;
3967 }
3968 // Apply Patterns
3969 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3970 return true;
3971 }
3972 case GICXXCustomAction_GICombiner127:{
3973 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3974 // Match Patterns
3975 if(![&](){return Helper.matchSimplifySelectToMinMax(*State.MIs[0], GIMatchData_info);}()) {
3976 return false;
3977 }
3978 // Apply Patterns
3979 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3980 return true;
3981 }
3982 case GICXXCustomAction_GICombiner128:{
3983 Register GIMatchData_matchinfo;
3984 // Match Patterns
3985 if(![&](){return Helper.matchFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3986 return false;
3987 }
3988 // Apply Patterns
3989 Helper.applyFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);
3990 return true;
3991 }
3992 case GICXXCustomAction_GICombiner129:{
3993 // Match Patterns
3994 if(![&](){return Helper.matchCommuteConstantToRHS(*State.MIs[0]);}()) {
3995 return false;
3996 }
3997 // Apply Patterns
3998 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
3999 return true;
4000 }
4001 case GICXXCustomAction_GICombiner130:{
4002 // Match Patterns
4003 if(![&](){return Helper.matchCommuteFPConstantToRHS(*State.MIs[0]);}()) {
4004 return false;
4005 }
4006 // Apply Patterns
4007 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
4008 return true;
4009 }
4010 case GICXXCustomAction_GICombiner131:{
4011 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4012 // Match Patterns
4013 if(![&](){return Helper.matchAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
4014 return false;
4015 }
4016 // Apply Patterns
4017 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4018 return true;
4019 }
4020 case GICXXCustomAction_GICombiner132:{
4021 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4022 // Match Patterns
4023 if(![&](){return Helper.matchOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
4024 return false;
4025 }
4026 // Apply Patterns
4027 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4028 return true;
4029 }
4030 case GICXXCustomAction_GICombiner133:{
4031 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4032 // Match Patterns
4033 if(![&](){return Helper.matchSimplifyNegMinMax(*State.MIs[0], GIMatchData_matchinfo);}()) {
4034 return false;
4035 }
4036 // Apply Patterns
4037 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4038 return true;
4039 }
4040 case GICXXCustomAction_GICombiner134:{
4041 SmallVector<Register> GIMatchData_matchinfo;
4042 // Match Patterns
4043 if(![&](){return Helper.matchCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);}()) {
4044 return false;
4045 }
4046 // Apply Patterns
4047 Helper.applyCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);
4048 return true;
4049 }
4050 case GICXXCustomAction_GICombiner135:{
4051 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4052 // Match Patterns
4053 if(![&](){return Helper.matchSextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4054 return false;
4055 }
4056 // Apply Patterns
4057 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4058 return true;
4059 }
4060 case GICXXCustomAction_GICombiner136:{
4061 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4062 // Match Patterns
4063 if(![&](){return Helper.matchZextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4064 return false;
4065 }
4066 // Apply Patterns
4067 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4068 return true;
4069 }
4070 case GICXXCustomAction_GICombiner137:{
4071 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4072 // Match Patterns
4073 if(![&](){return Helper.matchNonNegZext(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4074 return false;
4075 }
4076 // Apply Patterns
4077 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4078 return true;
4079 }
4080 case GICXXCustomAction_GICombiner138:{
4081 SmallVector<Register> GIMatchData_matchinfo;
4082 // Match Patterns
4083 if(![&](){return Helper.matchCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);}()) {
4084 return false;
4085 }
4086 // Apply Patterns
4087 Helper.applyCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);
4088 return true;
4089 }
4090 case GICXXCustomAction_GICombiner139:{
4091 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4092 // Match Patterns
4093 if(![&](){return Helper.matchShuffleUndefRHS(*State.MIs[0], GIMatchData_matchinfo);}()) {
4094 return false;
4095 }
4096 // Apply Patterns
4097 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4098 return true;
4099 }
4100 case GICXXCustomAction_GICombiner140:{
4101 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4102 // Match Patterns
4103 if(![&](){return Helper.matchShuffleDisjointMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
4104 return false;
4105 }
4106 // Apply Patterns
4107 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4108 return true;
4109 }
4110 case GICXXCustomAction_GICombiner141:{
4111 Register GIMatchData_matchinfo;
4112 // Match Patterns
4113 if(![&](){return Helper.matchUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);}()) {
4114 return false;
4115 }
4116 // Apply Patterns
4117 Helper.applyUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);
4118 return true;
4119 }
4120 case GICXXCustomAction_GICombiner142:{
4121 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4122 // Match Patterns
4123 if(![&](){return Helper.matchUnmergeValuesAnyExtBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
4124 return false;
4125 }
4126 // Apply Patterns
4127 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4128 return true;
4129 }
4130 case GICXXCustomAction_GICombiner143:{
4131 SmallVector<Register> GIMatchData_info;
4132 // Match Patterns
4133 if(![&](){return Helper.matchCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);}()) {
4134 return false;
4135 }
4136 // Apply Patterns
4137 Helper.applyCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);
4138 return true;
4139 }
4140 case GICXXCustomAction_GICombiner144:{
4141 Register GIMatchData_src;
4142 // Match Patterns
4143 if(![&](){// Check if first source comes from G_UNMERGE_VALUES.
4144 Register FirstMergeSrc = getRemainingOperands(*State.MIs[0], 1)[0].getReg();
4145 MachineInstr *UnmergeMI = MRI.getVRegDef(FirstMergeSrc);
4146 if (!UnmergeMI || UnmergeMI->getOpcode() != TargetOpcode::G_UNMERGE_VALUES)
4147 return false;
4148
4149 // Check counts match.
4150 unsigned NumMergeSrcs = getRemainingOperands(*State.MIs[0], 1).size();
4151 unsigned NumUnmergeDefs = UnmergeMI->getNumDefs();
4152 if (NumMergeSrcs != NumUnmergeDefs)
4153 return false;
4154
4155 // Verify all merge sources match unmerge defs in order.
4156 for (unsigned I = 0; I < NumMergeSrcs; ++I) {
4157 Register MergeSrc = getRemainingOperands(*State.MIs[0], 1)[I].getReg();
4158 Register UnmergeDef = UnmergeMI->getOperand(I).getReg();
4159
4160 if (MergeSrc != UnmergeDef)
4161 return false;
4162
4163 if (!MRI.hasOneNonDBGUse(MergeSrc))
4164 return false;
4165 }
4166
4167 // Check size compatibility.
4168 GIMatchData_src = UnmergeMI->getOperand(NumUnmergeDefs).getReg();
4169 LLT SrcTy = MRI.getType(GIMatchData_src);
4170 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
4171 if (SrcTy.getSizeInBits() != DstTy.getSizeInBits())
4172 return false;
4173
4174 // Check bitcast legality.
4175 if (SrcTy != DstTy) {
4176 std::array<LLT, 2> Types = {{DstTy, SrcTy}};
4177 LegalityQuery Query(TargetOpcode::G_BITCAST, Types);
4178 if (!Helper.isLegalOrBeforeLegalizer(Query))
4179 return false;
4180 }
4181
4182 return true;}()) {
4183 return false;
4184 }
4185 // Apply Patterns
4186 LLT SrcTy = MRI.getType(GIMatchData_src);
4187 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
4188
4189 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
4190
4191 if (SrcTy == DstTy) {
4192 Helper.replaceRegWith(MRI, State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
4193 } else {
4194 Helper.getBuilder().buildBitcast(State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
4195 }
4196
4197 State.MIs[0]->eraseFromParent();
4198 return true;
4199 }
4200 case GICXXCustomAction_GICombiner145:{
4201 SmallVector<APInt, 8> GIMatchData_info;
4202 // Match Patterns
4203 if(![&](){return Helper.matchCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);}()) {
4204 return false;
4205 }
4206 // Apply Patterns
4207 Helper.applyCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);
4208 return true;
4209 }
4210 case GICXXCustomAction_GICombiner146:{
4211 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4212 // Match Patterns
4213 if(![&](){return Helper.matchCombineUnmergeUndef(*State.MIs[0], GIMatchData_info);}()) {
4214 return false;
4215 }
4216 // Apply Patterns
4217 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4218 return true;
4219 }
4220 case GICXXCustomAction_GICombiner147:{
4221 // Match Patterns
4222 if(![&](){return Helper.matchCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);}()) {
4223 return false;
4224 }
4225 // Apply Patterns
4226 Helper.applyCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);
4227 return true;
4228 }
4229 case GICXXCustomAction_GICombiner148:{
4230 // Match Patterns
4231 if(![&](){return Helper.matchCombineUnmergeZExtToZExt(*State.MIs[0]);}()) {
4232 return false;
4233 }
4234 // Apply Patterns
4235 Helper.applyCombineUnmergeZExtToZExt(*State.MIs[0]);
4236 return true;
4237 }
4238 case GICXXCustomAction_GICombiner149:{
4239 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4240 // Match Patterns
4241 if(![&](){return Helper.matchMergeXAndUndef(*State.MIs[0], GIMatchData_matchinfo);}()) {
4242 return false;
4243 }
4244 // Apply Patterns
4245 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4246 return true;
4247 }
4248 case GICXXCustomAction_GICombiner150:{
4249 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4250 // Match Patterns
4251 if(![&](){return Helper.matchMergeXAndZero(*State.MIs[0], GIMatchData_matchinfo);}()) {
4252 return false;
4253 }
4254 // Apply Patterns
4255 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4256 return true;
4257 }
4258 case GICXXCustomAction_GICombiner151:{
4259 Register GIMatchData_unmergeSrc;
4260 // Match Patterns
4261 if(![&](){return Helper.matchCombineBuildUnmerge(*State.MIs[0], MRI, GIMatchData_unmergeSrc);}()) {
4262 return false;
4263 }
4264 // Apply Patterns
4265 Helper.applyCombineBuildUnmerge(*State.MIs[0], MRI, B, GIMatchData_unmergeSrc);
4266 return true;
4267 }
4268 case GICXXCustomAction_GICombiner152:{
4269 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4270 // Match Patterns
4271 if(![&](){return Helper.matchAddOverflow(*State.MIs[0], GIMatchData_matchinfo);}()) {
4272 return false;
4273 }
4274 // Apply Patterns
4275 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4276 return true;
4277 }
4278 case GICXXCustomAction_GICombiner153:{
4279 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4280 // Match Patterns
4281 if(![&](){return Helper.matchSuboCarryOut(*State.MIs[0], GIMatchData_matchinfo);}()) {
4282 return false;
4283 }
4284 // Apply Patterns
4285 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4286 return true;
4287 }
4288 case GICXXCustomAction_GICombiner154:{
4289 Register GIMatchData_matchinfo;
4290 // Match Patterns
4291 if(![&](){return Helper.matchTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);}()) {
4292 return false;
4293 }
4294 // Apply Patterns
4295 Helper.applyTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);
4296 return true;
4297 }
4298 case GICXXCustomAction_GICombiner155:{
4299 Register GIMatchData_matchinfo;
4300 // Match Patterns
4301 if(![&](){return Helper.matchTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);}()) {
4302 return false;
4303 }
4304 // Apply Patterns
4305 Helper.applyTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);
4306 return true;
4307 }
4308 case GICXXCustomAction_GICombiner156:{
4309 LshrOfTruncOfLshr GIMatchData_matchinfo;
4310 // Match Patterns
4311 if(![&](){return Helper.matchLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo, *State.MIs[2]);}()) {
4312 return false;
4313 }
4314 // Apply Patterns
4315 Helper.applyLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo);
4316 return true;
4317 }
4318 case GICXXCustomAction_GICombiner157:{
4319 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4320 // Match Patterns
4321 if(![&](){return Helper.matchCtls(*State.MIs[0], GIMatchData_matchinfo);}()) {
4322 return false;
4323 }
4324 // Apply Patterns
4325 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4326 return true;
4327 }
4328 case GICXXCustomAction_GICombiner158:{
4329 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4330 // Match Patterns
4331 if(![&](){return Helper.matchBinopWithNeg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4332 return false;
4333 }
4334 // Apply Patterns
4335 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4336 return true;
4337 }
4338 case GICXXCustomAction_GICombiner159:{
4339 FMinFMaxLegacyInfo GIMatchData_matchinfo;
4340 // Match Patterns
4341 if(![&](){return matchFMinFMaxLegacy(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
4342 return false;
4343 }
4344 // Apply Patterns
4345 applySelectFCmpToFMinFMaxLegacy(*State.MIs[0], GIMatchData_matchinfo);
4346 return true;
4347 }
4348 case GICXXCustomAction_GICombiner160:{
4349 // Match Patterns
4350 if(![&](){return Helper.matchExpandPromotedF16FMed3(*State.MIs[0], State.MIs[1]->getOperand(1).getReg(), State.MIs[1]->getOperand(2).getReg(), State.MIs[1]->getOperand(3).getReg());}()) {
4351 return false;
4352 }
4353 // Apply Patterns
4354 Helper.applyExpandPromotedF16FMed3(*State.MIs[0], State.MIs[1]->getOperand(1).getReg(), State.MIs[1]->getOperand(2).getReg(), State.MIs[1]->getOperand(3).getReg());
4355 return true;
4356 }
4357 case GICXXCustomAction_GICombiner161:{
4358 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4359 // Match Patterns
4360 if(![&](){return Helper.matchCombineFmulWithSelectToFldexp(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
4361 return false;
4362 }
4363 // Apply Patterns
4364 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4365 return true;
4366 }
4367 case GICXXCustomAction_GICombiner162:{
4368 // Match Patterns
4369 if(![&](){return matchUCharToFloat(*State.MIs[0]);}()) {
4370 return false;
4371 }
4372 // Apply Patterns
4373 applyUCharToFloat(*State.MIs[0]);
4374 return true;
4375 }
4376 case GICXXCustomAction_GICombiner163:{
4377 CvtF32UByteMatchInfo GIMatchData_matchinfo;
4378 // Match Patterns
4379 if(![&](){return matchCvtF32UByteN(*State.MIs[0], GIMatchData_matchinfo);}()) {
4380 return false;
4381 }
4382 // Apply Patterns
4383 applyCvtF32UByteN(*State.MIs[0], GIMatchData_matchinfo);
4384 return true;
4385 }
4386 case GICXXCustomAction_GICombiner164:{
4387 Register GIMatchData_matchinfo;
4388 // Match Patterns
4389 if(![&](){return matchRemoveFcanonicalize(*State.MIs[0], GIMatchData_matchinfo);}()) {
4390 return false;
4391 }
4392 // Apply Patterns
4393 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
4394 return true;
4395 }
4396 case GICXXCustomAction_GICombiner165:{
4397 MachineInstr * GIMatchData_matchinfo;
4398 // Match Patterns
4399 if(![&](){return Helper.matchFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4400 return false;
4401 }
4402 // Apply Patterns
4403 Helper.applyFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);
4404 return true;
4405 }
4406 case GICXXCustomAction_GICombiner166:{
4407 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4408 // Match Patterns
4409 if(![&](){return matchRcpSqrtToRsq(*State.MIs[0], GIMatchData_matchinfo);}()) {
4410 return false;
4411 }
4412 // Apply Patterns
4413 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4414 return true;
4415 }
4416 case GICXXCustomAction_GICombiner167:{
4417 // Match Patterns
4418 if(![&](){return matchFDivSqrtToRsqF16(*State.MIs[0]);}()) {
4419 return false;
4420 }
4421 // Apply Patterns
4422 applyFDivSqrtToRsqF16(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
4423 return true;
4424 }
4425 case GICXXCustomAction_GICombiner168:{
4426 std::pair<MachineInstr *, unsigned> GIMatchData_matchinfo;
4427 // Match Patterns
4428 if(![&](){return matchCombineSignExtendInReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4429 return false;
4430 }
4431 // Apply Patterns
4432 applyCombineSignExtendInReg(*State.MIs[0], GIMatchData_matchinfo);
4433 return true;
4434 }
4435 case GICXXCustomAction_GICombiner169:{
4436 unsigned GIMatchData_matchinfo;
4437 // Match Patterns
4438 if(![&](){return matchCombine_s_mul_u64(*State.MIs[0], GIMatchData_matchinfo);}()) {
4439 return false;
4440 }
4441 // Apply Patterns
4442 Helper.replaceOpcodeWith(*State.MIs[0], GIMatchData_matchinfo);
4443 return true;
4444 }
4445 }
4446 llvm_unreachable("Unknown Apply Action");
4447}
4448#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
4449#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((Val) >> 8)
4450#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24)
4451#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)
4452#else
4453#define GIMT_Encode2(Val) uint8_t((Val) >> 8), uint8_t(Val)
4454#define GIMT_Encode4(Val) uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
4455#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)
4456#endif
4457const uint8_t *AMDGPUPostLegalizerCombinerImpl::getMatchTable() const {
4458 constexpr static uint8_t MatchTable0[] = {
4459 /* 0 */ GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(20), GIMT_Encode2(4137), /*)*//*default:*//*Label 118*/ GIMT_Encode4(26008),
4460 /* 10 */ /*TargetOpcode::COPY*//*Label 0*/ GIMT_Encode4(16478), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4461 /* 150 */ /*TargetOpcode::G_ADD*//*Label 1*/ GIMT_Encode4(16490),
4462 /* 154 */ /*TargetOpcode::G_SUB*//*Label 2*/ GIMT_Encode4(17223),
4463 /* 158 */ /*TargetOpcode::G_MUL*//*Label 3*/ GIMT_Encode4(18204),
4464 /* 162 */ /*TargetOpcode::G_SDIV*//*Label 4*/ GIMT_Encode4(18421),
4465 /* 166 */ /*TargetOpcode::G_UDIV*//*Label 5*/ GIMT_Encode4(18523),
4466 /* 170 */ /*TargetOpcode::G_SREM*//*Label 6*/ GIMT_Encode4(18636),
4467 /* 174 */ /*TargetOpcode::G_UREM*//*Label 7*/ GIMT_Encode4(18732), GIMT_Encode4(0), GIMT_Encode4(0),
4468 /* 186 */ /*TargetOpcode::G_AND*//*Label 8*/ GIMT_Encode4(18839),
4469 /* 190 */ /*TargetOpcode::G_OR*//*Label 9*/ GIMT_Encode4(19380),
4470 /* 194 */ /*TargetOpcode::G_XOR*//*Label 10*/ GIMT_Encode4(20383), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4471 /* 226 */ /*TargetOpcode::G_PHI*//*Label 11*/ GIMT_Encode4(20594), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4472 /* 250 */ /*TargetOpcode::G_UNMERGE_VALUES*//*Label 12*/ GIMT_Encode4(20606), GIMT_Encode4(0),
4473 /* 258 */ /*TargetOpcode::G_MERGE_VALUES*//*Label 13*/ GIMT_Encode4(20673),
4474 /* 262 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 14*/ GIMT_Encode4(20750),
4475 /* 266 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 15*/ GIMT_Encode4(20815),
4476 /* 270 */ /*TargetOpcode::G_CONCAT_VECTORS*//*Label 16*/ GIMT_Encode4(20827),
4477 /* 274 */ /*TargetOpcode::G_PTRTOINT*//*Label 17*/ GIMT_Encode4(20839),
4478 /* 278 */ /*TargetOpcode::G_INTTOPTR*//*Label 18*/ GIMT_Encode4(20882),
4479 /* 282 */ /*TargetOpcode::G_BITCAST*//*Label 19*/ GIMT_Encode4(20915),
4480 /* 286 */ /*TargetOpcode::G_FREEZE*//*Label 20*/ GIMT_Encode4(20990), GIMT_Encode4(0), GIMT_Encode4(0),
4481 /* 298 */ /*TargetOpcode::G_INTRINSIC_TRUNC*//*Label 21*/ GIMT_Encode4(21054),
4482 /* 302 */ /*TargetOpcode::G_INTRINSIC_ROUND*//*Label 22*/ GIMT_Encode4(21076), GIMT_Encode4(0), GIMT_Encode4(0),
4483 /* 314 */ /*TargetOpcode::G_INTRINSIC_ROUNDEVEN*//*Label 23*/ GIMT_Encode4(21098), GIMT_Encode4(0), GIMT_Encode4(0),
4484 /* 326 */ /*TargetOpcode::G_LOAD*//*Label 24*/ GIMT_Encode4(21120),
4485 /* 330 */ /*TargetOpcode::G_SEXTLOAD*//*Label 25*/ GIMT_Encode4(21132),
4486 /* 334 */ /*TargetOpcode::G_ZEXTLOAD*//*Label 26*/ GIMT_Encode4(21144), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4487 /* 354 */ /*TargetOpcode::G_STORE*//*Label 27*/ GIMT_Encode4(21156), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4488 /* 486 */ /*TargetOpcode::G_INTRINSIC*//*Label 28*/ GIMT_Encode4(21168), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4489 /* 502 */ /*TargetOpcode::G_ANYEXT*//*Label 29*/ GIMT_Encode4(21180),
4490 /* 506 */ /*TargetOpcode::G_TRUNC*//*Label 30*/ GIMT_Encode4(21308), GIMT_Encode4(0), GIMT_Encode4(0),
4491 /* 518 */ /*TargetOpcode::G_TRUNC_USAT_U*//*Label 31*/ GIMT_Encode4(21720), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4492 /* 538 */ /*TargetOpcode::G_SEXT*//*Label 32*/ GIMT_Encode4(21753),
4493 /* 542 */ /*TargetOpcode::G_SEXT_INREG*//*Label 33*/ GIMT_Encode4(21828),
4494 /* 546 */ /*TargetOpcode::G_ZEXT*//*Label 34*/ GIMT_Encode4(21905),
4495 /* 550 */ /*TargetOpcode::G_SHL*//*Label 35*/ GIMT_Encode4(22035),
4496 /* 554 */ /*TargetOpcode::G_LSHR*//*Label 36*/ GIMT_Encode4(22233),
4497 /* 558 */ /*TargetOpcode::G_ASHR*//*Label 37*/ GIMT_Encode4(22580),
4498 /* 562 */ /*TargetOpcode::G_FSHL*//*Label 38*/ GIMT_Encode4(22909),
4499 /* 566 */ /*TargetOpcode::G_FSHR*//*Label 39*/ GIMT_Encode4(22952),
4500 /* 570 */ /*TargetOpcode::G_ROTR*//*Label 40*/ GIMT_Encode4(22995),
4501 /* 574 */ /*TargetOpcode::G_ROTL*//*Label 41*/ GIMT_Encode4(23019),
4502 /* 578 */ /*TargetOpcode::G_ICMP*//*Label 42*/ GIMT_Encode4(23043),
4503 /* 582 */ /*TargetOpcode::G_FCMP*//*Label 43*/ GIMT_Encode4(23088), GIMT_Encode4(0), GIMT_Encode4(0),
4504 /* 594 */ /*TargetOpcode::G_SELECT*//*Label 44*/ GIMT_Encode4(23100),
4505 /* 598 */ /*TargetOpcode::G_UADDO*//*Label 45*/ GIMT_Encode4(23306),
4506 /* 602 */ /*TargetOpcode::G_UADDE*//*Label 46*/ GIMT_Encode4(23329),
4507 /* 606 */ /*TargetOpcode::G_USUBO*//*Label 47*/ GIMT_Encode4(23341),
4508 /* 610 */ /*TargetOpcode::G_USUBE*//*Label 48*/ GIMT_Encode4(23353),
4509 /* 614 */ /*TargetOpcode::G_SADDO*//*Label 49*/ GIMT_Encode4(23365),
4510 /* 618 */ /*TargetOpcode::G_SADDE*//*Label 50*/ GIMT_Encode4(23388),
4511 /* 622 */ /*TargetOpcode::G_SSUBO*//*Label 51*/ GIMT_Encode4(23400),
4512 /* 626 */ /*TargetOpcode::G_SSUBE*//*Label 52*/ GIMT_Encode4(23412),
4513 /* 630 */ /*TargetOpcode::G_UMULO*//*Label 53*/ GIMT_Encode4(23424),
4514 /* 634 */ /*TargetOpcode::G_SMULO*//*Label 54*/ GIMT_Encode4(23458),
4515 /* 638 */ /*TargetOpcode::G_UMULH*//*Label 55*/ GIMT_Encode4(23492),
4516 /* 642 */ /*TargetOpcode::G_SMULH*//*Label 56*/ GIMT_Encode4(23515),
4517 /* 646 */ /*TargetOpcode::G_UADDSAT*//*Label 57*/ GIMT_Encode4(23527),
4518 /* 650 */ /*TargetOpcode::G_SADDSAT*//*Label 58*/ GIMT_Encode4(23539), GIMT_Encode4(0), GIMT_Encode4(0),
4519 /* 662 */ /*TargetOpcode::G_USHLSAT*//*Label 59*/ GIMT_Encode4(23551),
4520 /* 666 */ /*TargetOpcode::G_SSHLSAT*//*Label 60*/ GIMT_Encode4(23574),
4521 /* 670 */ /*TargetOpcode::G_SMULFIX*//*Label 61*/ GIMT_Encode4(23597),
4522 /* 674 */ /*TargetOpcode::G_UMULFIX*//*Label 62*/ GIMT_Encode4(23609),
4523 /* 678 */ /*TargetOpcode::G_SMULFIXSAT*//*Label 63*/ GIMT_Encode4(23621),
4524 /* 682 */ /*TargetOpcode::G_UMULFIXSAT*//*Label 64*/ GIMT_Encode4(23633), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4525 /* 702 */ /*TargetOpcode::G_FADD*//*Label 65*/ GIMT_Encode4(23645),
4526 /* 706 */ /*TargetOpcode::G_FSUB*//*Label 66*/ GIMT_Encode4(23786),
4527 /* 710 */ /*TargetOpcode::G_FMUL*//*Label 67*/ GIMT_Encode4(23875),
4528 /* 714 */ /*TargetOpcode::G_FMA*//*Label 68*/ GIMT_Encode4(23984),
4529 /* 718 */ /*TargetOpcode::G_FMAD*//*Label 69*/ GIMT_Encode4(24007),
4530 /* 722 */ /*TargetOpcode::G_FDIV*//*Label 70*/ GIMT_Encode4(24030),
4531 /* 726 */ /*TargetOpcode::G_FREM*//*Label 71*/ GIMT_Encode4(24114), GIMT_Encode4(0), GIMT_Encode4(0),
4532 /* 738 */ /*TargetOpcode::G_FPOWI*//*Label 72*/ GIMT_Encode4(24137), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4533 /* 758 */ /*TargetOpcode::G_FLOG2*//*Label 73*/ GIMT_Encode4(24159), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4534 /* 774 */ /*TargetOpcode::G_FNEG*//*Label 74*/ GIMT_Encode4(24181),
4535 /* 778 */ /*TargetOpcode::G_FPEXT*//*Label 75*/ GIMT_Encode4(24243),
4536 /* 782 */ /*TargetOpcode::G_FPTRUNC*//*Label 76*/ GIMT_Encode4(24265),
4537 /* 786 */ /*TargetOpcode::G_FPTOSI*//*Label 77*/ GIMT_Encode4(24331),
4538 /* 790 */ /*TargetOpcode::G_FPTOUI*//*Label 78*/ GIMT_Encode4(24353),
4539 /* 794 */ /*TargetOpcode::G_SITOFP*//*Label 79*/ GIMT_Encode4(24375),
4540 /* 798 */ /*TargetOpcode::G_UITOFP*//*Label 80*/ GIMT_Encode4(24413), GIMT_Encode4(0), GIMT_Encode4(0),
4541 /* 810 */ /*TargetOpcode::G_FABS*//*Label 81*/ GIMT_Encode4(24451),
4542 /* 814 */ /*TargetOpcode::G_FCOPYSIGN*//*Label 82*/ GIMT_Encode4(24530), GIMT_Encode4(0),
4543 /* 822 */ /*TargetOpcode::G_FCANONICALIZE*//*Label 83*/ GIMT_Encode4(24542),
4544 /* 826 */ /*TargetOpcode::G_FMINNUM*//*Label 84*/ GIMT_Encode4(24583),
4545 /* 830 */ /*TargetOpcode::G_FMAXNUM*//*Label 85*/ GIMT_Encode4(24628),
4546 /* 834 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 86*/ GIMT_Encode4(24673),
4547 /* 838 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 87*/ GIMT_Encode4(24685),
4548 /* 842 */ /*TargetOpcode::G_FMINIMUM*//*Label 88*/ GIMT_Encode4(24697),
4549 /* 846 */ /*TargetOpcode::G_FMAXIMUM*//*Label 89*/ GIMT_Encode4(24742),
4550 /* 850 */ /*TargetOpcode::G_FMINIMUMNUM*//*Label 90*/ GIMT_Encode4(24787),
4551 /* 854 */ /*TargetOpcode::G_FMAXIMUMNUM*//*Label 91*/ GIMT_Encode4(24799), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4552 /* 890 */ /*TargetOpcode::G_PTR_ADD*//*Label 92*/ GIMT_Encode4(24811), GIMT_Encode4(0),
4553 /* 898 */ /*TargetOpcode::G_SMIN*//*Label 93*/ GIMT_Encode4(24901),
4554 /* 902 */ /*TargetOpcode::G_SMAX*//*Label 94*/ GIMT_Encode4(24935),
4555 /* 906 */ /*TargetOpcode::G_UMIN*//*Label 95*/ GIMT_Encode4(24969),
4556 /* 910 */ /*TargetOpcode::G_UMAX*//*Label 96*/ GIMT_Encode4(25003),
4557 /* 914 */ /*TargetOpcode::G_ABS*//*Label 97*/ GIMT_Encode4(25037), GIMT_Encode4(0), GIMT_Encode4(0),
4558 /* 926 */ /*TargetOpcode::G_BR*//*Label 98*/ GIMT_Encode4(25060), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4559 /* 946 */ /*TargetOpcode::G_INSERT_VECTOR_ELT*//*Label 99*/ GIMT_Encode4(25072),
4560 /* 950 */ /*TargetOpcode::G_EXTRACT_VECTOR_ELT*//*Label 100*/ GIMT_Encode4(25202),
4561 /* 954 */ /*TargetOpcode::G_SHUFFLE_VECTOR*//*Label 101*/ GIMT_Encode4(25579), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4562 /* 970 */ /*TargetOpcode::G_CTTZ*//*Label 102*/ GIMT_Encode4(25645),
4563 /* 974 */ /*TargetOpcode::G_CTTZ_ZERO_POISON*//*Label 103*/ GIMT_Encode4(25657),
4564 /* 978 */ /*TargetOpcode::G_CTLZ*//*Label 104*/ GIMT_Encode4(25669),
4565 /* 982 */ /*TargetOpcode::G_CTLZ_ZERO_POISON*//*Label 105*/ GIMT_Encode4(25692), GIMT_Encode4(0),
4566 /* 990 */ /*TargetOpcode::G_CTPOP*//*Label 106*/ GIMT_Encode4(25715),
4567 /* 994 */ /*TargetOpcode::G_BSWAP*//*Label 107*/ GIMT_Encode4(25727),
4568 /* 998 */ /*TargetOpcode::G_BITREVERSE*//*Label 108*/ GIMT_Encode4(25739), GIMT_Encode4(0),
4569 /* 1006 */ /*TargetOpcode::G_FCEIL*//*Label 109*/ GIMT_Encode4(25839), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4570 /* 1054 */ /*TargetOpcode::G_FSQRT*//*Label 110*/ GIMT_Encode4(25861),
4571 /* 1058 */ /*TargetOpcode::G_FFLOOR*//*Label 111*/ GIMT_Encode4(25894),
4572 /* 1062 */ /*TargetOpcode::G_FRINT*//*Label 112*/ GIMT_Encode4(25916),
4573 /* 1066 */ /*TargetOpcode::G_FNEARBYINT*//*Label 113*/ GIMT_Encode4(25938), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4574 /* 16462 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE0*//*Label 114*/ GIMT_Encode4(25960),
4575 /* 16466 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE1*//*Label 115*/ GIMT_Encode4(25972),
4576 /* 16470 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE2*//*Label 116*/ GIMT_Encode4(25984),
4577 /* 16474 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE3*//*Label 117*/ GIMT_Encode4(25996),
4578 /* 16478 */ // Label 0: @16478
4579 /* 16478 */ GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(16489), // Rule ID 19 //
4580 /* 16483 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
4581 /* 16486 */ // MIs[0] d
4582 /* 16486 */ // No operand predicates
4583 /* 16486 */ // MIs[0] s
4584 /* 16486 */ // No operand predicates
4585 /* 16486 */ // Combiner Rule #19: copy_prop
4586 /* 16486 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
4587 /* 16489 */ // Label 119: @16489
4588 /* 16489 */ GIM_Reject,
4589 /* 16490 */ // Label 1: @16490
4590 /* 16490 */ GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(16501), // Rule ID 22 //
4591 /* 16495 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
4592 /* 16498 */ // Combiner Rule #22: add_p2i_to_ptradd; wip_match_opcode 'G_ADD'
4593 /* 16498 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
4594 /* 16501 */ // Label 120: @16501
4595 /* 16501 */ GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(16512), // Rule ID 100 //
4596 /* 16506 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
4597 /* 16509 */ // Combiner Rule #84: propagate_undef_any_op; wip_match_opcode 'G_ADD'
4598 /* 16509 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
4599 /* 16512 */ // Label 121: @16512
4600 /* 16512 */ GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(16523), // Rule ID 152 //
4601 /* 16517 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
4602 /* 16520 */ // Combiner Rule #112: simplify_add_to_sub; wip_match_opcode 'G_ADD'
4603 /* 16520 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner53),
4604 /* 16523 */ // Label 122: @16523
4605 /* 16523 */ GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(16534), // Rule ID 256 //
4606 /* 16528 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
4607 /* 16531 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_ADD'
4608 /* 16531 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4609 /* 16534 */ // Label 123: @16534
4610 /* 16534 */ GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(16545), // Rule ID 316 //
4611 /* 16539 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
4612 /* 16542 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_ADD'
4613 /* 16542 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
4614 /* 16545 */ // Label 124: @16545
4615 /* 16545 */ GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(16556), // Rule ID 353 //
4616 /* 16550 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
4617 /* 16553 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_ADD'
4618 /* 16553 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
4619 /* 16556 */ // Label 125: @16556
4620 /* 16556 */ GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(16644), // Rule ID 419 //
4621 /* 16561 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule252Enabled),
4622 /* 16564 */ // MIs[0] dst
4623 /* 16564 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4624 /* 16568 */ // MIs[0] __add_shift_match_0.shl_neg
4625 /* 16568 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4626 /* 16572 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
4627 /* 16576 */ // MIs[1] __add_shift_match_0.neg_y
4628 /* 16576 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4629 /* 16580 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4630 /* 16584 */ // MIs[2] __add_shift_match_0.zero
4631 /* 16584 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
4632 /* 16588 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4633 /* 16592 */ // MIs[3] Operand 1
4634 /* 16592 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
4635 /* 16603 */ // MIs[2] y
4636 /* 16603 */ // No operand predicates
4637 /* 16603 */ // MIs[1] n
4638 /* 16603 */ // No operand predicates
4639 /* 16603 */ // MIs[0] x
4640 /* 16603 */ // No operand predicates
4641 /* 16603 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner18),
4642 /* 16607 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4643 /* 16609 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4644 /* 16612 */ // Combiner Rule #252: add_shift @ [__add_shift_match_0[1]]
4645 /* 16612 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
4646 /* 16615 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4647 /* 16620 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
4648 /* 16624 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
4649 /* 16628 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4650 /* 16632 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4651 /* 16636 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // x
4652 /* 16640 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4653 /* 16643 */ GIR_EraseRootFromParent_Done,
4654 /* 16644 */ // Label 126: @16644
4655 /* 16644 */ GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(16732), // Rule ID 418 //
4656 /* 16649 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule252Enabled),
4657 /* 16652 */ // MIs[0] dst
4658 /* 16652 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4659 /* 16656 */ // MIs[0] x
4660 /* 16656 */ // No operand predicates
4661 /* 16656 */ // MIs[0] __add_shift_match_0.shl_neg
4662 /* 16656 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4663 /* 16660 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
4664 /* 16664 */ // MIs[1] __add_shift_match_0.neg_y
4665 /* 16664 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4666 /* 16668 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4667 /* 16672 */ // MIs[2] __add_shift_match_0.zero
4668 /* 16672 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
4669 /* 16676 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4670 /* 16680 */ // MIs[3] Operand 1
4671 /* 16680 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
4672 /* 16691 */ // MIs[2] y
4673 /* 16691 */ // No operand predicates
4674 /* 16691 */ // MIs[1] n
4675 /* 16691 */ // No operand predicates
4676 /* 16691 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner17),
4677 /* 16695 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4678 /* 16697 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4679 /* 16700 */ // Combiner Rule #252: add_shift @ [__add_shift_match_0[0]]
4680 /* 16700 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
4681 /* 16703 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4682 /* 16708 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
4683 /* 16712 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
4684 /* 16716 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4685 /* 16720 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4686 /* 16724 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // x
4687 /* 16728 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4688 /* 16731 */ GIR_EraseRootFromParent_Done,
4689 /* 16732 */ // Label 127: @16732
4690 /* 16732 */ GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(16766), // Rule ID 2 //
4691 /* 16737 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
4692 /* 16740 */ // MIs[0] root
4693 /* 16740 */ // No operand predicates
4694 /* 16740 */ // MIs[0] sub
4695 /* 16740 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4696 /* 16744 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4697 /* 16748 */ // MIs[1] Operand 1
4698 /* 16748 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
4699 /* 16752 */ // MIs[1] A
4700 /* 16752 */ // No operand predicates
4701 /* 16752 */ // MIs[0] B
4702 /* 16752 */ // No operand predicates
4703 /* 16752 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4704 /* 16754 */ // Combiner Rule #2: ZeroMinusAPlusB
4705 /* 16754 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4706 /* 16757 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4707 /* 16759 */ GIR_RootToRootCopy, /*OpIdx*/2, // B
4708 /* 16761 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // A
4709 /* 16765 */ GIR_EraseRootFromParent_Done,
4710 /* 16766 */ // Label 128: @16766
4711 /* 16766 */ GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(16803), // Rule ID 18 //
4712 /* 16771 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
4713 /* 16774 */ // MIs[0] root
4714 /* 16774 */ // No operand predicates
4715 /* 16774 */ // MIs[0] sub
4716 /* 16774 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4717 /* 16778 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4718 /* 16782 */ // MIs[1] A
4719 /* 16782 */ // No operand predicates
4720 /* 16782 */ // MIs[1] c1
4721 /* 16782 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4722 /* 16786 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4723 /* 16790 */ // MIs[2] imm1
4724 /* 16790 */ // No operand predicates
4725 /* 16790 */ // MIs[0] c2
4726 /* 16790 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4727 /* 16794 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4728 /* 16798 */ // MIs[3] imm2
4729 /* 16798 */ // No operand predicates
4730 /* 16798 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4731 /* 16800 */ // Combiner Rule #18: AMinusC1PlusC2
4732 /* 16800 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
4733 /* 16803 */ // Label 129: @16803
4734 /* 16803 */ GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(16837), // Rule ID 5 //
4735 /* 16808 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
4736 /* 16811 */ // MIs[0] root
4737 /* 16811 */ // No operand predicates
4738 /* 16811 */ // MIs[0] sub
4739 /* 16811 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4740 /* 16815 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4741 /* 16819 */ // MIs[1] B
4742 /* 16819 */ // No operand predicates
4743 /* 16819 */ // MIs[1] A
4744 /* 16819 */ // No operand predicates
4745 /* 16819 */ // MIs[0] A
4746 /* 16819 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
4747 /* 16824 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4748 /* 16829 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4749 /* 16831 */ // Combiner Rule #5: BMinusAPlusA
4750 /* 16831 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4751 /* 16836 */ GIR_EraseRootFromParent_Done,
4752 /* 16837 */ // Label 130: @16837
4753 /* 16837 */ GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(16871), // Rule ID 140 //
4754 /* 16842 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
4755 /* 16845 */ // MIs[0] dst
4756 /* 16845 */ // No operand predicates
4757 /* 16845 */ // MIs[0] __add_sub_reg_match_0.tmp
4758 /* 16845 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4759 /* 16849 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4760 /* 16853 */ // MIs[1] src
4761 /* 16853 */ // No operand predicates
4762 /* 16853 */ // MIs[1] __add_sub_reg_match_0.x
4763 /* 16853 */ // No operand predicates
4764 /* 16853 */ // MIs[0] __add_sub_reg_match_0.x
4765 /* 16853 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
4766 /* 16858 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4767 /* 16863 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4768 /* 16865 */ // Combiner Rule #101: add_sub_reg @ [__add_sub_reg_match_0[1]]
4769 /* 16865 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4770 /* 16870 */ GIR_EraseRootFromParent_Done,
4771 /* 16871 */ // Label 131: @16871
4772 /* 16871 */ GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(16916), // Rule ID 7 //
4773 /* 16876 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
4774 /* 16879 */ // MIs[0] root
4775 /* 16879 */ // No operand predicates
4776 /* 16879 */ // MIs[0] sub1
4777 /* 16879 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4778 /* 16883 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4779 /* 16887 */ // MIs[1] A
4780 /* 16887 */ // No operand predicates
4781 /* 16887 */ // MIs[1] B
4782 /* 16887 */ // No operand predicates
4783 /* 16887 */ // MIs[0] sub2
4784 /* 16887 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4785 /* 16891 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4786 /* 16895 */ // MIs[2] B
4787 /* 16895 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
4788 /* 16900 */ // MIs[2] C
4789 /* 16900 */ // No operand predicates
4790 /* 16900 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4791 /* 16902 */ // Combiner Rule #7: AMinusBPlusBMinusC
4792 /* 16902 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4793 /* 16905 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4794 /* 16907 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
4795 /* 16911 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
4796 /* 16915 */ GIR_EraseRootFromParent_Done,
4797 /* 16916 */ // Label 132: @16916
4798 /* 16916 */ GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(16961), // Rule ID 6 //
4799 /* 16921 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
4800 /* 16924 */ // MIs[0] root
4801 /* 16924 */ // No operand predicates
4802 /* 16924 */ // MIs[0] sub1
4803 /* 16924 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4804 /* 16928 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4805 /* 16932 */ // MIs[1] A
4806 /* 16932 */ // No operand predicates
4807 /* 16932 */ // MIs[1] B
4808 /* 16932 */ // No operand predicates
4809 /* 16932 */ // MIs[0] sub2
4810 /* 16932 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4811 /* 16936 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4812 /* 16940 */ // MIs[2] C
4813 /* 16940 */ // No operand predicates
4814 /* 16940 */ // MIs[2] A
4815 /* 16940 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
4816 /* 16945 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4817 /* 16947 */ // Combiner Rule #6: AMinusBPlusCMinusA
4818 /* 16947 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4819 /* 16950 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4820 /* 16952 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
4821 /* 16956 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
4822 /* 16960 */ GIR_EraseRootFromParent_Done,
4823 /* 16961 */ // Label 133: @16961
4824 /* 16961 */ GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(16996), // Rule ID 45 //
4825 /* 16966 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
4826 /* 16969 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
4827 /* 16975 */ // MIs[0] root
4828 /* 16975 */ // No operand predicates
4829 /* 16975 */ // MIs[0] left
4830 /* 16975 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4831 /* 16979 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
4832 /* 16983 */ // MIs[1] imm1
4833 /* 16983 */ // No operand predicates
4834 /* 16983 */ // MIs[0] right
4835 /* 16983 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4836 /* 16987 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_VSCALE),
4837 /* 16991 */ // MIs[2] imm2
4838 /* 16991 */ // No operand predicates
4839 /* 16991 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4840 /* 16993 */ // Combiner Rule #43: add_of_vscale
4841 /* 16993 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
4842 /* 16996 */ // Label 134: @16996
4843 /* 16996 */ GIM_Try, /*On fail goto*//*Label 135*/ GIMT_Encode4(17030), // Rule ID 3 //
4844 /* 17001 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
4845 /* 17004 */ // MIs[0] root
4846 /* 17004 */ // No operand predicates
4847 /* 17004 */ // MIs[0] A
4848 /* 17004 */ // No operand predicates
4849 /* 17004 */ // MIs[0] sub
4850 /* 17004 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4851 /* 17008 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4852 /* 17012 */ // MIs[1] Operand 1
4853 /* 17012 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
4854 /* 17016 */ // MIs[1] B
4855 /* 17016 */ // No operand predicates
4856 /* 17016 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4857 /* 17018 */ // Combiner Rule #3: APlusZeroMinusB
4858 /* 17018 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4859 /* 17021 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4860 /* 17023 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
4861 /* 17025 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
4862 /* 17029 */ GIR_EraseRootFromParent_Done,
4863 /* 17030 */ // Label 135: @17030
4864 /* 17030 */ GIM_Try, /*On fail goto*//*Label 136*/ GIMT_Encode4(17064), // Rule ID 4 //
4865 /* 17035 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
4866 /* 17038 */ // MIs[0] root
4867 /* 17038 */ // No operand predicates
4868 /* 17038 */ // MIs[0] A
4869 /* 17038 */ // No operand predicates
4870 /* 17038 */ // MIs[0] sub
4871 /* 17038 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4872 /* 17042 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4873 /* 17046 */ // MIs[1] B
4874 /* 17046 */ // No operand predicates
4875 /* 17046 */ // MIs[1] A
4876 /* 17046 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4877 /* 17051 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4878 /* 17056 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4879 /* 17058 */ // Combiner Rule #4: APlusBMinusB
4880 /* 17058 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4881 /* 17063 */ GIR_EraseRootFromParent_Done,
4882 /* 17064 */ // Label 136: @17064
4883 /* 17064 */ GIM_Try, /*On fail goto*//*Label 137*/ GIMT_Encode4(17098), // Rule ID 139 //
4884 /* 17069 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
4885 /* 17072 */ // MIs[0] dst
4886 /* 17072 */ // No operand predicates
4887 /* 17072 */ // MIs[0] __add_sub_reg_match_0.x
4888 /* 17072 */ // No operand predicates
4889 /* 17072 */ // MIs[0] __add_sub_reg_match_0.tmp
4890 /* 17072 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4891 /* 17076 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4892 /* 17080 */ // MIs[1] src
4893 /* 17080 */ // No operand predicates
4894 /* 17080 */ // MIs[1] __add_sub_reg_match_0.x
4895 /* 17080 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4896 /* 17085 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4897 /* 17090 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4898 /* 17092 */ // Combiner Rule #101: add_sub_reg @ [__add_sub_reg_match_0[0]]
4899 /* 17092 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4900 /* 17097 */ GIR_EraseRootFromParent_Done,
4901 /* 17098 */ // Label 137: @17098
4902 /* 17098 */ GIM_Try, /*On fail goto*//*Label 138*/ GIMT_Encode4(17143), // Rule ID 8 //
4903 /* 17103 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
4904 /* 17106 */ // MIs[0] root
4905 /* 17106 */ // No operand predicates
4906 /* 17106 */ // MIs[0] A
4907 /* 17106 */ // No operand predicates
4908 /* 17106 */ // MIs[0] sub1
4909 /* 17106 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4910 /* 17110 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4911 /* 17114 */ // MIs[1] B
4912 /* 17114 */ // No operand predicates
4913 /* 17114 */ // MIs[1] add1
4914 /* 17114 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4915 /* 17118 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4916 /* 17122 */ // MIs[2] A
4917 /* 17122 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
4918 /* 17127 */ // MIs[2] C
4919 /* 17127 */ // No operand predicates
4920 /* 17127 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4921 /* 17129 */ // Combiner Rule #8: APlusBMinusAplusC
4922 /* 17129 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4923 /* 17132 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4924 /* 17134 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
4925 /* 17138 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
4926 /* 17142 */ GIR_EraseRootFromParent_Done,
4927 /* 17143 */ // Label 138: @17143
4928 /* 17143 */ GIM_Try, /*On fail goto*//*Label 139*/ GIMT_Encode4(17188), // Rule ID 10 //
4929 /* 17148 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
4930 /* 17151 */ // MIs[0] root
4931 /* 17151 */ // No operand predicates
4932 /* 17151 */ // MIs[0] A
4933 /* 17151 */ // No operand predicates
4934 /* 17151 */ // MIs[0] sub1
4935 /* 17151 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4936 /* 17155 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4937 /* 17159 */ // MIs[1] B
4938 /* 17159 */ // No operand predicates
4939 /* 17159 */ // MIs[1] add1
4940 /* 17159 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4941 /* 17163 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4942 /* 17167 */ // MIs[2] C
4943 /* 17167 */ // No operand predicates
4944 /* 17167 */ // MIs[2] A
4945 /* 17167 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4946 /* 17172 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4947 /* 17174 */ // Combiner Rule #10: APlusBMinusCPlusA
4948 /* 17174 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4949 /* 17177 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4950 /* 17179 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
4951 /* 17183 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
4952 /* 17187 */ GIR_EraseRootFromParent_Done,
4953 /* 17188 */ // Label 139: @17188
4954 /* 17188 */ GIM_Try, /*On fail goto*//*Label 140*/ GIMT_Encode4(17211), // Rule ID 111 //
4955 /* 17193 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
4956 /* 17196 */ // MIs[0] dst
4957 /* 17196 */ // No operand predicates
4958 /* 17196 */ // MIs[0] lhs
4959 /* 17196 */ // No operand predicates
4960 /* 17196 */ // MIs[0] Operand 2
4961 /* 17196 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4962 /* 17200 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4963 /* 17205 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[1]]
4964 /* 17205 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4965 /* 17210 */ GIR_EraseRootFromParent_Done,
4966 /* 17211 */ // Label 140: @17211
4967 /* 17211 */ GIM_Try, /*On fail goto*//*Label 141*/ GIMT_Encode4(17222), // Rule ID 160 //
4968 /* 17216 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule116Enabled),
4969 /* 17219 */ // MIs[0] root
4970 /* 17219 */ // No operand predicates
4971 /* 17219 */ // MIs[0] src1
4972 /* 17219 */ // No operand predicates
4973 /* 17219 */ // MIs[0] src2
4974 /* 17219 */ // No operand predicates
4975 /* 17219 */ // Combiner Rule #116: reassoc_comm_binops
4976 /* 17219 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner57),
4977 /* 17222 */ // Label 141: @17222
4978 /* 17222 */ GIM_Reject,
4979 /* 17223 */ // Label 2: @17223
4980 /* 17223 */ GIM_Try, /*On fail goto*//*Label 142*/ GIMT_Encode4(17234), // Rule ID 101 //
4981 /* 17228 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
4982 /* 17231 */ // Combiner Rule #84: propagate_undef_any_op; wip_match_opcode 'G_SUB'
4983 /* 17231 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
4984 /* 17234 */ // Label 142: @17234
4985 /* 17234 */ GIM_Try, /*On fail goto*//*Label 143*/ GIMT_Encode4(17245), // Rule ID 264 //
4986 /* 17239 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
4987 /* 17242 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_SUB'
4988 /* 17242 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4989 /* 17245 */ // Label 143: @17245
4990 /* 17245 */ GIM_Try, /*On fail goto*//*Label 144*/ GIMT_Encode4(17256), // Rule ID 317 //
4991 /* 17250 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
4992 /* 17253 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_SUB'
4993 /* 17253 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
4994 /* 17256 */ // Label 144: @17256
4995 /* 17256 */ GIM_Try, /*On fail goto*//*Label 145*/ GIMT_Encode4(17267), // Rule ID 350 //
4996 /* 17261 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
4997 /* 17264 */ // Combiner Rule #213: sub_add_reg; wip_match_opcode 'G_SUB'
4998 /* 17264 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner126),
4999 /* 17267 */ // Label 145: @17267
5000 /* 17267 */ GIM_Try, /*On fail goto*//*Label 146*/ GIMT_Encode4(17278), // Rule ID 388 //
5001 /* 17272 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule224Enabled),
5002 /* 17275 */ // Combiner Rule #224: simplify_neg_minmax; wip_match_opcode 'G_SUB'
5003 /* 17275 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
5004 /* 17278 */ // Label 146: @17278
5005 /* 17278 */ GIM_Try, /*On fail goto*//*Label 147*/ GIMT_Encode4(17355), // Rule ID 420 //
5006 /* 17283 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule253Enabled),
5007 /* 17286 */ // MIs[0] dst
5008 /* 17286 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5009 /* 17290 */ // MIs[0] sub1
5010 /* 17290 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5011 /* 17294 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5012 /* 17298 */ // MIs[1] a
5013 /* 17298 */ // No operand predicates
5014 /* 17298 */ // MIs[1] b
5015 /* 17298 */ // No operand predicates
5016 /* 17298 */ // MIs[0] Operand 2
5017 /* 17298 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
5018 /* 17302 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
5019 /* 17306 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5020 /* 17308 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5021 /* 17311 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
5022 /* 17321 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5023 /* 17324 */ // Combiner Rule #253: sub_one_from_sub
5024 /* 17324 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
5025 /* 17327 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5026 /* 17332 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // b
5027 /* 17336 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5028 /* 17339 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5029 /* 17343 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
5030 /* 17347 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5031 /* 17350 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
5032 /* 17354 */ GIR_EraseRootFromParent_Done,
5033 /* 17355 */ // Label 147: @17355
5034 /* 17355 */ GIM_Try, /*On fail goto*//*Label 148*/ GIMT_Encode4(17449), // Rule ID 426 //
5035 /* 17360 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule257Enabled),
5036 /* 17363 */ // MIs[0] root
5037 /* 17363 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5038 /* 17367 */ // MIs[0] Operand 1
5039 /* 17367 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5040 /* 17371 */ // MIs[0] max
5041 /* 17371 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5042 /* 17375 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SMAX),
5043 /* 17379 */ // MIs[1] A
5044 /* 17379 */ // No operand predicates
5045 /* 17379 */ // MIs[1] sub
5046 /* 17379 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5047 /* 17383 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5048 /* 17387 */ // MIs[2] Operand 1
5049 /* 17387 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/1, 0,
5050 /* 17391 */ // MIs[2] A
5051 /* 17391 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5052 /* 17396 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner19),
5053 /* 17400 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5054 /* 17402 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5055 /* 17405 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5056 /* 17415 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5057 /* 17418 */ // Combiner Rule #257: SubSmaxSub
5058 /* 17418 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5059 /* 17421 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5060 /* 17426 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5061 /* 17429 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5062 /* 17433 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMIN),
5063 /* 17437 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5064 /* 17441 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // A
5065 /* 17445 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5066 /* 17448 */ GIR_EraseRootFromParent_Done,
5067 /* 17449 */ // Label 148: @17449
5068 /* 17449 */ GIM_Try, /*On fail goto*//*Label 149*/ GIMT_Encode4(17543), // Rule ID 427 //
5069 /* 17454 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule258Enabled),
5070 /* 17457 */ // MIs[0] root
5071 /* 17457 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5072 /* 17461 */ // MIs[0] Operand 1
5073 /* 17461 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5074 /* 17465 */ // MIs[0] max
5075 /* 17465 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5076 /* 17469 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMAX),
5077 /* 17473 */ // MIs[1] A
5078 /* 17473 */ // No operand predicates
5079 /* 17473 */ // MIs[1] sub
5080 /* 17473 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5081 /* 17477 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5082 /* 17481 */ // MIs[2] Operand 1
5083 /* 17481 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/1, 0,
5084 /* 17485 */ // MIs[2] A
5085 /* 17485 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5086 /* 17490 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner19),
5087 /* 17494 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5088 /* 17496 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5089 /* 17499 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5090 /* 17509 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5091 /* 17512 */ // Combiner Rule #258: SubUmaxSub
5092 /* 17512 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5093 /* 17515 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5094 /* 17520 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5095 /* 17523 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5096 /* 17527 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMIN),
5097 /* 17531 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5098 /* 17535 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // A
5099 /* 17539 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5100 /* 17542 */ GIR_EraseRootFromParent_Done,
5101 /* 17543 */ // Label 149: @17543
5102 /* 17543 */ GIM_Try, /*On fail goto*//*Label 150*/ GIMT_Encode4(17583), // Rule ID 424 //
5103 /* 17548 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule255Enabled),
5104 /* 17551 */ // MIs[0] root
5105 /* 17551 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5106 /* 17555 */ // MIs[0] Operand 1
5107 /* 17555 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 255,
5108 /* 17559 */ // MIs[0] op1
5109 /* 17559 */ // No operand predicates
5110 /* 17559 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5111 /* 17562 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(18446744073709551615u),
5112 /* 17572 */ // Combiner Rule #255: sub_minus_one
5113 /* 17572 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
5114 /* 17575 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5115 /* 17577 */ GIR_RootToRootCopy, /*OpIdx*/2, // op1
5116 /* 17579 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5117 /* 17582 */ GIR_EraseRootFromParent_Done,
5118 /* 17583 */ // Label 150: @17583
5119 /* 17583 */ GIM_Try, /*On fail goto*//*Label 151*/ GIMT_Encode4(17683), // Rule ID 425 //
5120 /* 17588 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule256Enabled),
5121 /* 17591 */ // MIs[0] d
5122 /* 17591 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5123 /* 17595 */ // MIs[0] a
5124 /* 17595 */ // No operand predicates
5125 /* 17595 */ // MIs[0] mul
5126 /* 17595 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5127 /* 17599 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
5128 /* 17603 */ // MIs[1] x
5129 /* 17603 */ // No operand predicates
5130 /* 17603 */ // MIs[1] c
5131 /* 17603 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5132 /* 17607 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5133 /* 17611 */ // MIs[2] imm
5134 /* 17611 */ // No operand predicates
5135 /* 17611 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
5136 /* 17615 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5137 /* 17617 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
5138 /* 17620 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5139 /* 17623 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5140 /* 17633 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5141 /* 17636 */ // Combiner Rule #256: sub_of_mul_const
5142 /* 17636 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5143 /* 17639 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5144 /* 17644 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5145 /* 17647 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // c
5146 /* 17651 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MUL),
5147 /* 17655 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5148 /* 17660 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
5149 /* 17664 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5150 /* 17667 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5151 /* 17671 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // d
5152 /* 17675 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // a
5153 /* 17679 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5154 /* 17682 */ GIR_EraseRootFromParent_Done,
5155 /* 17683 */ // Label 151: @17683
5156 /* 17683 */ GIM_Try, /*On fail goto*//*Label 152*/ GIMT_Encode4(17744), // Rule ID 9 //
5157 /* 17688 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
5158 /* 17691 */ // MIs[0] root
5159 /* 17691 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5160 /* 17695 */ // MIs[0] A
5161 /* 17695 */ // No operand predicates
5162 /* 17695 */ // MIs[0] sub1
5163 /* 17695 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5164 /* 17699 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5165 /* 17703 */ // MIs[1] B
5166 /* 17703 */ // No operand predicates
5167 /* 17703 */ // MIs[1] C
5168 /* 17703 */ // No operand predicates
5169 /* 17703 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
5170 /* 17707 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5171 /* 17709 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5172 /* 17712 */ // Combiner Rule #9: AMinusBMinusC
5173 /* 17712 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5174 /* 17715 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5175 /* 17720 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // C
5176 /* 17724 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
5177 /* 17728 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5178 /* 17732 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5179 /* 17736 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // A
5180 /* 17740 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5181 /* 17743 */ GIR_EraseRootFromParent_Done,
5182 /* 17744 */ // Label 152: @17744
5183 /* 17744 */ GIM_Try, /*On fail goto*//*Label 153*/ GIMT_Encode4(17789), // Rule ID 0 //
5184 /* 17749 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
5185 /* 17752 */ // MIs[0] root
5186 /* 17752 */ // No operand predicates
5187 /* 17752 */ // MIs[0] add1
5188 /* 17752 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5189 /* 17756 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5190 /* 17760 */ // MIs[1] A
5191 /* 17760 */ // No operand predicates
5192 /* 17760 */ // MIs[1] sub1
5193 /* 17760 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5194 /* 17764 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5195 /* 17768 */ // MIs[2] B
5196 /* 17768 */ // No operand predicates
5197 /* 17768 */ // MIs[2] C
5198 /* 17768 */ // No operand predicates
5199 /* 17768 */ // MIs[0] B
5200 /* 17768 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
5201 /* 17773 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5202 /* 17775 */ // Combiner Rule #0: APlusBMinusCMinusB
5203 /* 17775 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5204 /* 17778 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5205 /* 17780 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5206 /* 17784 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
5207 /* 17788 */ GIR_EraseRootFromParent_Done,
5208 /* 17789 */ // Label 153: @17789
5209 /* 17789 */ GIM_Try, /*On fail goto*//*Label 154*/ GIMT_Encode4(17826), // Rule ID 14 //
5210 /* 17794 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
5211 /* 17797 */ // MIs[0] root
5212 /* 17797 */ // No operand predicates
5213 /* 17797 */ // MIs[0] add
5214 /* 17797 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5215 /* 17801 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5216 /* 17805 */ // MIs[1] A
5217 /* 17805 */ // No operand predicates
5218 /* 17805 */ // MIs[1] c1
5219 /* 17805 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5220 /* 17809 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5221 /* 17813 */ // MIs[2] imm1
5222 /* 17813 */ // No operand predicates
5223 /* 17813 */ // MIs[0] c2
5224 /* 17813 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5225 /* 17817 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5226 /* 17821 */ // MIs[3] imm2
5227 /* 17821 */ // No operand predicates
5228 /* 17821 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5229 /* 17823 */ // Combiner Rule #14: APlusC1MinusC2
5230 /* 17823 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
5231 /* 17826 */ // Label 154: @17826
5232 /* 17826 */ GIM_Try, /*On fail goto*//*Label 155*/ GIMT_Encode4(17863), // Rule ID 17 //
5233 /* 17831 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
5234 /* 17834 */ // MIs[0] root
5235 /* 17834 */ // No operand predicates
5236 /* 17834 */ // MIs[0] sub1
5237 /* 17834 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5238 /* 17838 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5239 /* 17842 */ // MIs[1] c1
5240 /* 17842 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5241 /* 17846 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5242 /* 17850 */ // MIs[2] imm1
5243 /* 17850 */ // No operand predicates
5244 /* 17850 */ // MIs[1] A
5245 /* 17850 */ // No operand predicates
5246 /* 17850 */ // MIs[0] c2
5247 /* 17850 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5248 /* 17854 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5249 /* 17858 */ // MIs[3] imm2
5250 /* 17858 */ // No operand predicates
5251 /* 17858 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5252 /* 17860 */ // Combiner Rule #17: C1Minus2MinusC2
5253 /* 17860 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
5254 /* 17863 */ // Label 155: @17863
5255 /* 17863 */ GIM_Try, /*On fail goto*//*Label 156*/ GIMT_Encode4(17908), // Rule ID 1 //
5256 /* 17868 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
5257 /* 17871 */ // MIs[0] root
5258 /* 17871 */ // No operand predicates
5259 /* 17871 */ // MIs[0] sub2
5260 /* 17871 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5261 /* 17875 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5262 /* 17879 */ // MIs[1] A
5263 /* 17879 */ // No operand predicates
5264 /* 17879 */ // MIs[1] sub1
5265 /* 17879 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5266 /* 17883 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5267 /* 17887 */ // MIs[2] B
5268 /* 17887 */ // No operand predicates
5269 /* 17887 */ // MIs[2] C
5270 /* 17887 */ // No operand predicates
5271 /* 17887 */ // MIs[0] C
5272 /* 17887 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/2,
5273 /* 17892 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5274 /* 17894 */ // Combiner Rule #1: AMinusBMinusCMinusC
5275 /* 17894 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5276 /* 17897 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5277 /* 17899 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5278 /* 17903 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // B
5279 /* 17907 */ GIR_EraseRootFromParent_Done,
5280 /* 17908 */ // Label 156: @17908
5281 /* 17908 */ GIM_Try, /*On fail goto*//*Label 157*/ GIMT_Encode4(17945), // Rule ID 16 //
5282 /* 17913 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
5283 /* 17916 */ // MIs[0] root
5284 /* 17916 */ // No operand predicates
5285 /* 17916 */ // MIs[0] sub1
5286 /* 17916 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5287 /* 17920 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5288 /* 17924 */ // MIs[1] A
5289 /* 17924 */ // No operand predicates
5290 /* 17924 */ // MIs[1] c1
5291 /* 17924 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5292 /* 17928 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5293 /* 17932 */ // MIs[2] imm1
5294 /* 17932 */ // No operand predicates
5295 /* 17932 */ // MIs[0] c2
5296 /* 17932 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5297 /* 17936 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5298 /* 17940 */ // MIs[3] imm2
5299 /* 17940 */ // No operand predicates
5300 /* 17940 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5301 /* 17942 */ // Combiner Rule #16: AMinusC1MinusC2
5302 /* 17942 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
5303 /* 17945 */ // Label 157: @17945
5304 /* 17945 */ GIM_Try, /*On fail goto*//*Label 158*/ GIMT_Encode4(17988), // Rule ID 170 //
5305 /* 17950 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
5306 /* 17953 */ // MIs[0] dst
5307 /* 17953 */ // No operand predicates
5308 /* 17953 */ // MIs[0] Operand 1
5309 /* 17953 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5310 /* 17957 */ // MIs[0] and
5311 /* 17957 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5312 /* 17961 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5313 /* 17965 */ // MIs[1] x
5314 /* 17965 */ // No operand predicates
5315 /* 17965 */ // MIs[1] Operand 2
5316 /* 17965 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
5317 /* 17969 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner11),
5318 /* 17973 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5319 /* 17975 */ // Combiner Rule #126: neg_and_one_to_sext_inreg
5320 /* 17975 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
5321 /* 17978 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5322 /* 17980 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
5323 /* 17984 */ GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
5324 /* 17987 */ GIR_EraseRootFromParent_Done,
5325 /* 17988 */ // Label 158: @17988
5326 /* 17988 */ GIM_Try, /*On fail goto*//*Label 159*/ GIMT_Encode4(18025), // Rule ID 15 //
5327 /* 17993 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
5328 /* 17996 */ // MIs[0] root
5329 /* 17996 */ // No operand predicates
5330 /* 17996 */ // MIs[0] c2
5331 /* 17996 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5332 /* 18000 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5333 /* 18004 */ // MIs[1] imm2
5334 /* 18004 */ // No operand predicates
5335 /* 18004 */ // MIs[0] add
5336 /* 18004 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5337 /* 18008 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
5338 /* 18012 */ // MIs[2] A
5339 /* 18012 */ // No operand predicates
5340 /* 18012 */ // MIs[2] c1
5341 /* 18012 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5342 /* 18016 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5343 /* 18020 */ // MIs[3] imm1
5344 /* 18020 */ // No operand predicates
5345 /* 18020 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5346 /* 18022 */ // Combiner Rule #15: C2MinusAPlusC1
5347 /* 18022 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
5348 /* 18025 */ // Label 159: @18025
5349 /* 18025 */ GIM_Try, /*On fail goto*//*Label 160*/ GIMT_Encode4(18064), // Rule ID 122 //
5350 /* 18030 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
5351 /* 18033 */ // MIs[0] dst
5352 /* 18033 */ // No operand predicates
5353 /* 18033 */ // MIs[0] x
5354 /* 18033 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
5355 /* 18037 */ // MIs[0] x
5356 /* 18037 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5357 /* 18042 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5358 /* 18045 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5359 /* 18055 */ // Combiner Rule #92: same_val_zero @ [__same_val_zero_match_0[0]]
5360 /* 18055 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5361 /* 18058 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5362 /* 18060 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5363 /* 18063 */ GIR_EraseRootFromParent_Done,
5364 /* 18064 */ // Label 160: @18064
5365 /* 18064 */ GIM_Try, /*On fail goto*//*Label 161*/ GIMT_Encode4(18098), // Rule ID 12 //
5366 /* 18069 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
5367 /* 18072 */ // MIs[0] root
5368 /* 18072 */ // No operand predicates
5369 /* 18072 */ // MIs[0] A
5370 /* 18072 */ // No operand predicates
5371 /* 18072 */ // MIs[0] add
5372 /* 18072 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5373 /* 18076 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5374 /* 18080 */ // MIs[1] A
5375 /* 18080 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
5376 /* 18085 */ // MIs[1] B
5377 /* 18085 */ // No operand predicates
5378 /* 18085 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
5379 /* 18090 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5380 /* 18092 */ // Combiner Rule #12: AMinusBMinusA
5381 /* 18092 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
5382 /* 18097 */ GIR_EraseRootFromParent_Done,
5383 /* 18098 */ // Label 161: @18098
5384 /* 18098 */ GIM_Try, /*On fail goto*//*Label 162*/ GIMT_Encode4(18132), // Rule ID 11 //
5385 /* 18103 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
5386 /* 18106 */ // MIs[0] root
5387 /* 18106 */ // No operand predicates
5388 /* 18106 */ // MIs[0] A
5389 /* 18106 */ // No operand predicates
5390 /* 18106 */ // MIs[0] sub1
5391 /* 18106 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5392 /* 18110 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5393 /* 18114 */ // MIs[1] Operand 1
5394 /* 18114 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
5395 /* 18118 */ // MIs[1] B
5396 /* 18118 */ // No operand predicates
5397 /* 18118 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5398 /* 18120 */ // Combiner Rule #11: AMinusZeroMinusB
5399 /* 18120 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5400 /* 18123 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5401 /* 18125 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
5402 /* 18127 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
5403 /* 18131 */ GIR_EraseRootFromParent_Done,
5404 /* 18132 */ // Label 162: @18132
5405 /* 18132 */ GIM_Try, /*On fail goto*//*Label 163*/ GIMT_Encode4(18159), // Rule ID 48 //
5406 /* 18137 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
5407 /* 18140 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
5408 /* 18146 */ // MIs[0] root
5409 /* 18146 */ // No operand predicates
5410 /* 18146 */ // MIs[0] x
5411 /* 18146 */ // No operand predicates
5412 /* 18146 */ // MIs[0] right
5413 /* 18146 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5414 /* 18150 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
5415 /* 18154 */ // MIs[1] imm
5416 /* 18154 */ // No operand predicates
5417 /* 18154 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5418 /* 18156 */ // Combiner Rule #46: sub_of_vscale
5419 /* 18156 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
5420 /* 18159 */ // Label 163: @18159
5421 /* 18159 */ GIM_Try, /*On fail goto*//*Label 164*/ GIMT_Encode4(18182), // Rule ID 110 //
5422 /* 18164 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
5423 /* 18167 */ // MIs[0] dst
5424 /* 18167 */ // No operand predicates
5425 /* 18167 */ // MIs[0] lhs
5426 /* 18167 */ // No operand predicates
5427 /* 18167 */ // MIs[0] Operand 2
5428 /* 18167 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5429 /* 18171 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5430 /* 18176 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[0]]
5431 /* 18176 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5432 /* 18181 */ GIR_EraseRootFromParent_Done,
5433 /* 18182 */ // Label 164: @18182
5434 /* 18182 */ GIM_Try, /*On fail goto*//*Label 165*/ GIMT_Encode4(18203), // Rule ID 21 //
5435 /* 18187 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
5436 /* 18190 */ // MIs[0] d
5437 /* 18190 */ // No operand predicates
5438 /* 18190 */ // MIs[0] op1
5439 /* 18190 */ // No operand predicates
5440 /* 18190 */ // MIs[0] c
5441 /* 18190 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5442 /* 18194 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5443 /* 18198 */ // MIs[1] imm
5444 /* 18198 */ // No operand predicates
5445 /* 18198 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5446 /* 18200 */ // Combiner Rule #21: sub_to_add
5447 /* 18200 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
5448 /* 18203 */ // Label 165: @18203
5449 /* 18203 */ GIM_Reject,
5450 /* 18204 */ // Label 3: @18204
5451 /* 18204 */ GIM_Try, /*On fail goto*//*Label 166*/ GIMT_Encode4(18215), // Rule ID 84 //
5452 /* 18209 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
5453 /* 18212 */ // Combiner Rule #78: undef_to_int_zero; wip_match_opcode 'G_MUL'
5454 /* 18212 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
5455 /* 18215 */ // Label 166: @18215
5456 /* 18215 */ GIM_Try, /*On fail goto*//*Label 167*/ GIMT_Encode4(18226), // Rule ID 261 //
5457 /* 18220 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
5458 /* 18223 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_MUL'
5459 /* 18223 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5460 /* 18226 */ // Label 167: @18226
5461 /* 18226 */ GIM_Try, /*On fail goto*//*Label 168*/ GIMT_Encode4(18237), // Rule ID 354 //
5462 /* 18231 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
5463 /* 18234 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_MUL'
5464 /* 18234 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
5465 /* 18237 */ // Label 168: @18237
5466 /* 18237 */ GIM_Try, /*On fail goto*//*Label 169*/ GIMT_Encode4(18248), // Rule ID 451 //
5467 /* 18242 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule274Enabled),
5468 /* 18245 */ // Combiner Rule #274: smulu64; wip_match_opcode 'G_MUL'
5469 /* 18245 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner169),
5470 /* 18248 */ // Label 169: @18248
5471 /* 18248 */ GIM_Try, /*On fail goto*//*Label 170*/ GIMT_Encode4(18288), // Rule ID 23 //
5472 /* 18253 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
5473 /* 18256 */ // MIs[0] dst
5474 /* 18256 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5475 /* 18260 */ // MIs[0] x
5476 /* 18260 */ // No operand predicates
5477 /* 18260 */ // MIs[0] Operand 2
5478 /* 18260 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
5479 /* 18264 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5480 /* 18267 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5481 /* 18277 */ // Combiner Rule #23: mul_by_neg_one
5482 /* 18277 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5483 /* 18280 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5484 /* 18282 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5485 /* 18285 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
5486 /* 18287 */ GIR_EraseRootFromParent_Done,
5487 /* 18288 */ // Label 170: @18288
5488 /* 18288 */ GIM_Try, /*On fail goto*//*Label 171*/ GIMT_Encode4(18323), // Rule ID 46 //
5489 /* 18293 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
5490 /* 18296 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
5491 /* 18302 */ // MIs[0] root
5492 /* 18302 */ // No operand predicates
5493 /* 18302 */ // MIs[0] left
5494 /* 18302 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5495 /* 18306 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
5496 /* 18310 */ // MIs[1] scale
5497 /* 18310 */ // No operand predicates
5498 /* 18310 */ // MIs[0] x
5499 /* 18310 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5500 /* 18314 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5501 /* 18318 */ // MIs[2] imm1
5502 /* 18318 */ // No operand predicates
5503 /* 18318 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5504 /* 18320 */ // Combiner Rule #44: mul_of_vscale
5505 /* 18320 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
5506 /* 18323 */ // Label 171: @18323
5507 /* 18323 */ GIM_Try, /*On fail goto*//*Label 172*/ GIMT_Encode4(18363), // Rule ID 131 //
5508 /* 18328 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5509 /* 18331 */ // MIs[0] dst
5510 /* 18331 */ // No operand predicates
5511 /* 18331 */ // MIs[0] zero
5512 /* 18331 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5513 /* 18335 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5514 /* 18339 */ // MIs[1] Operand 1
5515 /* 18339 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5516 /* 18350 */ // MIs[0] rhs
5517 /* 18350 */ // No operand predicates
5518 /* 18350 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5519 /* 18355 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5520 /* 18357 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[7]]
5521 /* 18357 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5522 /* 18362 */ GIR_EraseRootFromParent_Done,
5523 /* 18363 */ // Label 172: @18363
5524 /* 18363 */ GIM_Try, /*On fail goto*//*Label 173*/ GIMT_Encode4(18386), // Rule ID 132 //
5525 /* 18368 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
5526 /* 18371 */ // MIs[0] dst
5527 /* 18371 */ // No operand predicates
5528 /* 18371 */ // MIs[0] lhs
5529 /* 18371 */ // No operand predicates
5530 /* 18371 */ // MIs[0] zero
5531 /* 18371 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5532 /* 18375 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5533 /* 18380 */ // Combiner Rule #94: binop_right_to_zero
5534 /* 18380 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5535 /* 18385 */ GIR_EraseRootFromParent_Done,
5536 /* 18386 */ // Label 173: @18386
5537 /* 18386 */ GIM_Try, /*On fail goto*//*Label 174*/ GIMT_Encode4(18409), // Rule ID 137 //
5538 /* 18391 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule99Enabled),
5539 /* 18394 */ // MIs[0] dst
5540 /* 18394 */ // No operand predicates
5541 /* 18394 */ // MIs[0] x
5542 /* 18394 */ // No operand predicates
5543 /* 18394 */ // MIs[0] Operand 2
5544 /* 18394 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
5545 /* 18398 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5546 /* 18403 */ // Combiner Rule #99: right_identity_one_int
5547 /* 18403 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5548 /* 18408 */ GIR_EraseRootFromParent_Done,
5549 /* 18409 */ // Label 174: @18409
5550 /* 18409 */ GIM_Try, /*On fail goto*//*Label 175*/ GIMT_Encode4(18420), // Rule ID 20 //
5551 /* 18414 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
5552 /* 18417 */ // MIs[0] d
5553 /* 18417 */ // No operand predicates
5554 /* 18417 */ // MIs[0] op1
5555 /* 18417 */ // No operand predicates
5556 /* 18417 */ // MIs[0] op2
5557 /* 18417 */ // No operand predicates
5558 /* 18417 */ // Combiner Rule #20: mul_to_shl
5559 /* 18417 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
5560 /* 18420 */ // Label 175: @18420
5561 /* 18420 */ GIM_Reject,
5562 /* 18421 */ // Label 4: @18421
5563 /* 18421 */ GIM_Try, /*On fail goto*//*Label 176*/ GIMT_Encode4(18432), // Rule ID 232 //
5564 /* 18426 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
5565 /* 18429 */ // Combiner Rule #172: div_rem_to_divrem; wip_match_opcode 'G_SDIV'
5566 /* 18429 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
5567 /* 18432 */ // Label 176: @18432
5568 /* 18432 */ GIM_Try, /*On fail goto*//*Label 177*/ GIMT_Encode4(18443), // Rule ID 267 //
5569 /* 18437 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
5570 /* 18440 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_SDIV'
5571 /* 18440 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5572 /* 18443 */ // Label 177: @18443
5573 /* 18443 */ GIM_Try, /*On fail goto*//*Label 178*/ GIMT_Encode4(18454), // Rule ID 322 //
5574 /* 18448 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
5575 /* 18451 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_SDIV'
5576 /* 18451 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
5577 /* 18454 */ // Label 178: @18454
5578 /* 18454 */ GIM_Try, /*On fail goto*//*Label 179*/ GIMT_Encode4(18494), // Rule ID 127 //
5579 /* 18459 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5580 /* 18462 */ // MIs[0] dst
5581 /* 18462 */ // No operand predicates
5582 /* 18462 */ // MIs[0] zero
5583 /* 18462 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5584 /* 18466 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5585 /* 18470 */ // MIs[1] Operand 1
5586 /* 18470 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5587 /* 18481 */ // MIs[0] rhs
5588 /* 18481 */ // No operand predicates
5589 /* 18481 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5590 /* 18486 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5591 /* 18488 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[3]]
5592 /* 18488 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5593 /* 18493 */ GIR_EraseRootFromParent_Done,
5594 /* 18494 */ // Label 179: @18494
5595 /* 18494 */ GIM_Try, /*On fail goto*//*Label 180*/ GIMT_Encode4(18511), // Rule ID 346 //
5596 /* 18499 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
5597 /* 18502 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
5598 /* 18508 */ // MIs[0] dst
5599 /* 18508 */ // No operand predicates
5600 /* 18508 */ // MIs[0] x
5601 /* 18508 */ // No operand predicates
5602 /* 18508 */ // MIs[0] y
5603 /* 18508 */ // No operand predicates
5604 /* 18508 */ // Combiner Rule #209: sdiv_by_pow2
5605 /* 18508 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner124),
5606 /* 18511 */ // Label 180: @18511
5607 /* 18511 */ GIM_Try, /*On fail goto*//*Label 181*/ GIMT_Encode4(18522), // Rule ID 348 //
5608 /* 18516 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
5609 /* 18519 */ // MIs[0] dst
5610 /* 18519 */ // No operand predicates
5611 /* 18519 */ // MIs[0] x
5612 /* 18519 */ // No operand predicates
5613 /* 18519 */ // MIs[0] y
5614 /* 18519 */ // No operand predicates
5615 /* 18519 */ // Combiner Rule #211: sdiv_by_const
5616 /* 18519 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
5617 /* 18522 */ // Label 181: @18522
5618 /* 18522 */ GIM_Reject,
5619 /* 18523 */ // Label 5: @18523
5620 /* 18523 */ GIM_Try, /*On fail goto*//*Label 182*/ GIMT_Encode4(18534), // Rule ID 87 //
5621 /* 18528 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
5622 /* 18531 */ // Combiner Rule #80: binop_left_undef_to_zero; wip_match_opcode 'G_UDIV'
5623 /* 18531 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
5624 /* 18534 */ // Label 182: @18534
5625 /* 18534 */ GIM_Try, /*On fail goto*//*Label 183*/ GIMT_Encode4(18545), // Rule ID 233 //
5626 /* 18539 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
5627 /* 18542 */ // Combiner Rule #172: div_rem_to_divrem; wip_match_opcode 'G_UDIV'
5628 /* 18542 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
5629 /* 18545 */ // Label 183: @18545
5630 /* 18545 */ GIM_Try, /*On fail goto*//*Label 184*/ GIMT_Encode4(18556), // Rule ID 266 //
5631 /* 18550 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
5632 /* 18553 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_UDIV'
5633 /* 18553 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5634 /* 18556 */ // Label 184: @18556
5635 /* 18556 */ GIM_Try, /*On fail goto*//*Label 185*/ GIMT_Encode4(18567), // Rule ID 324 //
5636 /* 18561 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
5637 /* 18564 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_UDIV'
5638 /* 18564 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
5639 /* 18567 */ // Label 185: @18567
5640 /* 18567 */ GIM_Try, /*On fail goto*//*Label 186*/ GIMT_Encode4(18607), // Rule ID 128 //
5641 /* 18572 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5642 /* 18575 */ // MIs[0] dst
5643 /* 18575 */ // No operand predicates
5644 /* 18575 */ // MIs[0] zero
5645 /* 18575 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5646 /* 18579 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5647 /* 18583 */ // MIs[1] Operand 1
5648 /* 18583 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5649 /* 18594 */ // MIs[0] rhs
5650 /* 18594 */ // No operand predicates
5651 /* 18594 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5652 /* 18599 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5653 /* 18601 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[4]]
5654 /* 18601 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5655 /* 18606 */ GIR_EraseRootFromParent_Done,
5656 /* 18607 */ // Label 186: @18607
5657 /* 18607 */ GIM_Try, /*On fail goto*//*Label 187*/ GIMT_Encode4(18624), // Rule ID 345 //
5658 /* 18612 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
5659 /* 18615 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
5660 /* 18621 */ // MIs[0] dst
5661 /* 18621 */ // No operand predicates
5662 /* 18621 */ // MIs[0] x
5663 /* 18621 */ // No operand predicates
5664 /* 18621 */ // MIs[0] y
5665 /* 18621 */ // No operand predicates
5666 /* 18621 */ // Combiner Rule #208: udiv_by_pow2
5667 /* 18621 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
5668 /* 18624 */ // Label 187: @18624
5669 /* 18624 */ GIM_Try, /*On fail goto*//*Label 188*/ GIMT_Encode4(18635), // Rule ID 347 //
5670 /* 18629 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
5671 /* 18632 */ // MIs[0] dst
5672 /* 18632 */ // No operand predicates
5673 /* 18632 */ // MIs[0] x
5674 /* 18632 */ // No operand predicates
5675 /* 18632 */ // MIs[0] y
5676 /* 18632 */ // No operand predicates
5677 /* 18632 */ // Combiner Rule #210: udiv_by_const
5678 /* 18632 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
5679 /* 18635 */ // Label 188: @18635
5680 /* 18635 */ GIM_Reject,
5681 /* 18636 */ // Label 6: @18636
5682 /* 18636 */ GIM_Try, /*On fail goto*//*Label 189*/ GIMT_Encode4(18647), // Rule ID 234 //
5683 /* 18641 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
5684 /* 18644 */ // Combiner Rule #172: div_rem_to_divrem; wip_match_opcode 'G_SREM'
5685 /* 18644 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
5686 /* 18647 */ // Label 189: @18647
5687 /* 18647 */ GIM_Try, /*On fail goto*//*Label 190*/ GIMT_Encode4(18658), // Rule ID 269 //
5688 /* 18652 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
5689 /* 18655 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_SREM'
5690 /* 18655 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5691 /* 18658 */ // Label 190: @18658
5692 /* 18658 */ GIM_Try, /*On fail goto*//*Label 191*/ GIMT_Encode4(18669), // Rule ID 323 //
5693 /* 18663 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
5694 /* 18666 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_SREM'
5695 /* 18666 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
5696 /* 18669 */ // Label 191: @18669
5697 /* 18669 */ GIM_Try, /*On fail goto*//*Label 192*/ GIMT_Encode4(18709), // Rule ID 129 //
5698 /* 18674 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5699 /* 18677 */ // MIs[0] dst
5700 /* 18677 */ // No operand predicates
5701 /* 18677 */ // MIs[0] zero
5702 /* 18677 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5703 /* 18681 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5704 /* 18685 */ // MIs[1] Operand 1
5705 /* 18685 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5706 /* 18696 */ // MIs[0] rhs
5707 /* 18696 */ // No operand predicates
5708 /* 18696 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5709 /* 18701 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5710 /* 18703 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[5]]
5711 /* 18703 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5712 /* 18708 */ GIR_EraseRootFromParent_Done,
5713 /* 18709 */ // Label 192: @18709
5714 /* 18709 */ GIM_Try, /*On fail goto*//*Label 193*/ GIMT_Encode4(18720), // Rule ID 342 //
5715 /* 18714 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule205Enabled),
5716 /* 18717 */ // MIs[0] dst
5717 /* 18717 */ // No operand predicates
5718 /* 18717 */ // MIs[0] x
5719 /* 18717 */ // No operand predicates
5720 /* 18717 */ // MIs[0] y
5721 /* 18717 */ // No operand predicates
5722 /* 18717 */ // Combiner Rule #205: srem_pow2_to_mask
5723 /* 18717 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
5724 /* 18720 */ // Label 193: @18720
5725 /* 18720 */ GIM_Try, /*On fail goto*//*Label 194*/ GIMT_Encode4(18731), // Rule ID 344 //
5726 /* 18725 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
5727 /* 18728 */ // MIs[0] dst
5728 /* 18728 */ // No operand predicates
5729 /* 18728 */ // MIs[0] x
5730 /* 18728 */ // No operand predicates
5731 /* 18728 */ // MIs[0] y
5732 /* 18728 */ // No operand predicates
5733 /* 18728 */ // Combiner Rule #207: srem_by_const
5734 /* 18728 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
5735 /* 18731 */ // Label 194: @18731
5736 /* 18731 */ GIM_Reject,
5737 /* 18732 */ // Label 7: @18732
5738 /* 18732 */ GIM_Try, /*On fail goto*//*Label 195*/ GIMT_Encode4(18743), // Rule ID 88 //
5739 /* 18737 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
5740 /* 18740 */ // Combiner Rule #80: binop_left_undef_to_zero; wip_match_opcode 'G_UREM'
5741 /* 18740 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
5742 /* 18743 */ // Label 195: @18743
5743 /* 18743 */ GIM_Try, /*On fail goto*//*Label 196*/ GIMT_Encode4(18754), // Rule ID 235 //
5744 /* 18748 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
5745 /* 18751 */ // Combiner Rule #172: div_rem_to_divrem; wip_match_opcode 'G_UREM'
5746 /* 18751 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
5747 /* 18754 */ // Label 196: @18754
5748 /* 18754 */ GIM_Try, /*On fail goto*//*Label 197*/ GIMT_Encode4(18765), // Rule ID 268 //
5749 /* 18759 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
5750 /* 18762 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_UREM'
5751 /* 18762 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5752 /* 18765 */ // Label 197: @18765
5753 /* 18765 */ GIM_Try, /*On fail goto*//*Label 198*/ GIMT_Encode4(18776), // Rule ID 325 //
5754 /* 18770 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
5755 /* 18773 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_UREM'
5756 /* 18773 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
5757 /* 18776 */ // Label 198: @18776
5758 /* 18776 */ GIM_Try, /*On fail goto*//*Label 199*/ GIMT_Encode4(18816), // Rule ID 130 //
5759 /* 18781 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5760 /* 18784 */ // MIs[0] dst
5761 /* 18784 */ // No operand predicates
5762 /* 18784 */ // MIs[0] zero
5763 /* 18784 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5764 /* 18788 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5765 /* 18792 */ // MIs[1] Operand 1
5766 /* 18792 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5767 /* 18803 */ // MIs[0] rhs
5768 /* 18803 */ // No operand predicates
5769 /* 18803 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5770 /* 18808 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5771 /* 18810 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[6]]
5772 /* 18810 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5773 /* 18815 */ GIR_EraseRootFromParent_Done,
5774 /* 18816 */ // Label 199: @18816
5775 /* 18816 */ GIM_Try, /*On fail goto*//*Label 200*/ GIMT_Encode4(18827), // Rule ID 183 //
5776 /* 18821 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule139Enabled),
5777 /* 18824 */ // MIs[0] dst
5778 /* 18824 */ // No operand predicates
5779 /* 18824 */ // MIs[0] x
5780 /* 18824 */ // No operand predicates
5781 /* 18824 */ // MIs[0] y
5782 /* 18824 */ // No operand predicates
5783 /* 18824 */ // Combiner Rule #139: urem_pow2_to_mask
5784 /* 18824 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner74),
5785 /* 18827 */ // Label 200: @18827
5786 /* 18827 */ GIM_Try, /*On fail goto*//*Label 201*/ GIMT_Encode4(18838), // Rule ID 343 //
5787 /* 18832 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
5788 /* 18835 */ // MIs[0] dst
5789 /* 18835 */ // No operand predicates
5790 /* 18835 */ // MIs[0] x
5791 /* 18835 */ // No operand predicates
5792 /* 18835 */ // MIs[0] y
5793 /* 18835 */ // No operand predicates
5794 /* 18835 */ // Combiner Rule #206: urem_by_const
5795 /* 18835 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
5796 /* 18838 */ // Label 201: @18838
5797 /* 18838 */ GIM_Reject,
5798 /* 18839 */ // Label 8: @18839
5799 /* 18839 */ GIM_Try, /*On fail goto*//*Label 202*/ GIMT_Encode4(18850), // Rule ID 79 //
5800 /* 18844 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
5801 /* 18847 */ // Combiner Rule #75: load_and_mask; wip_match_opcode 'G_AND'
5802 /* 18847 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
5803 /* 18850 */ // Label 202: @18850
5804 /* 18850 */ GIM_Try, /*On fail goto*//*Label 203*/ GIMT_Encode4(18861), // Rule ID 83 //
5805 /* 18855 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
5806 /* 18858 */ // Combiner Rule #78: undef_to_int_zero; wip_match_opcode 'G_AND'
5807 /* 18858 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
5808 /* 18861 */ // Label 203: @18861
5809 /* 18861 */ GIM_Try, /*On fail goto*//*Label 204*/ GIMT_Encode4(18872), // Rule ID 153 //
5810 /* 18866 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
5811 /* 18869 */ // Combiner Rule #113: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_AND'
5812 /* 18869 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
5813 /* 18872 */ // Label 204: @18872
5814 /* 18872 */ GIM_Try, /*On fail goto*//*Label 205*/ GIMT_Encode4(18883), // Rule ID 173 //
5815 /* 18877 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule129Enabled),
5816 /* 18880 */ // Combiner Rule #129: narrow_binop_feeding_and; wip_match_opcode 'G_AND'
5817 /* 18880 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner67),
5818 /* 18883 */ // Label 205: @18883
5819 /* 18883 */ GIM_Try, /*On fail goto*//*Label 206*/ GIMT_Encode4(18894), // Rule ID 180 //
5820 /* 18888 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled),
5821 /* 18891 */ // Combiner Rule #136: redundant_and; wip_match_opcode 'G_AND'
5822 /* 18891 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner71),
5823 /* 18894 */ // Label 206: @18894
5824 /* 18894 */ GIM_Try, /*On fail goto*//*Label 207*/ GIMT_Encode4(18905), // Rule ID 205 //
5825 /* 18899 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
5826 /* 18902 */ // Combiner Rule #161: overlapping_and; wip_match_opcode 'G_AND'
5827 /* 18902 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
5828 /* 18905 */ // Label 207: @18905
5829 /* 18905 */ GIM_Try, /*On fail goto*//*Label 208*/ GIMT_Encode4(18916), // Rule ID 258 //
5830 /* 18910 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
5831 /* 18913 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_AND'
5832 /* 18913 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5833 /* 18916 */ // Label 208: @18916
5834 /* 18916 */ GIM_Try, /*On fail goto*//*Label 209*/ GIMT_Encode4(18927), // Rule ID 307 //
5835 /* 18921 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
5836 /* 18924 */ // Combiner Rule #195: and_or_disjoint_mask; wip_match_opcode 'G_AND'
5837 /* 18924 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
5838 /* 18927 */ // Label 209: @18927
5839 /* 18927 */ GIM_Try, /*On fail goto*//*Label 210*/ GIMT_Encode4(18938), // Rule ID 319 //
5840 /* 18932 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
5841 /* 18935 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_AND'
5842 /* 18935 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
5843 /* 18938 */ // Label 210: @18938
5844 /* 18938 */ GIM_Try, /*On fail goto*//*Label 211*/ GIMT_Encode4(18949), // Rule ID 355 //
5845 /* 18943 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
5846 /* 18946 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_AND'
5847 /* 18946 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
5848 /* 18949 */ // Label 211: @18949
5849 /* 18949 */ GIM_Try, /*On fail goto*//*Label 212*/ GIMT_Encode4(18960), // Rule ID 382 //
5850 /* 18954 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule218Enabled),
5851 /* 18957 */ // Combiner Rule #218: match_ands; wip_match_opcode 'G_AND'
5852 /* 18957 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
5853 /* 18960 */ // Label 212: @18960
5854 /* 18960 */ GIM_Try, /*On fail goto*//*Label 213*/ GIMT_Encode4(18971), // Rule ID 421 //
5855 /* 18965 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule254Enabled),
5856 /* 18968 */ // Combiner Rule #254: binop_with_neg; wip_match_opcode 'G_AND'
5857 /* 18968 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner158),
5858 /* 18971 */ // Label 213: @18971
5859 /* 18971 */ GIM_Try, /*On fail goto*//*Label 214*/ GIMT_Encode4(19057), // Rule ID 387 //
5860 /* 18976 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule223Enabled),
5861 /* 18979 */ // MIs[0] root
5862 /* 18979 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5863 /* 18983 */ // MIs[0] and
5864 /* 18983 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5865 /* 18987 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
5866 /* 18991 */ // MIs[1] x
5867 /* 18991 */ // No operand predicates
5868 /* 18991 */ // MIs[1] y
5869 /* 18991 */ // No operand predicates
5870 /* 18991 */ // MIs[0] not
5871 /* 18991 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5872 /* 18995 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
5873 /* 18999 */ // MIs[2] y
5874 /* 18999 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
5875 /* 19004 */ // MIs[2] Operand 2
5876 /* 19004 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
5877 /* 19008 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5878 /* 19010 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5879 /* 19013 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
5880 /* 19023 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5881 /* 19026 */ // Combiner Rule #223: and_xor_or_to_xor_and
5882 /* 19026 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
5883 /* 19029 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5884 /* 19034 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
5885 /* 19038 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5886 /* 19041 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
5887 /* 19045 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5888 /* 19049 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
5889 /* 19053 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5890 /* 19056 */ GIR_EraseRootFromParent_Done,
5891 /* 19057 */ // Label 214: @19057
5892 /* 19057 */ GIM_Try, /*On fail goto*//*Label 215*/ GIMT_Encode4(19155), // Rule ID 166 //
5893 /* 19062 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule122Enabled),
5894 /* 19065 */ // MIs[0] root
5895 /* 19065 */ // No operand predicates
5896 /* 19065 */ // MIs[0] d1
5897 /* 19065 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5898 /* 19069 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
5899 /* 19073 */ // MIs[1] p
5900 /* 19073 */ // No operand predicates
5901 /* 19073 */ // MIs[1] s1
5902 /* 19073 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
5903 /* 19077 */ // MIs[1] Operand 3
5904 /* 19077 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
5905 /* 19081 */ // MIs[0] d2
5906 /* 19081 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5907 /* 19085 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
5908 /* 19089 */ // MIs[2] p
5909 /* 19089 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
5910 /* 19094 */ // MIs[2] s2
5911 /* 19094 */ // No operand predicates
5912 /* 19094 */ // MIs[2] Operand 3
5913 /* 19094 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
5914 /* 19098 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
5915 /* 19102 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5916 /* 19104 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5917 /* 19107 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5918 /* 19117 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5919 /* 19120 */ // Combiner Rule #122: double_icmp_zero_and_combine
5920 /* 19120 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5921 /* 19123 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5922 /* 19128 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
5923 /* 19132 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
5924 /* 19136 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
5925 /* 19140 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5926 /* 19144 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
5927 /* 19148 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5928 /* 19151 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
5929 /* 19154 */ GIR_EraseRootFromParent_Done,
5930 /* 19155 */ // Label 215: @19155
5931 /* 19155 */ GIM_Try, /*On fail goto*//*Label 216*/ GIMT_Encode4(19192), // Rule ID 251 //
5932 /* 19160 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
5933 /* 19163 */ // MIs[0] root
5934 /* 19163 */ // No operand predicates
5935 /* 19163 */ // MIs[0] shift
5936 /* 19163 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5937 /* 19167 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
5938 /* 19171 */ // MIs[1] x
5939 /* 19171 */ // No operand predicates
5940 /* 19171 */ // MIs[1] lsb
5941 /* 19171 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5942 /* 19175 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5943 /* 19179 */ // MIs[2] imm1
5944 /* 19179 */ // No operand predicates
5945 /* 19179 */ // MIs[0] mask
5946 /* 19179 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5947 /* 19183 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5948 /* 19187 */ // MIs[3] imm2
5949 /* 19187 */ // No operand predicates
5950 /* 19187 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5951 /* 19189 */ // Combiner Rule #184: bitfield_extract_from_and
5952 /* 19189 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner100),
5953 /* 19192 */ // Label 216: @19192
5954 /* 19192 */ GIM_Try, /*On fail goto*//*Label 217*/ GIMT_Encode4(19241), // Rule ID 386 //
5955 /* 19197 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule222Enabled),
5956 /* 19200 */ // MIs[0] root
5957 /* 19200 */ // No operand predicates
5958 /* 19200 */ // MIs[0] or
5959 /* 19200 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5960 /* 19204 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
5961 /* 19208 */ // MIs[1] x
5962 /* 19208 */ // No operand predicates
5963 /* 19208 */ // MIs[1] not
5964 /* 19208 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5965 /* 19212 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
5966 /* 19216 */ // MIs[2] y
5967 /* 19216 */ // No operand predicates
5968 /* 19216 */ // MIs[2] Operand 2
5969 /* 19216 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
5970 /* 19220 */ // MIs[0] y
5971 /* 19220 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
5972 /* 19225 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5973 /* 19227 */ // Combiner Rule #222: and_xor_or_to_and
5974 /* 19227 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
5975 /* 19230 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5976 /* 19232 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
5977 /* 19236 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
5978 /* 19240 */ GIR_EraseRootFromParent_Done,
5979 /* 19241 */ // Label 217: @19241
5980 /* 19241 */ GIM_Try, /*On fail goto*//*Label 218*/ GIMT_Encode4(19355), // Rule ID 453 //
5981 /* 19246 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule276Enabled),
5982 /* 19249 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
5983 /* 19252 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
5984 /* 19255 */ // MIs[0] dst
5985 /* 19255 */ // No operand predicates
5986 /* 19255 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner24),
5987 /* 19259 */ GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_s32,
5988 /* 19262 */ GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_s32,
5989 /* 19265 */ GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_s32,
5990 /* 19268 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
5991 /* 19271 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
5992 /* 19274 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
5993 /* 19277 */ // Combiner Rule #276: combine_and_s64_with_s32_mask
5994 /* 19277 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5995 /* 19280 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5996 /* 19285 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5997 /* 19290 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
5998 /* 19292 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5999 /* 19296 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6000 /* 19301 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6001 /* 19306 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
6002 /* 19310 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6003 /* 19314 */ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6004 /* 19319 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
6005 /* 19322 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
6006 /* 19325 */ GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6007 /* 19329 */ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6008 /* 19334 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
6009 /* 19337 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
6010 /* 19340 */ GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
6011 /* 19344 */ GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
6012 /* 19348 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
6013 /* 19351 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
6014 /* 19354 */ GIR_EraseRootFromParent_Done,
6015 /* 19355 */ // Label 218: @19355
6016 /* 19355 */ GIM_Try, /*On fail goto*//*Label 219*/ GIMT_Encode4(19379), // Rule ID 120 //
6017 /* 19360 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
6018 /* 19363 */ // MIs[0] dst
6019 /* 19363 */ // No operand predicates
6020 /* 19363 */ // MIs[0] src
6021 /* 19363 */ // No operand predicates
6022 /* 19363 */ // MIs[0] src
6023 /* 19363 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6024 /* 19368 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6025 /* 19373 */ // Combiner Rule #91: binop_same_val @ [__binop_same_val_match_0[0]]
6026 /* 19373 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6027 /* 19378 */ GIR_EraseRootFromParent_Done,
6028 /* 19379 */ // Label 219: @19379
6029 /* 19379 */ GIM_Reject,
6030 /* 19380 */ // Label 9: @19380
6031 /* 19380 */ GIM_Try, /*On fail goto*//*Label 220*/ GIMT_Encode4(19391), // Rule ID 85 //
6032 /* 19385 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
6033 /* 19388 */ // Combiner Rule #79: undef_to_negative_one; wip_match_opcode 'G_OR'
6034 /* 19388 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
6035 /* 19391 */ // Label 220: @19391
6036 /* 19391 */ GIM_Try, /*On fail goto*//*Label 221*/ GIMT_Encode4(19402), // Rule ID 154 //
6037 /* 19396 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
6038 /* 19399 */ // Combiner Rule #113: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_OR'
6039 /* 19399 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
6040 /* 19402 */ // Label 221: @19402
6041 /* 19402 */ GIM_Try, /*On fail goto*//*Label 222*/ GIMT_Encode4(19413), // Rule ID 182 //
6042 /* 19407 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule138Enabled),
6043 /* 19410 */ // Combiner Rule #138: redundant_or; wip_match_opcode 'G_OR'
6044 /* 19410 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner73),
6045 /* 19413 */ // Label 222: @19413
6046 /* 19413 */ GIM_Try, /*On fail goto*//*Label 223*/ GIMT_Encode4(19424), // Rule ID 231 //
6047 /* 19418 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
6048 /* 19421 */ // Combiner Rule #171: load_or_combine; wip_match_opcode 'G_OR'
6049 /* 19421 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
6050 /* 19424 */ // Label 223: @19424
6051 /* 19424 */ GIM_Try, /*On fail goto*//*Label 224*/ GIMT_Encode4(19435), // Rule ID 236 //
6052 /* 19429 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
6053 /* 19432 */ // Combiner Rule #173: funnel_shift_from_or_shift; wip_match_opcode 'G_OR'
6054 /* 19432 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
6055 /* 19435 */ // Label 224: @19435
6056 /* 19435 */ GIM_Try, /*On fail goto*//*Label 225*/ GIMT_Encode4(19446), // Rule ID 262 //
6057 /* 19440 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
6058 /* 19443 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_OR'
6059 /* 19443 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
6060 /* 19446 */ // Label 225: @19446
6061 /* 19446 */ GIM_Try, /*On fail goto*//*Label 226*/ GIMT_Encode4(19457), // Rule ID 320 //
6062 /* 19451 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
6063 /* 19454 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_OR'
6064 /* 19454 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
6065 /* 19457 */ // Label 226: @19457
6066 /* 19457 */ GIM_Try, /*On fail goto*//*Label 227*/ GIMT_Encode4(19468), // Rule ID 356 //
6067 /* 19462 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
6068 /* 19465 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_OR'
6069 /* 19465 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
6070 /* 19468 */ // Label 227: @19468
6071 /* 19468 */ GIM_Try, /*On fail goto*//*Label 228*/ GIMT_Encode4(19479), // Rule ID 383 //
6072 /* 19473 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule219Enabled),
6073 /* 19476 */ // Combiner Rule #219: match_ors; wip_match_opcode 'G_OR'
6074 /* 19476 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132),
6075 /* 19479 */ // Label 228: @19479
6076 /* 19479 */ GIM_Try, /*On fail goto*//*Label 229*/ GIMT_Encode4(19490), // Rule ID 422 //
6077 /* 19484 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule254Enabled),
6078 /* 19487 */ // Combiner Rule #254: binop_with_neg; wip_match_opcode 'G_OR'
6079 /* 19487 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner158),
6080 /* 19490 */ // Label 229: @19490
6081 /* 19490 */ GIM_Try, /*On fail goto*//*Label 230*/ GIMT_Encode4(19576), // Rule ID 385 //
6082 /* 19495 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
6083 /* 19498 */ // MIs[0] root
6084 /* 19498 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
6085 /* 19502 */ // MIs[0] and
6086 /* 19502 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6087 /* 19506 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6088 /* 19510 */ // MIs[1] x
6089 /* 19510 */ // No operand predicates
6090 /* 19510 */ // MIs[1] y
6091 /* 19510 */ // No operand predicates
6092 /* 19510 */ // MIs[0] not
6093 /* 19510 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6094 /* 19514 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6095 /* 19518 */ // MIs[2] y
6096 /* 19518 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
6097 /* 19523 */ // MIs[2] Operand 2
6098 /* 19523 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6099 /* 19527 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6100 /* 19529 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6101 /* 19532 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
6102 /* 19542 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6103 /* 19545 */ // Combiner Rule #221: or_and_xor_to_xor_or
6104 /* 19545 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
6105 /* 19548 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6106 /* 19553 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
6107 /* 19557 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
6108 /* 19560 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6109 /* 19564 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6110 /* 19568 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
6111 /* 19572 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6112 /* 19575 */ GIR_EraseRootFromParent_Done,
6113 /* 19576 */ // Label 230: @19576
6114 /* 19576 */ GIM_Try, /*On fail goto*//*Label 231*/ GIMT_Encode4(19663), // Rule ID 455 //
6115 /* 19581 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule277Enabled),
6116 /* 19584 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
6117 /* 19587 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
6118 /* 19590 */ // MIs[0] dst
6119 /* 19590 */ // No operand predicates
6120 /* 19590 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6121 /* 19594 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6122 /* 19598 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6123 /* 19602 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
6124 /* 19606 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6125 /* 19608 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
6126 /* 19611 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6127 /* 19614 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6128 /* 19617 */ // Combiner Rule #277: combine_or_s64_s32 @ [dst[1]]
6129 /* 19617 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6130 /* 19620 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6131 /* 19625 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6132 /* 19630 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
6133 /* 19632 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6134 /* 19636 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6135 /* 19641 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6136 /* 19644 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
6137 /* 19648 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
6138 /* 19652 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
6139 /* 19656 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
6140 /* 19659 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
6141 /* 19662 */ GIR_EraseRootFromParent_Done,
6142 /* 19663 */ // Label 231: @19663
6143 /* 19663 */ GIM_Try, /*On fail goto*//*Label 232*/ GIMT_Encode4(19710), // Rule ID 243 //
6144 /* 19668 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
6145 /* 19671 */ // MIs[0] root
6146 /* 19671 */ // No operand predicates
6147 /* 19671 */ // MIs[0] out1
6148 /* 19671 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6149 /* 19675 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHL),
6150 /* 19679 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6151 /* 19679 */ // No operand predicates
6152 /* 19679 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
6153 /* 19679 */ // No operand predicates
6154 /* 19679 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6155 /* 19679 */ // No operand predicates
6156 /* 19679 */ // MIs[0] out2
6157 /* 19679 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6158 /* 19683 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SHL),
6159 /* 19687 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6160 /* 19687 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6161 /* 19692 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6162 /* 19692 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
6163 /* 19697 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6164 /* 19702 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6165 /* 19704 */ // Combiner Rule #178: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[0]]
6166 /* 19704 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6167 /* 19709 */ GIR_EraseRootFromParent_Done,
6168 /* 19710 */ // Label 232: @19710
6169 /* 19710 */ GIM_Try, /*On fail goto*//*Label 233*/ GIMT_Encode4(19757), // Rule ID 245 //
6170 /* 19715 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
6171 /* 19718 */ // MIs[0] root
6172 /* 19718 */ // No operand predicates
6173 /* 19718 */ // MIs[0] out1
6174 /* 19718 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6175 /* 19722 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHR),
6176 /* 19726 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
6177 /* 19726 */ // No operand predicates
6178 /* 19726 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6179 /* 19726 */ // No operand predicates
6180 /* 19726 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6181 /* 19726 */ // No operand predicates
6182 /* 19726 */ // MIs[0] out2
6183 /* 19726 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6184 /* 19730 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
6185 /* 19734 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6186 /* 19734 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
6187 /* 19739 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6188 /* 19739 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
6189 /* 19744 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6190 /* 19749 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6191 /* 19751 */ // Combiner Rule #179: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[0]]
6192 /* 19751 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6193 /* 19756 */ GIR_EraseRootFromParent_Done,
6194 /* 19757 */ // Label 233: @19757
6195 /* 19757 */ GIM_Try, /*On fail goto*//*Label 234*/ GIMT_Encode4(19855), // Rule ID 167 //
6196 /* 19762 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule123Enabled),
6197 /* 19765 */ // MIs[0] root
6198 /* 19765 */ // No operand predicates
6199 /* 19765 */ // MIs[0] d1
6200 /* 19765 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6201 /* 19769 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
6202 /* 19773 */ // MIs[1] p
6203 /* 19773 */ // No operand predicates
6204 /* 19773 */ // MIs[1] s1
6205 /* 19773 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
6206 /* 19777 */ // MIs[1] Operand 3
6207 /* 19777 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
6208 /* 19781 */ // MIs[0] d2
6209 /* 19781 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6210 /* 19785 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
6211 /* 19789 */ // MIs[2] p
6212 /* 19789 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6213 /* 19794 */ // MIs[2] s2
6214 /* 19794 */ // No operand predicates
6215 /* 19794 */ // MIs[2] Operand 3
6216 /* 19794 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
6217 /* 19798 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
6218 /* 19802 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6219 /* 19804 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6220 /* 19807 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
6221 /* 19817 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6222 /* 19820 */ // Combiner Rule #123: double_icmp_zero_or_combine
6223 /* 19820 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6224 /* 19823 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6225 /* 19828 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
6226 /* 19832 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
6227 /* 19836 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
6228 /* 19840 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6229 /* 19844 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
6230 /* 19848 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6231 /* 19851 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
6232 /* 19854 */ GIR_EraseRootFromParent_Done,
6233 /* 19855 */ // Label 234: @19855
6234 /* 19855 */ GIM_Try, /*On fail goto*//*Label 235*/ GIMT_Encode4(19904), // Rule ID 384 //
6235 /* 19860 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
6236 /* 19863 */ // MIs[0] root
6237 /* 19863 */ // No operand predicates
6238 /* 19863 */ // MIs[0] and
6239 /* 19863 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6240 /* 19867 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6241 /* 19871 */ // MIs[1] x
6242 /* 19871 */ // No operand predicates
6243 /* 19871 */ // MIs[1] not
6244 /* 19871 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6245 /* 19875 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6246 /* 19879 */ // MIs[2] y
6247 /* 19879 */ // No operand predicates
6248 /* 19879 */ // MIs[2] Operand 2
6249 /* 19879 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6250 /* 19883 */ // MIs[0] y
6251 /* 19883 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
6252 /* 19888 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6253 /* 19890 */ // Combiner Rule #220: or_and_xor_to_or
6254 /* 19890 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6255 /* 19893 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6256 /* 19895 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6257 /* 19899 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
6258 /* 19903 */ GIR_EraseRootFromParent_Done,
6259 /* 19904 */ // Label 235: @19904
6260 /* 19904 */ GIM_Try, /*On fail goto*//*Label 236*/ GIMT_Encode4(19938), // Rule ID 432 //
6261 /* 19909 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule263Enabled),
6262 /* 19912 */ // MIs[0] dst
6263 /* 19912 */ // No operand predicates
6264 /* 19912 */ // MIs[0] __combine_or_of_and_match_0.and
6265 /* 19912 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6266 /* 19916 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6267 /* 19920 */ // MIs[1] x
6268 /* 19920 */ // No operand predicates
6269 /* 19920 */ // MIs[1] y
6270 /* 19920 */ // No operand predicates
6271 /* 19920 */ // MIs[0] x
6272 /* 19920 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
6273 /* 19925 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
6274 /* 19930 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6275 /* 19932 */ // Combiner Rule #263: combine_or_of_and @ [__combine_or_of_and_match_0[0]]
6276 /* 19932 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
6277 /* 19937 */ GIR_EraseRootFromParent_Done,
6278 /* 19938 */ // Label 236: @19938
6279 /* 19938 */ GIM_Try, /*On fail goto*//*Label 237*/ GIMT_Encode4(19972), // Rule ID 433 //
6280 /* 19943 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule263Enabled),
6281 /* 19946 */ // MIs[0] dst
6282 /* 19946 */ // No operand predicates
6283 /* 19946 */ // MIs[0] __combine_or_of_and_match_0.and
6284 /* 19946 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6285 /* 19950 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6286 /* 19954 */ // MIs[1] y
6287 /* 19954 */ // No operand predicates
6288 /* 19954 */ // MIs[1] x
6289 /* 19954 */ // No operand predicates
6290 /* 19954 */ // MIs[0] x
6291 /* 19954 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
6292 /* 19959 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6293 /* 19964 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6294 /* 19966 */ // Combiner Rule #263: combine_or_of_and @ [__combine_or_of_and_match_0[1]]
6295 /* 19966 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6296 /* 19971 */ GIR_EraseRootFromParent_Done,
6297 /* 19972 */ // Label 237: @19972
6298 /* 19972 */ GIM_Try, /*On fail goto*//*Label 238*/ GIMT_Encode4(20019), // Rule ID 246 //
6299 /* 19977 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
6300 /* 19980 */ // MIs[0] root
6301 /* 19980 */ // No operand predicates
6302 /* 19980 */ // MIs[0] out2
6303 /* 19980 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6304 /* 19984 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
6305 /* 19988 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6306 /* 19988 */ // No operand predicates
6307 /* 19988 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6308 /* 19988 */ // No operand predicates
6309 /* 19988 */ // MIs[0] out1
6310 /* 19988 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6311 /* 19992 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHR),
6312 /* 19996 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
6313 /* 19996 */ // No operand predicates
6314 /* 19996 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6315 /* 19996 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
6316 /* 20001 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6317 /* 20001 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
6318 /* 20006 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6319 /* 20011 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6320 /* 20013 */ // Combiner Rule #179: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[1]]
6321 /* 20013 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6322 /* 20018 */ GIR_EraseRootFromParent_Done,
6323 /* 20019 */ // Label 238: @20019
6324 /* 20019 */ GIM_Try, /*On fail goto*//*Label 239*/ GIMT_Encode4(20066), // Rule ID 244 //
6325 /* 20024 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
6326 /* 20027 */ // MIs[0] root
6327 /* 20027 */ // No operand predicates
6328 /* 20027 */ // MIs[0] out2
6329 /* 20027 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6330 /* 20031 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
6331 /* 20035 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6332 /* 20035 */ // No operand predicates
6333 /* 20035 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6334 /* 20035 */ // No operand predicates
6335 /* 20035 */ // MIs[0] out1
6336 /* 20035 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6337 /* 20039 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHL),
6338 /* 20043 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6339 /* 20043 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6340 /* 20048 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
6341 /* 20048 */ // No operand predicates
6342 /* 20048 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6343 /* 20048 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
6344 /* 20053 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6345 /* 20058 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6346 /* 20060 */ // Combiner Rule #178: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[1]]
6347 /* 20060 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6348 /* 20065 */ GIR_EraseRootFromParent_Done,
6349 /* 20066 */ // Label 239: @20066
6350 /* 20066 */ GIM_Try, /*On fail goto*//*Label 240*/ GIMT_Encode4(20267),
6351 /* 20071 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
6352 /* 20074 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
6353 /* 20077 */ GIM_Try, /*On fail goto*//*Label 241*/ GIMT_Encode4(20158), // Rule ID 454 //
6354 /* 20082 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule277Enabled),
6355 /* 20085 */ // MIs[0] dst
6356 /* 20085 */ // No operand predicates
6357 /* 20085 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6358 /* 20089 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6359 /* 20093 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
6360 /* 20097 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
6361 /* 20101 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6362 /* 20103 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
6363 /* 20106 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6364 /* 20109 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6365 /* 20112 */ // Combiner Rule #277: combine_or_s64_s32 @ [dst[0]]
6366 /* 20112 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6367 /* 20115 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6368 /* 20120 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6369 /* 20125 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
6370 /* 20127 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6371 /* 20131 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6372 /* 20136 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6373 /* 20139 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
6374 /* 20143 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
6375 /* 20147 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
6376 /* 20151 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
6377 /* 20154 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
6378 /* 20157 */ GIR_EraseRootFromParent_Done,
6379 /* 20158 */ // Label 241: @20158
6380 /* 20158 */ GIM_Try, /*On fail goto*//*Label 242*/ GIMT_Encode4(20266), // Rule ID 452 //
6381 /* 20163 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule275Enabled),
6382 /* 20166 */ // MIs[0] dst
6383 /* 20166 */ // No operand predicates
6384 /* 20166 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner24),
6385 /* 20170 */ GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_s32,
6386 /* 20173 */ GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_s32,
6387 /* 20176 */ GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_s32,
6388 /* 20179 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
6389 /* 20182 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
6390 /* 20185 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
6391 /* 20188 */ // Combiner Rule #275: combine_or_s64_with_s32_mask
6392 /* 20188 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6393 /* 20191 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6394 /* 20196 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6395 /* 20201 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
6396 /* 20203 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6397 /* 20207 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6398 /* 20212 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6399 /* 20217 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
6400 /* 20221 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6401 /* 20225 */ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6402 /* 20230 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
6403 /* 20233 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
6404 /* 20236 */ GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6405 /* 20240 */ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6406 /* 20245 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
6407 /* 20248 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
6408 /* 20251 */ GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
6409 /* 20255 */ GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
6410 /* 20259 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
6411 /* 20262 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
6412 /* 20265 */ GIR_EraseRootFromParent_Done,
6413 /* 20266 */ // Label 242: @20266
6414 /* 20266 */ GIM_Reject,
6415 /* 20267 */ // Label 240: @20267
6416 /* 20267 */ GIM_Try, /*On fail goto*//*Label 243*/ GIMT_Encode4(20291), // Rule ID 121 //
6417 /* 20272 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
6418 /* 20275 */ // MIs[0] dst
6419 /* 20275 */ // No operand predicates
6420 /* 20275 */ // MIs[0] src
6421 /* 20275 */ // No operand predicates
6422 /* 20275 */ // MIs[0] src
6423 /* 20275 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6424 /* 20280 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6425 /* 20285 */ // Combiner Rule #91: binop_same_val @ [__binop_same_val_match_0[1]]
6426 /* 20285 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6427 /* 20290 */ GIR_EraseRootFromParent_Done,
6428 /* 20291 */ // Label 243: @20291
6429 /* 20291 */ GIM_Try, /*On fail goto*//*Label 244*/ GIMT_Encode4(20325), // Rule ID 434 //
6430 /* 20296 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule263Enabled),
6431 /* 20299 */ // MIs[0] dst
6432 /* 20299 */ // No operand predicates
6433 /* 20299 */ // MIs[0] x
6434 /* 20299 */ // No operand predicates
6435 /* 20299 */ // MIs[0] __combine_or_of_and_match_0.and
6436 /* 20299 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6437 /* 20303 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6438 /* 20307 */ // MIs[1] x
6439 /* 20307 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
6440 /* 20312 */ // MIs[1] y
6441 /* 20312 */ // No operand predicates
6442 /* 20312 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6443 /* 20317 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6444 /* 20319 */ // Combiner Rule #263: combine_or_of_and @ [__combine_or_of_and_match_0[2]]
6445 /* 20319 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6446 /* 20324 */ GIR_EraseRootFromParent_Done,
6447 /* 20325 */ // Label 244: @20325
6448 /* 20325 */ GIM_Try, /*On fail goto*//*Label 245*/ GIMT_Encode4(20359), // Rule ID 435 //
6449 /* 20330 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule263Enabled),
6450 /* 20333 */ // MIs[0] dst
6451 /* 20333 */ // No operand predicates
6452 /* 20333 */ // MIs[0] x
6453 /* 20333 */ // No operand predicates
6454 /* 20333 */ // MIs[0] __combine_or_of_and_match_0.and
6455 /* 20333 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6456 /* 20337 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6457 /* 20341 */ // MIs[1] y
6458 /* 20341 */ // No operand predicates
6459 /* 20341 */ // MIs[1] x
6460 /* 20341 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6461 /* 20346 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6462 /* 20351 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6463 /* 20353 */ // Combiner Rule #263: combine_or_of_and @ [__combine_or_of_and_match_0[3]]
6464 /* 20353 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6465 /* 20358 */ GIR_EraseRootFromParent_Done,
6466 /* 20359 */ // Label 245: @20359
6467 /* 20359 */ GIM_Try, /*On fail goto*//*Label 246*/ GIMT_Encode4(20382), // Rule ID 112 //
6468 /* 20364 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
6469 /* 20367 */ // MIs[0] dst
6470 /* 20367 */ // No operand predicates
6471 /* 20367 */ // MIs[0] lhs
6472 /* 20367 */ // No operand predicates
6473 /* 20367 */ // MIs[0] Operand 2
6474 /* 20367 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6475 /* 20371 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6476 /* 20376 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[2]]
6477 /* 20376 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6478 /* 20381 */ GIR_EraseRootFromParent_Done,
6479 /* 20382 */ // Label 246: @20382
6480 /* 20382 */ GIM_Reject,
6481 /* 20383 */ // Label 10: @20383
6482 /* 20383 */ GIM_Try, /*On fail goto*//*Label 247*/ GIMT_Encode4(20394), // Rule ID 102 //
6483 /* 20388 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
6484 /* 20391 */ // Combiner Rule #84: propagate_undef_any_op; wip_match_opcode 'G_XOR'
6485 /* 20391 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
6486 /* 20394 */ // Label 247: @20394
6487 /* 20394 */ GIM_Try, /*On fail goto*//*Label 248*/ GIMT_Encode4(20405), // Rule ID 155 //
6488 /* 20399 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
6489 /* 20402 */ // Combiner Rule #113: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_XOR'
6490 /* 20402 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
6491 /* 20405 */ // Label 248: @20405
6492 /* 20405 */ GIM_Try, /*On fail goto*//*Label 249*/ GIMT_Encode4(20416), // Rule ID 187 //
6493 /* 20410 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule143Enabled),
6494 /* 20413 */ // Combiner Rule #143: not_cmp_fold; wip_match_opcode 'G_XOR'
6495 /* 20413 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
6496 /* 20416 */ // Label 249: @20416
6497 /* 20416 */ GIM_Try, /*On fail goto*//*Label 250*/ GIMT_Encode4(20427), // Rule ID 219 //
6498 /* 20421 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
6499 /* 20424 */ // Combiner Rule #167: xor_of_and_with_same_reg; wip_match_opcode 'G_XOR'
6500 /* 20424 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner89),
6501 /* 20427 */ // Label 250: @20427
6502 /* 20427 */ GIM_Try, /*On fail goto*//*Label 251*/ GIMT_Encode4(20438), // Rule ID 265 //
6503 /* 20432 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
6504 /* 20435 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_XOR'
6505 /* 20435 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
6506 /* 20438 */ // Label 251: @20438
6507 /* 20438 */ GIM_Try, /*On fail goto*//*Label 252*/ GIMT_Encode4(20449), // Rule ID 321 //
6508 /* 20443 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
6509 /* 20446 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_XOR'
6510 /* 20446 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
6511 /* 20449 */ // Label 252: @20449
6512 /* 20449 */ GIM_Try, /*On fail goto*//*Label 253*/ GIMT_Encode4(20460), // Rule ID 357 //
6513 /* 20454 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
6514 /* 20457 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_XOR'
6515 /* 20457 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
6516 /* 20460 */ // Label 253: @20460
6517 /* 20460 */ GIM_Try, /*On fail goto*//*Label 254*/ GIMT_Encode4(20471), // Rule ID 423 //
6518 /* 20465 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule254Enabled),
6519 /* 20468 */ // Combiner Rule #254: binop_with_neg; wip_match_opcode 'G_XOR'
6520 /* 20468 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner158),
6521 /* 20471 */ // Label 254: @20471
6522 /* 20471 */ GIM_Try, /*On fail goto*//*Label 255*/ GIMT_Encode4(20531), // Rule ID 13 //
6523 /* 20476 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
6524 /* 20479 */ // MIs[0] root
6525 /* 20479 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
6526 /* 20483 */ // MIs[0] add
6527 /* 20483 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6528 /* 20487 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
6529 /* 20491 */ // MIs[1] A
6530 /* 20491 */ // No operand predicates
6531 /* 20491 */ // MIs[1] Operand 2
6532 /* 20491 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 255,
6533 /* 20495 */ // MIs[0] Operand 2
6534 /* 20495 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
6535 /* 20499 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
6536 /* 20503 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6537 /* 20505 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6538 /* 20508 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
6539 /* 20518 */ // Combiner Rule #13: NotAPlusNegOne
6540 /* 20518 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
6541 /* 20521 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6542 /* 20523 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
6543 /* 20526 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
6544 /* 20530 */ GIR_EraseRootFromParent_Done,
6545 /* 20531 */ // Label 255: @20531
6546 /* 20531 */ GIM_Try, /*On fail goto*//*Label 256*/ GIMT_Encode4(20570), // Rule ID 123 //
6547 /* 20536 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
6548 /* 20539 */ // MIs[0] dst
6549 /* 20539 */ // No operand predicates
6550 /* 20539 */ // MIs[0] x
6551 /* 20539 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
6552 /* 20543 */ // MIs[0] x
6553 /* 20543 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6554 /* 20548 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6555 /* 20551 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
6556 /* 20561 */ // Combiner Rule #92: same_val_zero @ [__same_val_zero_match_0[1]]
6557 /* 20561 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
6558 /* 20564 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6559 /* 20566 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
6560 /* 20569 */ GIR_EraseRootFromParent_Done,
6561 /* 20570 */ // Label 256: @20570
6562 /* 20570 */ GIM_Try, /*On fail goto*//*Label 257*/ GIMT_Encode4(20593), // Rule ID 113 //
6563 /* 20575 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
6564 /* 20578 */ // MIs[0] dst
6565 /* 20578 */ // No operand predicates
6566 /* 20578 */ // MIs[0] lhs
6567 /* 20578 */ // No operand predicates
6568 /* 20578 */ // MIs[0] Operand 2
6569 /* 20578 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6570 /* 20582 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6571 /* 20587 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[3]]
6572 /* 20587 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6573 /* 20592 */ GIR_EraseRootFromParent_Done,
6574 /* 20593 */ // Label 257: @20593
6575 /* 20593 */ GIM_Reject,
6576 /* 20594 */ // Label 11: @20594
6577 /* 20594 */ GIM_Try, /*On fail goto*//*Label 258*/ GIMT_Encode4(20605), // Rule ID 151 //
6578 /* 20599 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
6579 /* 20602 */ // Combiner Rule #111: extend_through_phis; wip_match_opcode 'G_PHI'
6580 /* 20602 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
6581 /* 20605 */ // Label 258: @20605
6582 /* 20605 */ GIM_Reject,
6583 /* 20606 */ // Label 12: @20606
6584 /* 20606 */ GIM_Try, /*On fail goto*//*Label 259*/ GIMT_Encode4(20617), // Rule ID 397 //
6585 /* 20611 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6586 /* 20614 */ // Combiner Rule #233: unmerge_anyext_build_vector; wip_match_opcode 'G_UNMERGE_VALUES'
6587 /* 20614 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner142),
6588 /* 20617 */ // Label 259: @20617
6589 /* 20617 */ GIM_Try, /*On fail goto*//*Label 260*/ GIMT_Encode4(20628), // Rule ID 398 //
6590 /* 20622 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
6591 /* 20625 */ // Combiner Rule #234: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
6592 /* 20625 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner143),
6593 /* 20628 */ // Label 260: @20628
6594 /* 20628 */ GIM_Try, /*On fail goto*//*Label 261*/ GIMT_Encode4(20639), // Rule ID 400 //
6595 /* 20633 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule236Enabled),
6596 /* 20636 */ // Combiner Rule #236: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
6597 /* 20636 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner145),
6598 /* 20639 */ // Label 261: @20639
6599 /* 20639 */ GIM_Try, /*On fail goto*//*Label 262*/ GIMT_Encode4(20650), // Rule ID 401 //
6600 /* 20644 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule237Enabled),
6601 /* 20647 */ // Combiner Rule #237: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
6602 /* 20647 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner146),
6603 /* 20650 */ // Label 262: @20650
6604 /* 20650 */ GIM_Try, /*On fail goto*//*Label 263*/ GIMT_Encode4(20661), // Rule ID 402 //
6605 /* 20655 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule238Enabled),
6606 /* 20658 */ // Combiner Rule #238: unmerge_dead_to_trunc; wip_match_opcode 'G_UNMERGE_VALUES'
6607 /* 20658 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner147),
6608 /* 20661 */ // Label 263: @20661
6609 /* 20661 */ GIM_Try, /*On fail goto*//*Label 264*/ GIMT_Encode4(20672), // Rule ID 403 //
6610 /* 20666 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule239Enabled),
6611 /* 20669 */ // Combiner Rule #239: unmerge_zext_to_zext; wip_match_opcode 'G_UNMERGE_VALUES'
6612 /* 20669 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner148),
6613 /* 20672 */ // Label 264: @20672
6614 /* 20672 */ GIM_Reject,
6615 /* 20673 */ // Label 13: @20673
6616 /* 20673 */ GIM_Try, /*On fail goto*//*Label 265*/ GIMT_Encode4(20687), // Rule ID 399 //
6617 /* 20678 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule235Enabled),
6618 /* 20681 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
6619 /* 20684 */ // MIs[0] dst
6620 /* 20684 */ // No operand predicates
6621 /* 20684 */ // MIs[0] merge_srcs
6622 /* 20684 */ // No operand predicates
6623 /* 20684 */ // Combiner Rule #235: merge_unmerge
6624 /* 20684 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner144),
6625 /* 20687 */ // Label 265: @20687
6626 /* 20687 */ GIM_Try, /*On fail goto*//*Label 266*/ GIMT_Encode4(20749),
6627 /* 20692 */ GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
6628 /* 20695 */ GIM_Try, /*On fail goto*//*Label 267*/ GIMT_Encode4(20716), // Rule ID 404 //
6629 /* 20700 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule240Enabled),
6630 /* 20703 */ // MIs[0] root
6631 /* 20703 */ // No operand predicates
6632 /* 20703 */ // MIs[0] x
6633 /* 20703 */ // No operand predicates
6634 /* 20703 */ // MIs[0] undef
6635 /* 20703 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6636 /* 20707 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6637 /* 20711 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6638 /* 20713 */ // Combiner Rule #240: merge_of_x_and_undef
6639 /* 20713 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner149),
6640 /* 20716 */ // Label 267: @20716
6641 /* 20716 */ GIM_Try, /*On fail goto*//*Label 268*/ GIMT_Encode4(20748), // Rule ID 405 //
6642 /* 20721 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule241Enabled),
6643 /* 20724 */ // MIs[0] root
6644 /* 20724 */ // No operand predicates
6645 /* 20724 */ // MIs[0] x
6646 /* 20724 */ // No operand predicates
6647 /* 20724 */ // MIs[0] zero
6648 /* 20724 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6649 /* 20728 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6650 /* 20732 */ // MIs[1] Operand 1
6651 /* 20732 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
6652 /* 20743 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6653 /* 20745 */ // Combiner Rule #241: merge_of_x_and_zero
6654 /* 20745 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner150),
6655 /* 20748 */ // Label 268: @20748
6656 /* 20748 */ GIM_Reject,
6657 /* 20749 */ // Label 266: @20749
6658 /* 20749 */ GIM_Reject,
6659 /* 20750 */ // Label 14: @20750
6660 /* 20750 */ GIM_Try, /*On fail goto*//*Label 269*/ GIMT_Encode4(20761), // Rule ID 75 //
6661 /* 20755 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
6662 /* 20758 */ // Combiner Rule #73: extract_all_elts_from_build_vector; wip_match_opcode 'G_BUILD_VECTOR'
6663 /* 20758 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
6664 /* 20761 */ // Label 269: @20761
6665 /* 20761 */ GIM_Try, /*On fail goto*//*Label 270*/ GIMT_Encode4(20772), // Rule ID 104 //
6666 /* 20766 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
6667 /* 20769 */ // Combiner Rule #85: propagate_undef_all_ops; wip_match_opcode 'G_BUILD_VECTOR'
6668 /* 20769 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
6669 /* 20772 */ // Label 270: @20772
6670 /* 20772 */ GIM_Try, /*On fail goto*//*Label 271*/ GIMT_Encode4(20783), // Rule ID 142 //
6671 /* 20777 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
6672 /* 20780 */ // Combiner Rule #102: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR'
6673 /* 20780 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
6674 /* 20783 */ // Label 271: @20783
6675 /* 20783 */ GIM_Try, /*On fail goto*//*Label 272*/ GIMT_Encode4(20814),
6676 /* 20788 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
6677 /* 20791 */ GIM_Try, /*On fail goto*//*Label 273*/ GIMT_Encode4(20802), // Rule ID 396 //
6678 /* 20796 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule232Enabled),
6679 /* 20799 */ // MIs[0] dst
6680 /* 20799 */ // No operand predicates
6681 /* 20799 */ // MIs[0] unused
6682 /* 20799 */ // No operand predicates
6683 /* 20799 */ // Combiner Rule #232: combine_use_vector_truncate
6684 /* 20799 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner141),
6685 /* 20802 */ // Label 273: @20802
6686 /* 20802 */ GIM_Try, /*On fail goto*//*Label 274*/ GIMT_Encode4(20813), // Rule ID 406 //
6687 /* 20807 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule242Enabled),
6688 /* 20810 */ // MIs[0] dst
6689 /* 20810 */ // No operand predicates
6690 /* 20810 */ // MIs[0] unused
6691 /* 20810 */ // No operand predicates
6692 /* 20810 */ // Combiner Rule #242: combine_build_unmerge
6693 /* 20810 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner151),
6694 /* 20813 */ // Label 274: @20813
6695 /* 20813 */ GIM_Reject,
6696 /* 20814 */ // Label 272: @20814
6697 /* 20814 */ GIM_Reject,
6698 /* 20815 */ // Label 15: @20815
6699 /* 20815 */ GIM_Try, /*On fail goto*//*Label 275*/ GIMT_Encode4(20826), // Rule ID 141 //
6700 /* 20820 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
6701 /* 20823 */ // Combiner Rule #102: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR_TRUNC'
6702 /* 20823 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
6703 /* 20826 */ // Label 275: @20826
6704 /* 20826 */ GIM_Reject,
6705 /* 20827 */ // Label 16: @20827
6706 /* 20827 */ GIM_Try, /*On fail goto*//*Label 276*/ GIMT_Encode4(20838), // Rule ID 389 //
6707 /* 20832 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule225Enabled),
6708 /* 20835 */ // Combiner Rule #225: combine_concat_vector; wip_match_opcode 'G_CONCAT_VECTORS'
6709 /* 20835 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner134),
6710 /* 20838 */ // Label 276: @20838
6711 /* 20838 */ GIM_Reject,
6712 /* 20839 */ // Label 17: @20839
6713 /* 20839 */ GIM_Try, /*On fail goto*//*Label 277*/ GIMT_Encode4(20860), // Rule ID 134 //
6714 /* 20844 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule96Enabled),
6715 /* 20847 */ // MIs[0] dst
6716 /* 20847 */ // No operand predicates
6717 /* 20847 */ // MIs[0] t
6718 /* 20847 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6719 /* 20851 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
6720 /* 20855 */ // MIs[1] ptr
6721 /* 20855 */ // No operand predicates
6722 /* 20855 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6723 /* 20857 */ // Combiner Rule #96: i2p_to_p2i
6724 /* 20857 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
6725 /* 20860 */ // Label 277: @20860
6726 /* 20860 */ GIM_Try, /*On fail goto*//*Label 278*/ GIMT_Encode4(20881), // Rule ID 96 //
6727 /* 20865 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6728 /* 20868 */ // MIs[0] dst
6729 /* 20868 */ // No operand predicates
6730 /* 20868 */ // MIs[0] __unary_undef_to_undef_match_0.x
6731 /* 20868 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6732 /* 20872 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6733 /* 20876 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6734 /* 20878 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[3]]
6735 /* 20878 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6736 /* 20881 */ // Label 278: @20881
6737 /* 20881 */ GIM_Reject,
6738 /* 20882 */ // Label 18: @20882
6739 /* 20882 */ GIM_Try, /*On fail goto*//*Label 279*/ GIMT_Encode4(20893), // Rule ID 133 //
6740 /* 20887 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
6741 /* 20890 */ // Combiner Rule #95: p2i_to_i2p; wip_match_opcode 'G_INTTOPTR'
6742 /* 20890 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
6743 /* 20893 */ // Label 279: @20893
6744 /* 20893 */ GIM_Try, /*On fail goto*//*Label 280*/ GIMT_Encode4(20914), // Rule ID 97 //
6745 /* 20898 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6746 /* 20901 */ // MIs[0] dst
6747 /* 20901 */ // No operand predicates
6748 /* 20901 */ // MIs[0] __unary_undef_to_undef_match_0.x
6749 /* 20901 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6750 /* 20905 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6751 /* 20909 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6752 /* 20911 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[4]]
6753 /* 20911 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6754 /* 20914 */ // Label 280: @20914
6755 /* 20914 */ GIM_Reject,
6756 /* 20915 */ // Label 19: @20915
6757 /* 20915 */ GIM_Try, /*On fail goto*//*Label 281*/ GIMT_Encode4(20947), // Rule ID 146 //
6758 /* 20920 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
6759 /* 20923 */ // MIs[0] dst
6760 /* 20923 */ // No operand predicates
6761 /* 20923 */ // MIs[0] src1
6762 /* 20923 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6763 /* 20927 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
6764 /* 20931 */ // MIs[1] src0
6765 /* 20931 */ // No operand predicates
6766 /* 20931 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner5),
6767 /* 20935 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6768 /* 20937 */ // Combiner Rule #106: bitcast_bitcast_to_bitcast
6769 /* 20937 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_BITCAST),
6770 /* 20940 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6771 /* 20942 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src0
6772 /* 20946 */ GIR_EraseRootFromParent_Done,
6773 /* 20947 */ // Label 281: @20947
6774 /* 20947 */ GIM_Try, /*On fail goto*//*Label 282*/ GIMT_Encode4(20968), // Rule ID 145 //
6775 /* 20952 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
6776 /* 20955 */ // MIs[0] dst
6777 /* 20955 */ // No operand predicates
6778 /* 20955 */ // MIs[0] src1
6779 /* 20955 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6780 /* 20959 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
6781 /* 20963 */ // MIs[1] src0
6782 /* 20963 */ // No operand predicates
6783 /* 20963 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6784 /* 20965 */ // Combiner Rule #105: bitcast_bitcast_fold
6785 /* 20965 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
6786 /* 20968 */ // Label 282: @20968
6787 /* 20968 */ GIM_Try, /*On fail goto*//*Label 283*/ GIMT_Encode4(20989), // Rule ID 94 //
6788 /* 20973 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6789 /* 20976 */ // MIs[0] dst
6790 /* 20976 */ // No operand predicates
6791 /* 20976 */ // MIs[0] __unary_undef_to_undef_match_0.x
6792 /* 20976 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6793 /* 20980 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6794 /* 20984 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6795 /* 20986 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[1]]
6796 /* 20986 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6797 /* 20989 */ // Label 283: @20989
6798 /* 20989 */ GIM_Reject,
6799 /* 20990 */ // Label 20: @20990
6800 /* 20990 */ GIM_Try, /*On fail goto*//*Label 284*/ GIMT_Encode4(21019), // Rule ID 24 //
6801 /* 20995 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
6802 /* 20998 */ // MIs[0] dst
6803 /* 20998 */ // No operand predicates
6804 /* 20998 */ // MIs[0] src
6805 /* 20998 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6806 /* 21002 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREEZE),
6807 /* 21006 */ // MIs[1] __idempotent_prop_match_0.x
6808 /* 21006 */ // No operand predicates
6809 /* 21006 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6810 /* 21011 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6811 /* 21013 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[0]]
6812 /* 21013 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6813 /* 21018 */ GIR_EraseRootFromParent_Done,
6814 /* 21019 */ // Label 284: @21019
6815 /* 21019 */ GIM_Try, /*On fail goto*//*Label 285*/ GIMT_Encode4(21042), // Rule ID 49 //
6816 /* 21024 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
6817 /* 21027 */ // MIs[0] root
6818 /* 21027 */ // No operand predicates
6819 /* 21027 */ // MIs[0] src
6820 /* 21027 */ // No operand predicates
6821 /* 21027 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
6822 /* 21031 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6823 /* 21036 */ // Combiner Rule #47: freeze_of_non_undef_non_poison
6824 /* 21036 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6825 /* 21041 */ GIR_EraseRootFromParent_Done,
6826 /* 21042 */ // Label 285: @21042
6827 /* 21042 */ GIM_Try, /*On fail goto*//*Label 286*/ GIMT_Encode4(21053), // Rule ID 50 //
6828 /* 21047 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
6829 /* 21050 */ // MIs[0] dst
6830 /* 21050 */ // No operand predicates
6831 /* 21050 */ // MIs[0] src
6832 /* 21050 */ // No operand predicates
6833 /* 21050 */ // Combiner Rule #48: push_freeze_to_prevent_poison_from_propagating
6834 /* 21050 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
6835 /* 21053 */ // Label 286: @21053
6836 /* 21053 */ GIM_Reject,
6837 /* 21054 */ // Label 21: @21054
6838 /* 21054 */ GIM_Try, /*On fail goto*//*Label 287*/ GIMT_Encode4(21075), // Rule ID 197 //
6839 /* 21059 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
6840 /* 21062 */ // MIs[0] dst
6841 /* 21062 */ // No operand predicates
6842 /* 21062 */ // MIs[0] src0
6843 /* 21062 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6844 /* 21066 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
6845 /* 21070 */ // MIs[1] cst
6846 /* 21070 */ // No operand predicates
6847 /* 21070 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6848 /* 21072 */ // Combiner Rule #153: constant_fold_intrinsic_trunc
6849 /* 21072 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
6850 /* 21075 */ // Label 287: @21075
6851 /* 21075 */ GIM_Reject,
6852 /* 21076 */ // Label 22: @21076
6853 /* 21076 */ GIM_Try, /*On fail goto*//*Label 288*/ GIMT_Encode4(21097), // Rule ID 198 //
6854 /* 21081 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule154Enabled),
6855 /* 21084 */ // MIs[0] dst
6856 /* 21084 */ // No operand predicates
6857 /* 21084 */ // MIs[0] src0
6858 /* 21084 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6859 /* 21088 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
6860 /* 21092 */ // MIs[1] cst
6861 /* 21092 */ // No operand predicates
6862 /* 21092 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6863 /* 21094 */ // Combiner Rule #154: constant_fold_intrinsic_round
6864 /* 21094 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
6865 /* 21097 */ // Label 288: @21097
6866 /* 21097 */ GIM_Reject,
6867 /* 21098 */ // Label 23: @21098
6868 /* 21098 */ GIM_Try, /*On fail goto*//*Label 289*/ GIMT_Encode4(21119), // Rule ID 199 //
6869 /* 21103 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
6870 /* 21106 */ // MIs[0] dst
6871 /* 21106 */ // No operand predicates
6872 /* 21106 */ // MIs[0] src0
6873 /* 21106 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6874 /* 21110 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
6875 /* 21114 */ // MIs[1] cst
6876 /* 21114 */ // No operand predicates
6877 /* 21114 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6878 /* 21116 */ // Combiner Rule #155: constant_fold_intrinsic_roundeven
6879 /* 21116 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
6880 /* 21119 */ // Label 289: @21119
6881 /* 21119 */ GIM_Reject,
6882 /* 21120 */ // Label 24: @21120
6883 /* 21120 */ GIM_Try, /*On fail goto*//*Label 290*/ GIMT_Encode4(21131), // Rule ID 76 //
6884 /* 21125 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
6885 /* 21128 */ // Combiner Rule #74: extending_loads; wip_match_opcode 'G_LOAD'
6886 /* 21128 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
6887 /* 21131 */ // Label 290: @21131
6888 /* 21131 */ GIM_Reject,
6889 /* 21132 */ // Label 25: @21132
6890 /* 21132 */ GIM_Try, /*On fail goto*//*Label 291*/ GIMT_Encode4(21143), // Rule ID 77 //
6891 /* 21137 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
6892 /* 21140 */ // Combiner Rule #74: extending_loads; wip_match_opcode 'G_SEXTLOAD'
6893 /* 21140 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
6894 /* 21143 */ // Label 291: @21143
6895 /* 21143 */ GIM_Reject,
6896 /* 21144 */ // Label 26: @21144
6897 /* 21144 */ GIM_Try, /*On fail goto*//*Label 292*/ GIMT_Encode4(21155), // Rule ID 78 //
6898 /* 21149 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
6899 /* 21152 */ // Combiner Rule #74: extending_loads; wip_match_opcode 'G_ZEXTLOAD'
6900 /* 21152 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
6901 /* 21155 */ // Label 292: @21155
6902 /* 21155 */ GIM_Reject,
6903 /* 21156 */ // Label 27: @21156
6904 /* 21156 */ GIM_Try, /*On fail goto*//*Label 293*/ GIMT_Encode4(21167), // Rule ID 106 //
6905 /* 21161 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
6906 /* 21164 */ // Combiner Rule #87: erase_undef_store; wip_match_opcode 'G_STORE'
6907 /* 21164 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner42),
6908 /* 21167 */ // Label 293: @21167
6909 /* 21167 */ GIM_Reject,
6910 /* 21168 */ // Label 28: @21168
6911 /* 21168 */ GIM_Try, /*On fail goto*//*Label 294*/ GIMT_Encode4(21179), // Rule ID 447 //
6912 /* 21173 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule271Enabled),
6913 /* 21176 */ // Combiner Rule #271: rcp_sqrt_to_rsq; wip_match_opcode 'G_INTRINSIC'
6914 /* 21176 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner166),
6915 /* 21179 */ // Label 294: @21179
6916 /* 21179 */ GIM_Reject,
6917 /* 21180 */ // Label 29: @21180
6918 /* 21180 */ GIM_Try, /*On fail goto*//*Label 295*/ GIMT_Encode4(21191), // Rule ID 135 //
6919 /* 21185 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled),
6920 /* 21188 */ // Combiner Rule #97: anyext_trunc_fold; wip_match_opcode 'G_ANYEXT'
6921 /* 21188 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
6922 /* 21191 */ // Label 295: @21191
6923 /* 21191 */ GIM_Try, /*On fail goto*//*Label 296*/ GIMT_Encode4(21202), // Rule ID 290 //
6924 /* 21196 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
6925 /* 21199 */ // Combiner Rule #190: constant_fold_cast_op; wip_match_opcode 'G_ANYEXT'
6926 /* 21199 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
6927 /* 21202 */ // Label 296: @21202
6928 /* 21202 */ GIM_Try, /*On fail goto*//*Label 297*/ GIMT_Encode4(21223), // Rule ID 63 //
6929 /* 21207 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule61Enabled),
6930 /* 21210 */ // MIs[0] root
6931 /* 21210 */ // No operand predicates
6932 /* 21210 */ // MIs[0] select
6933 /* 21210 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6934 /* 21214 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
6935 /* 21218 */ // MIs[1] cond
6936 /* 21218 */ // No operand predicates
6937 /* 21218 */ // MIs[1] true
6938 /* 21218 */ // No operand predicates
6939 /* 21218 */ // MIs[1] false
6940 /* 21218 */ // No operand predicates
6941 /* 21218 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6942 /* 21220 */ // Combiner Rule #61: select_of_anyext
6943 /* 21220 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
6944 /* 21223 */ // Label 297: @21223
6945 /* 21223 */ GIM_Try, /*On fail goto*//*Label 298*/ GIMT_Encode4(21244), // Rule ID 58 //
6946 /* 21228 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
6947 /* 21231 */ // MIs[0] root
6948 /* 21231 */ // No operand predicates
6949 /* 21231 */ // MIs[0] second
6950 /* 21231 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6951 /* 21235 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
6952 /* 21239 */ // MIs[1] src
6953 /* 21239 */ // No operand predicates
6954 /* 21239 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6955 /* 21241 */ // Combiner Rule #56: anyext_of_anyext
6956 /* 21241 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6957 /* 21244 */ // Label 298: @21244
6958 /* 21244 */ GIM_Try, /*On fail goto*//*Label 299*/ GIMT_Encode4(21265), // Rule ID 60 //
6959 /* 21249 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
6960 /* 21252 */ // MIs[0] root
6961 /* 21252 */ // No operand predicates
6962 /* 21252 */ // MIs[0] second
6963 /* 21252 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6964 /* 21256 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
6965 /* 21260 */ // MIs[1] src
6966 /* 21260 */ // No operand predicates
6967 /* 21260 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6968 /* 21262 */ // Combiner Rule #58: anyext_of_sext
6969 /* 21262 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6970 /* 21265 */ // Label 299: @21265
6971 /* 21265 */ GIM_Try, /*On fail goto*//*Label 300*/ GIMT_Encode4(21286), // Rule ID 59 //
6972 /* 21270 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
6973 /* 21273 */ // MIs[0] root
6974 /* 21273 */ // No operand predicates
6975 /* 21273 */ // MIs[0] second
6976 /* 21273 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6977 /* 21277 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6978 /* 21281 */ // MIs[1] src
6979 /* 21281 */ // No operand predicates
6980 /* 21281 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6981 /* 21283 */ // Combiner Rule #57: anyext_of_zext
6982 /* 21283 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6983 /* 21286 */ // Label 300: @21286
6984 /* 21286 */ GIM_Try, /*On fail goto*//*Label 301*/ GIMT_Encode4(21307), // Rule ID 95 //
6985 /* 21291 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6986 /* 21294 */ // MIs[0] dst
6987 /* 21294 */ // No operand predicates
6988 /* 21294 */ // MIs[0] __unary_undef_to_undef_match_0.x
6989 /* 21294 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6990 /* 21298 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6991 /* 21302 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6992 /* 21304 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[2]]
6993 /* 21304 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6994 /* 21307 */ // Label 301: @21307
6995 /* 21307 */ GIM_Reject,
6996 /* 21308 */ // Label 30: @21308
6997 /* 21308 */ GIM_Try, /*On fail goto*//*Label 302*/ GIMT_Encode4(21319), // Rule ID 143 //
6998 /* 21313 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
6999 /* 21316 */ // Combiner Rule #103: trunc_buildvector_fold; wip_match_opcode 'G_TRUNC'
7000 /* 21316 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
7001 /* 21319 */ // Label 302: @21319
7002 /* 21319 */ GIM_Try, /*On fail goto*//*Label 303*/ GIMT_Encode4(21330), // Rule ID 144 //
7003 /* 21324 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
7004 /* 21327 */ // Combiner Rule #104: trunc_lshr_buildvector_fold; wip_match_opcode 'G_TRUNC'
7005 /* 21327 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner50),
7006 /* 21330 */ // Label 303: @21330
7007 /* 21330 */ GIM_Try, /*On fail goto*//*Label 304*/ GIMT_Encode4(21341), // Rule ID 186 //
7008 /* 21335 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule142Enabled),
7009 /* 21338 */ // Combiner Rule #142: trunc_shift; wip_match_opcode 'G_TRUNC'
7010 /* 21338 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
7011 /* 21341 */ // Label 304: @21341
7012 /* 21341 */ GIM_Try, /*On fail goto*//*Label 305*/ GIMT_Encode4(21362), // Rule ID 64 //
7013 /* 21346 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled),
7014 /* 21349 */ // MIs[0] root
7015 /* 21349 */ // No operand predicates
7016 /* 21349 */ // MIs[0] select
7017 /* 21349 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7018 /* 21353 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
7019 /* 21357 */ // MIs[1] cond
7020 /* 21357 */ // No operand predicates
7021 /* 21357 */ // MIs[1] true
7022 /* 21357 */ // No operand predicates
7023 /* 21357 */ // MIs[1] false
7024 /* 21357 */ // No operand predicates
7025 /* 21357 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7026 /* 21359 */ // Combiner Rule #62: select_of_truncate
7027 /* 21359 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
7028 /* 21362 */ // Label 305: @21362
7029 /* 21362 */ GIM_Try, /*On fail goto*//*Label 306*/ GIMT_Encode4(21391), // Rule ID 66 //
7030 /* 21367 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
7031 /* 21370 */ // MIs[0] root
7032 /* 21370 */ // No operand predicates
7033 /* 21370 */ // MIs[0] binop
7034 /* 21370 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7035 /* 21374 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
7036 /* 21378 */ // MIs[1] x
7037 /* 21378 */ // No operand predicates
7038 /* 21378 */ // MIs[1] const
7039 /* 21378 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7040 /* 21382 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7041 /* 21386 */ // MIs[2] imm
7042 /* 21386 */ // No operand predicates
7043 /* 21386 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7044 /* 21388 */ // Combiner Rule #64: narrow_binop_add
7045 /* 21388 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
7046 /* 21391 */ // Label 306: @21391
7047 /* 21391 */ GIM_Try, /*On fail goto*//*Label 307*/ GIMT_Encode4(21420), // Rule ID 69 //
7048 /* 21396 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule67Enabled),
7049 /* 21399 */ // MIs[0] root
7050 /* 21399 */ // No operand predicates
7051 /* 21399 */ // MIs[0] binop
7052 /* 21399 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7053 /* 21403 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
7054 /* 21407 */ // MIs[1] x
7055 /* 21407 */ // No operand predicates
7056 /* 21407 */ // MIs[1] const
7057 /* 21407 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7058 /* 21411 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7059 /* 21415 */ // MIs[2] imm
7060 /* 21415 */ // No operand predicates
7061 /* 21415 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7062 /* 21417 */ // Combiner Rule #67: narrow_binop_and
7063 /* 21417 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
7064 /* 21420 */ // Label 307: @21420
7065 /* 21420 */ GIM_Try, /*On fail goto*//*Label 308*/ GIMT_Encode4(21449), // Rule ID 68 //
7066 /* 21425 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule66Enabled),
7067 /* 21428 */ // MIs[0] root
7068 /* 21428 */ // No operand predicates
7069 /* 21428 */ // MIs[0] binop
7070 /* 21428 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7071 /* 21432 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
7072 /* 21436 */ // MIs[1] x
7073 /* 21436 */ // No operand predicates
7074 /* 21436 */ // MIs[1] const
7075 /* 21436 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7076 /* 21440 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7077 /* 21444 */ // MIs[2] imm
7078 /* 21444 */ // No operand predicates
7079 /* 21444 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7080 /* 21446 */ // Combiner Rule #66: narrow_binop_mul
7081 /* 21446 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
7082 /* 21449 */ // Label 308: @21449
7083 /* 21449 */ GIM_Try, /*On fail goto*//*Label 309*/ GIMT_Encode4(21478), // Rule ID 70 //
7084 /* 21454 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
7085 /* 21457 */ // MIs[0] root
7086 /* 21457 */ // No operand predicates
7087 /* 21457 */ // MIs[0] binop
7088 /* 21457 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7089 /* 21461 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
7090 /* 21465 */ // MIs[1] x
7091 /* 21465 */ // No operand predicates
7092 /* 21465 */ // MIs[1] const
7093 /* 21465 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7094 /* 21469 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7095 /* 21473 */ // MIs[2] imm
7096 /* 21473 */ // No operand predicates
7097 /* 21473 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7098 /* 21475 */ // Combiner Rule #68: narrow_binop_or
7099 /* 21475 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
7100 /* 21478 */ // Label 309: @21478
7101 /* 21478 */ GIM_Try, /*On fail goto*//*Label 310*/ GIMT_Encode4(21507), // Rule ID 67 //
7102 /* 21483 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
7103 /* 21486 */ // MIs[0] root
7104 /* 21486 */ // No operand predicates
7105 /* 21486 */ // MIs[0] binop
7106 /* 21486 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7107 /* 21490 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
7108 /* 21494 */ // MIs[1] x
7109 /* 21494 */ // No operand predicates
7110 /* 21494 */ // MIs[1] const
7111 /* 21494 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7112 /* 21498 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7113 /* 21502 */ // MIs[2] imm
7114 /* 21502 */ // No operand predicates
7115 /* 21502 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7116 /* 21504 */ // Combiner Rule #65: narrow_binop_sub
7117 /* 21504 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
7118 /* 21507 */ // Label 310: @21507
7119 /* 21507 */ GIM_Try, /*On fail goto*//*Label 311*/ GIMT_Encode4(21539), // Rule ID 413 //
7120 /* 21512 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule247Enabled),
7121 /* 21515 */ // MIs[0] dst
7122 /* 21515 */ // No operand predicates
7123 /* 21515 */ // MIs[0] min
7124 /* 21515 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7125 /* 21519 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMIN),
7126 /* 21523 */ // MIs[1] x
7127 /* 21523 */ // No operand predicates
7128 /* 21523 */ // MIs[1] y
7129 /* 21523 */ // No operand predicates
7130 /* 21523 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner15),
7131 /* 21527 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7132 /* 21529 */ // Combiner Rule #247: trunc_usatu
7133 /* 21529 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_TRUNC_USAT_U),
7134 /* 21532 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7135 /* 21534 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7136 /* 21538 */ GIR_EraseRootFromParent_Done,
7137 /* 21539 */ // Label 311: @21539
7138 /* 21539 */ GIM_Try, /*On fail goto*//*Label 312*/ GIMT_Encode4(21568), // Rule ID 71 //
7139 /* 21544 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled),
7140 /* 21547 */ // MIs[0] root
7141 /* 21547 */ // No operand predicates
7142 /* 21547 */ // MIs[0] binop
7143 /* 21547 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7144 /* 21551 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
7145 /* 21555 */ // MIs[1] x
7146 /* 21555 */ // No operand predicates
7147 /* 21555 */ // MIs[1] const
7148 /* 21555 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7149 /* 21559 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7150 /* 21563 */ // MIs[2] imm
7151 /* 21563 */ // No operand predicates
7152 /* 21563 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7153 /* 21565 */ // Combiner Rule #69: narrow_binop_xor
7154 /* 21565 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
7155 /* 21568 */ // Label 312: @21568
7156 /* 21568 */ GIM_Try, /*On fail goto*//*Label 313*/ GIMT_Encode4(21589), // Rule ID 53 //
7157 /* 21573 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
7158 /* 21576 */ // MIs[0] root
7159 /* 21576 */ // No operand predicates
7160 /* 21576 */ // MIs[0] ext
7161 /* 21576 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7162 /* 21580 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7163 /* 21584 */ // MIs[1] src
7164 /* 21584 */ // No operand predicates
7165 /* 21584 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7166 /* 21586 */ // Combiner Rule #51: truncate_of_anyext
7167 /* 21586 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7168 /* 21589 */ // Label 313: @21589
7169 /* 21589 */ GIM_Try, /*On fail goto*//*Label 314*/ GIMT_Encode4(21613), // Rule ID 65 //
7170 /* 21594 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled),
7171 /* 21597 */ // MIs[0] root
7172 /* 21597 */ // No operand predicates
7173 /* 21597 */ // MIs[0] bv
7174 /* 21597 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7175 /* 21601 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
7176 /* 21605 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
7177 /* 21608 */ // MIs[1] unused
7178 /* 21608 */ // No operand predicates
7179 /* 21608 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7180 /* 21610 */ // Combiner Rule #63: buildvector_of_truncate
7181 /* 21610 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
7182 /* 21613 */ // Label 314: @21613
7183 /* 21613 */ GIM_Try, /*On fail goto*//*Label 315*/ GIMT_Encode4(21634), // Rule ID 52 //
7184 /* 21618 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
7185 /* 21621 */ // MIs[0] root
7186 /* 21621 */ // No operand predicates
7187 /* 21621 */ // MIs[0] ext
7188 /* 21621 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7189 /* 21625 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
7190 /* 21629 */ // MIs[1] src
7191 /* 21629 */ // No operand predicates
7192 /* 21629 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7193 /* 21631 */ // Combiner Rule #50: truncate_of_sext
7194 /* 21631 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7195 /* 21634 */ // Label 315: @21634
7196 /* 21634 */ GIM_Try, /*On fail goto*//*Label 316*/ GIMT_Encode4(21655), // Rule ID 51 //
7197 /* 21639 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
7198 /* 21642 */ // MIs[0] root
7199 /* 21642 */ // No operand predicates
7200 /* 21642 */ // MIs[0] ext
7201 /* 21642 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7202 /* 21646 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
7203 /* 21650 */ // MIs[1] src
7204 /* 21650 */ // No operand predicates
7205 /* 21650 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7206 /* 21652 */ // Combiner Rule #49: truncate_of_zext
7207 /* 21652 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7208 /* 21655 */ // Label 316: @21655
7209 /* 21655 */ GIM_Try, /*On fail goto*//*Label 317*/ GIMT_Encode4(21676), // Rule ID 93 //
7210 /* 21660 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
7211 /* 21663 */ // MIs[0] dst
7212 /* 21663 */ // No operand predicates
7213 /* 21663 */ // MIs[0] __unary_undef_to_undef_match_0.x
7214 /* 21663 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7215 /* 21667 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7216 /* 21671 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7217 /* 21673 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[0]]
7218 /* 21673 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
7219 /* 21676 */ // Label 317: @21676
7220 /* 21676 */ GIM_Try, /*On fail goto*//*Label 318*/ GIMT_Encode4(21697), // Rule ID 72 //
7221 /* 21681 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
7222 /* 21684 */ // MIs[0] root
7223 /* 21684 */ // No operand predicates
7224 /* 21684 */ // MIs[0] int
7225 /* 21684 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7226 /* 21688 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7227 /* 21692 */ // MIs[1] imm
7228 /* 21692 */ // No operand predicates
7229 /* 21692 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7230 /* 21694 */ // Combiner Rule #70: integer_of_truncate
7231 /* 21694 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner26),
7232 /* 21697 */ // Label 318: @21697
7233 /* 21697 */ GIM_Try, /*On fail goto*//*Label 319*/ GIMT_Encode4(21708), // Rule ID 411 //
7234 /* 21702 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule245Enabled),
7235 /* 21705 */ // MIs[0] dst
7236 /* 21705 */ // No operand predicates
7237 /* 21705 */ // MIs[0] src
7238 /* 21705 */ // No operand predicates
7239 /* 21705 */ // Combiner Rule #245: trunc_ssats
7240 /* 21705 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner154),
7241 /* 21708 */ // Label 319: @21708
7242 /* 21708 */ GIM_Try, /*On fail goto*//*Label 320*/ GIMT_Encode4(21719), // Rule ID 412 //
7243 /* 21713 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule246Enabled),
7244 /* 21716 */ // MIs[0] dst
7245 /* 21716 */ // No operand predicates
7246 /* 21716 */ // MIs[0] src
7247 /* 21716 */ // No operand predicates
7248 /* 21716 */ // Combiner Rule #246: trunc_ssatu
7249 /* 21716 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner155),
7250 /* 21719 */ // Label 320: @21719
7251 /* 21719 */ GIM_Reject,
7252 /* 21720 */ // Label 31: @21720
7253 /* 21720 */ GIM_Try, /*On fail goto*//*Label 321*/ GIMT_Encode4(21752), // Rule ID 414 //
7254 /* 21725 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule248Enabled),
7255 /* 21728 */ // MIs[0] dst
7256 /* 21728 */ // No operand predicates
7257 /* 21728 */ // MIs[0] src
7258 /* 21728 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7259 /* 21732 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPTOUI),
7260 /* 21736 */ // MIs[1] x
7261 /* 21736 */ // No operand predicates
7262 /* 21736 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner16),
7263 /* 21740 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7264 /* 21742 */ // Combiner Rule #248: truncusatu_to_fptouisat
7265 /* 21742 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FPTOUI_SAT),
7266 /* 21745 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7267 /* 21747 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7268 /* 21751 */ GIR_EraseRootFromParent_Done,
7269 /* 21752 */ // Label 321: @21752
7270 /* 21752 */ GIM_Reject,
7271 /* 21753 */ // Label 32: @21753
7272 /* 21753 */ GIM_Try, /*On fail goto*//*Label 322*/ GIMT_Encode4(21764), // Rule ID 289 //
7273 /* 21758 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
7274 /* 21761 */ // Combiner Rule #190: constant_fold_cast_op; wip_match_opcode 'G_SEXT'
7275 /* 21761 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
7276 /* 21764 */ // Label 322: @21764
7277 /* 21764 */ GIM_Try, /*On fail goto*//*Label 323*/ GIMT_Encode4(21785), // Rule ID 57 //
7278 /* 21769 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
7279 /* 21772 */ // MIs[0] root
7280 /* 21772 */ // No operand predicates
7281 /* 21772 */ // MIs[0] second
7282 /* 21772 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7283 /* 21776 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7284 /* 21780 */ // MIs[1] src
7285 /* 21780 */ // No operand predicates
7286 /* 21780 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7287 /* 21782 */ // Combiner Rule #55: sext_of_anyext
7288 /* 21782 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
7289 /* 21785 */ // Label 323: @21785
7290 /* 21785 */ GIM_Try, /*On fail goto*//*Label 324*/ GIMT_Encode4(21806), // Rule ID 56 //
7291 /* 21790 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
7292 /* 21793 */ // MIs[0] root
7293 /* 21793 */ // No operand predicates
7294 /* 21793 */ // MIs[0] second
7295 /* 21793 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7296 /* 21797 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
7297 /* 21801 */ // MIs[1] src
7298 /* 21801 */ // No operand predicates
7299 /* 21801 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7300 /* 21803 */ // Combiner Rule #54: sext_of_sext
7301 /* 21803 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
7302 /* 21806 */ // Label 324: @21806
7303 /* 21806 */ GIM_Try, /*On fail goto*//*Label 325*/ GIMT_Encode4(21827), // Rule ID 390 //
7304 /* 21811 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule226Enabled),
7305 /* 21814 */ // MIs[0] root
7306 /* 21814 */ // No operand predicates
7307 /* 21814 */ // MIs[0] src
7308 /* 21814 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7309 /* 21818 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
7310 /* 21822 */ // MIs[1] x
7311 /* 21822 */ // No operand predicates
7312 /* 21822 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7313 /* 21824 */ // Combiner Rule #226: sext_trunc
7314 /* 21824 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner135),
7315 /* 21827 */ // Label 325: @21827
7316 /* 21827 */ GIM_Reject,
7317 /* 21828 */ // Label 33: @21828
7318 /* 21828 */ GIM_Try, /*On fail goto*//*Label 326*/ GIMT_Encode4(21839), // Rule ID 171 //
7319 /* 21833 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule127Enabled),
7320 /* 21836 */ // Combiner Rule #127: sext_inreg_of_load; wip_match_opcode 'G_SEXT_INREG'
7321 /* 21836 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner65),
7322 /* 21839 */ // Label 326: @21839
7323 /* 21839 */ GIM_Try, /*On fail goto*//*Label 327*/ GIMT_Encode4(21850), // Rule ID 181 //
7324 /* 21844 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled),
7325 /* 21847 */ // Combiner Rule #137: redundant_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
7326 /* 21847 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
7327 /* 21850 */ // Label 327: @21850
7328 /* 21850 */ GIM_Try, /*On fail goto*//*Label 328*/ GIMT_Encode4(21861), // Rule ID 250 //
7329 /* 21855 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
7330 /* 21858 */ // Combiner Rule #183: bitfield_extract_from_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
7331 /* 21858 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner99),
7332 /* 21861 */ // Label 328: @21861
7333 /* 21861 */ GIM_Try, /*On fail goto*//*Label 329*/ GIMT_Encode4(21872), // Rule ID 450 //
7334 /* 21866 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule273Enabled),
7335 /* 21869 */ // Combiner Rule #273: sign_extension_in_reg; wip_match_opcode 'G_SEXT_INREG'
7336 /* 21869 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner168),
7337 /* 21872 */ // Label 329: @21872
7338 /* 21872 */ GIM_Try, /*On fail goto*//*Label 330*/ GIMT_Encode4(21893), // Rule ID 61 //
7339 /* 21877 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled),
7340 /* 21880 */ // MIs[0] dst
7341 /* 21880 */ // No operand predicates
7342 /* 21880 */ // MIs[0] x
7343 /* 21880 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7344 /* 21884 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
7345 /* 21888 */ // MIs[1] src
7346 /* 21888 */ // No operand predicates
7347 /* 21888 */ // MIs[1] a
7348 /* 21888 */ // No operand predicates
7349 /* 21888 */ // MIs[0] b
7350 /* 21888 */ // No operand predicates
7351 /* 21888 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7352 /* 21890 */ // Combiner Rule #59: sext_inreg_of_sext_inreg
7353 /* 21890 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
7354 /* 21893 */ // Label 330: @21893
7355 /* 21893 */ GIM_Try, /*On fail goto*//*Label 331*/ GIMT_Encode4(21904), // Rule ID 185 //
7356 /* 21898 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule141Enabled),
7357 /* 21901 */ // MIs[0] dst
7358 /* 21901 */ // No operand predicates
7359 /* 21901 */ // MIs[0] src
7360 /* 21901 */ // No operand predicates
7361 /* 21901 */ // MIs[0] imm
7362 /* 21901 */ // No operand predicates
7363 /* 21901 */ // Combiner Rule #141: sext_inreg_to_zext_inreg
7364 /* 21901 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76),
7365 /* 21904 */ // Label 331: @21904
7366 /* 21904 */ GIM_Reject,
7367 /* 21905 */ // Label 34: @21905
7368 /* 21905 */ GIM_Try, /*On fail goto*//*Label 332*/ GIMT_Encode4(21916), // Rule ID 184 //
7369 /* 21910 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule140Enabled),
7370 /* 21913 */ // Combiner Rule #140: zext_trunc_fold; wip_match_opcode 'G_ZEXT'
7371 /* 21913 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner75),
7372 /* 21916 */ // Label 332: @21916
7373 /* 21916 */ GIM_Try, /*On fail goto*//*Label 333*/ GIMT_Encode4(21927), // Rule ID 288 //
7374 /* 21921 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
7375 /* 21924 */ // Combiner Rule #190: constant_fold_cast_op; wip_match_opcode 'G_ZEXT'
7376 /* 21924 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
7377 /* 21927 */ // Label 333: @21927
7378 /* 21927 */ GIM_Try, /*On fail goto*//*Label 334*/ GIMT_Encode4(21948), // Rule ID 62 //
7379 /* 21932 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled),
7380 /* 21935 */ // MIs[0] root
7381 /* 21935 */ // No operand predicates
7382 /* 21935 */ // MIs[0] select
7383 /* 21935 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7384 /* 21939 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
7385 /* 21943 */ // MIs[1] cond
7386 /* 21943 */ // No operand predicates
7387 /* 21943 */ // MIs[1] true
7388 /* 21943 */ // No operand predicates
7389 /* 21943 */ // MIs[1] false
7390 /* 21943 */ // No operand predicates
7391 /* 21943 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7392 /* 21945 */ // Combiner Rule #60: select_of_zext
7393 /* 21945 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
7394 /* 21948 */ // Label 334: @21948
7395 /* 21948 */ GIM_Try, /*On fail goto*//*Label 335*/ GIMT_Encode4(21969), // Rule ID 55 //
7396 /* 21953 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
7397 /* 21956 */ // MIs[0] root
7398 /* 21956 */ // No operand predicates
7399 /* 21956 */ // MIs[0] second
7400 /* 21956 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7401 /* 21960 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7402 /* 21964 */ // MIs[1] src
7403 /* 21964 */ // No operand predicates
7404 /* 21964 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7405 /* 21966 */ // Combiner Rule #53: zext_of_anyext
7406 /* 21966 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
7407 /* 21969 */ // Label 335: @21969
7408 /* 21969 */ GIM_Try, /*On fail goto*//*Label 336*/ GIMT_Encode4(21996), // Rule ID 391 //
7409 /* 21974 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
7410 /* 21977 */ // MIs[0] root
7411 /* 21977 */ // No operand predicates
7412 /* 21977 */ // MIs[0] src
7413 /* 21977 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7414 /* 21981 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
7415 /* 21985 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::NoUWrap),
7416 /* 21991 */ // MIs[1] x
7417 /* 21991 */ // No operand predicates
7418 /* 21991 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7419 /* 21993 */ // Combiner Rule #227: zext_trunc
7420 /* 21993 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner136),
7421 /* 21996 */ // Label 336: @21996
7422 /* 21996 */ GIM_Try, /*On fail goto*//*Label 337*/ GIMT_Encode4(22017), // Rule ID 54 //
7423 /* 22001 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
7424 /* 22004 */ // MIs[0] root
7425 /* 22004 */ // No operand predicates
7426 /* 22004 */ // MIs[0] second
7427 /* 22004 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7428 /* 22008 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
7429 /* 22012 */ // MIs[1] src
7430 /* 22012 */ // No operand predicates
7431 /* 22012 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7432 /* 22014 */ // Combiner Rule #52: zext_of_zext
7433 /* 22014 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
7434 /* 22017 */ // Label 337: @22017
7435 /* 22017 */ GIM_Try, /*On fail goto*//*Label 338*/ GIMT_Encode4(22034), // Rule ID 392 //
7436 /* 22022 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
7437 /* 22025 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NonNeg),
7438 /* 22031 */ // MIs[0] root
7439 /* 22031 */ // No operand predicates
7440 /* 22031 */ // MIs[0] x
7441 /* 22031 */ // No operand predicates
7442 /* 22031 */ // Combiner Rule #228: nneg_zext
7443 /* 22031 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner137),
7444 /* 22034 */ // Label 338: @22034
7445 /* 22034 */ GIM_Reject,
7446 /* 22035 */ // Label 35: @22035
7447 /* 22035 */ GIM_Try, /*On fail goto*//*Label 339*/ GIMT_Encode4(22046), // Rule ID 86 //
7448 /* 22040 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
7449 /* 22043 */ // Combiner Rule #80: binop_left_undef_to_zero; wip_match_opcode 'G_SHL'
7450 /* 22043 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
7451 /* 22046 */ // Label 339: @22046
7452 /* 22046 */ GIM_Try, /*On fail goto*//*Label 340*/ GIMT_Encode4(22057), // Rule ID 89 //
7453 /* 22051 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
7454 /* 22054 */ // Combiner Rule #81: binop_right_undef_to_undef; wip_match_opcode 'G_SHL'
7455 /* 22054 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
7456 /* 22057 */ // Label 340: @22057
7457 /* 22057 */ GIM_Try, /*On fail goto*//*Label 341*/ GIMT_Encode4(22068), // Rule ID 221 //
7458 /* 22062 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
7459 /* 22065 */ // Combiner Rule #169: shift_immed_chain; wip_match_opcode 'G_SHL'
7460 /* 22065 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
7461 /* 22068 */ // Label 341: @22068
7462 /* 22068 */ GIM_Try, /*On fail goto*//*Label 342*/ GIMT_Encode4(22079), // Rule ID 226 //
7463 /* 22073 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
7464 /* 22076 */ // Combiner Rule #170: shift_of_shifted_logic_chain; wip_match_opcode 'G_SHL'
7465 /* 22076 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
7466 /* 22079 */ // Label 342: @22079
7467 /* 22079 */ GIM_Try, /*On fail goto*//*Label 343*/ GIMT_Encode4(22090), // Rule ID 249 //
7468 /* 22084 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
7469 /* 22087 */ // Combiner Rule #182: commute_shift; wip_match_opcode 'G_SHL'
7470 /* 22087 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
7471 /* 22090 */ // Label 343: @22090
7472 /* 22090 */ GIM_Try, /*On fail goto*//*Label 344*/ GIMT_Encode4(22101), // Rule ID 263 //
7473 /* 22095 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
7474 /* 22098 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_SHL'
7475 /* 22098 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7476 /* 22101 */ // Label 344: @22101
7477 /* 22101 */ GIM_Try, /*On fail goto*//*Label 345*/ GIMT_Encode4(22112), // Rule ID 328 //
7478 /* 22106 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
7479 /* 22109 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_SHL'
7480 /* 22109 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
7481 /* 22112 */ // Label 345: @22112
7482 /* 22112 */ GIM_Try, /*On fail goto*//*Label 346*/ GIMT_Encode4(22147), // Rule ID 47 //
7483 /* 22117 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
7484 /* 22120 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
7485 /* 22126 */ // MIs[0] root
7486 /* 22126 */ // No operand predicates
7487 /* 22126 */ // MIs[0] left
7488 /* 22126 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7489 /* 22130 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
7490 /* 22134 */ // MIs[1] imm
7491 /* 22134 */ // No operand predicates
7492 /* 22134 */ // MIs[0] x
7493 /* 22134 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7494 /* 22138 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7495 /* 22142 */ // MIs[2] imm1
7496 /* 22142 */ // No operand predicates
7497 /* 22142 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7498 /* 22144 */ // Combiner Rule #45: shl_of_vscale
7499 /* 22144 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
7500 /* 22147 */ // Label 346: @22147
7501 /* 22147 */ GIM_Try, /*On fail goto*//*Label 347*/ GIMT_Encode4(22187), // Rule ID 124 //
7502 /* 22152 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
7503 /* 22155 */ // MIs[0] dst
7504 /* 22155 */ // No operand predicates
7505 /* 22155 */ // MIs[0] zero
7506 /* 22155 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7507 /* 22159 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7508 /* 22163 */ // MIs[1] Operand 1
7509 /* 22163 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
7510 /* 22174 */ // MIs[0] rhs
7511 /* 22174 */ // No operand predicates
7512 /* 22174 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7513 /* 22179 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7514 /* 22181 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[0]]
7515 /* 22181 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7516 /* 22186 */ GIR_EraseRootFromParent_Done,
7517 /* 22187 */ // Label 347: @22187
7518 /* 22187 */ GIM_Try, /*On fail goto*//*Label 348*/ GIMT_Encode4(22210), // Rule ID 114 //
7519 /* 22192 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
7520 /* 22195 */ // MIs[0] dst
7521 /* 22195 */ // No operand predicates
7522 /* 22195 */ // MIs[0] lhs
7523 /* 22195 */ // No operand predicates
7524 /* 22195 */ // MIs[0] Operand 2
7525 /* 22195 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7526 /* 22199 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7527 /* 22204 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[4]]
7528 /* 22204 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7529 /* 22209 */ GIR_EraseRootFromParent_Done,
7530 /* 22210 */ // Label 348: @22210
7531 /* 22210 */ GIM_Try, /*On fail goto*//*Label 349*/ GIMT_Encode4(22221), // Rule ID 156 //
7532 /* 22215 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
7533 /* 22218 */ // MIs[0] root
7534 /* 22218 */ // No operand predicates
7535 /* 22218 */ // MIs[0] mi.shifted
7536 /* 22218 */ // No operand predicates
7537 /* 22218 */ // MIs[0] mi.amt
7538 /* 22218 */ // No operand predicates
7539 /* 22218 */ // Combiner Rule #114: shifts_too_big @ [mi[0]]
7540 /* 22218 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
7541 /* 22221 */ // Label 349: @22221
7542 /* 22221 */ GIM_Try, /*On fail goto*//*Label 350*/ GIMT_Encode4(22232), // Rule ID 172 //
7543 /* 22226 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule128Enabled),
7544 /* 22229 */ // MIs[0] dst
7545 /* 22229 */ // No operand predicates
7546 /* 22229 */ // MIs[0] src0
7547 /* 22229 */ // No operand predicates
7548 /* 22229 */ // MIs[0] src1
7549 /* 22229 */ // No operand predicates
7550 /* 22229 */ // Combiner Rule #128: reduce_shl_of_extend
7551 /* 22229 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner66),
7552 /* 22232 */ // Label 350: @22232
7553 /* 22232 */ GIM_Reject,
7554 /* 22233 */ // Label 36: @22233
7555 /* 22233 */ GIM_Try, /*On fail goto*//*Label 351*/ GIMT_Encode4(22244), // Rule ID 91 //
7556 /* 22238 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
7557 /* 22241 */ // Combiner Rule #81: binop_right_undef_to_undef; wip_match_opcode 'G_LSHR'
7558 /* 22241 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
7559 /* 22244 */ // Label 351: @22244
7560 /* 22244 */ GIM_Try, /*On fail goto*//*Label 352*/ GIMT_Encode4(22255), // Rule ID 223 //
7561 /* 22249 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
7562 /* 22252 */ // Combiner Rule #169: shift_immed_chain; wip_match_opcode 'G_LSHR'
7563 /* 22252 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
7564 /* 22255 */ // Label 352: @22255
7565 /* 22255 */ GIM_Try, /*On fail goto*//*Label 353*/ GIMT_Encode4(22266), // Rule ID 228 //
7566 /* 22260 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
7567 /* 22263 */ // Combiner Rule #170: shift_of_shifted_logic_chain; wip_match_opcode 'G_LSHR'
7568 /* 22263 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
7569 /* 22266 */ // Label 353: @22266
7570 /* 22266 */ GIM_Try, /*On fail goto*//*Label 354*/ GIMT_Encode4(22277), // Rule ID 253 //
7571 /* 22271 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7572 /* 22274 */ // Combiner Rule #185: bitfield_extract_from_shr; wip_match_opcode 'G_LSHR'
7573 /* 22274 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
7574 /* 22277 */ // Label 354: @22277
7575 /* 22277 */ GIM_Try, /*On fail goto*//*Label 355*/ GIMT_Encode4(22288), // Rule ID 255 //
7576 /* 22282 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
7577 /* 22285 */ // Combiner Rule #186: bitfield_extract_from_shr_and; wip_match_opcode 'G_LSHR'
7578 /* 22285 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
7579 /* 22288 */ // Label 355: @22288
7580 /* 22288 */ GIM_Try, /*On fail goto*//*Label 356*/ GIMT_Encode4(22299), // Rule ID 260 //
7581 /* 22293 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
7582 /* 22296 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_LSHR'
7583 /* 22296 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7584 /* 22299 */ // Label 356: @22299
7585 /* 22299 */ GIM_Try, /*On fail goto*//*Label 357*/ GIMT_Encode4(22310), // Rule ID 326 //
7586 /* 22304 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
7587 /* 22307 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_LSHR'
7588 /* 22307 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
7589 /* 22310 */ // Label 357: @22310
7590 /* 22310 */ GIM_Try, /*On fail goto*//*Label 358*/ GIMT_Encode4(22399), // Rule ID 430 //
7591 /* 22315 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule261Enabled),
7592 /* 22318 */ // MIs[0] dst
7593 /* 22318 */ // No operand predicates
7594 /* 22318 */ // MIs[0] sum
7595 /* 22318 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7596 /* 22322 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
7597 /* 22326 */ // MIs[1] inner
7598 /* 22326 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7599 /* 22330 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
7600 /* 22334 */ // MIs[2] ext1
7601 /* 22334 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
7602 /* 22338 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
7603 /* 22342 */ // MIs[3] x
7604 /* 22342 */ GIM_RecordRegType, /*MI*/3, /*Op*/1, /*TempTypeIdx*/255,
7605 /* 22346 */ // MIs[2] ext2
7606 /* 22346 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/4, /*MI*/2, /*OpIdx*/2, // MIs[4]
7607 /* 22350 */ GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_ZEXT),
7608 /* 22354 */ // MIs[4] y
7609 /* 22354 */ // No operand predicates
7610 /* 22354 */ // MIs[1] Operand 2
7611 /* 22354 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
7612 /* 22358 */ // MIs[0] Operand 2
7613 /* 22358 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
7614 /* 22362 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner22),
7615 /* 22366 */ GIM_CheckIsSafeToFold, /*NumInsns*/4,
7616 /* 22368 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7617 /* 22371 */ // Combiner Rule #261: avgceil_u_match
7618 /* 22371 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UAVGCEIL),
7619 /* 22374 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7620 /* 22379 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // x
7621 /* 22383 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // y
7622 /* 22387 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
7623 /* 22391 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
7624 /* 22395 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7625 /* 22398 */ GIR_EraseRootFromParent_Done,
7626 /* 22399 */ // Label 358: @22399
7627 /* 22399 */ GIM_Try, /*On fail goto*//*Label 359*/ GIMT_Encode4(22476), // Rule ID 428 //
7628 /* 22404 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule259Enabled),
7629 /* 22407 */ // MIs[0] dst
7630 /* 22407 */ // No operand predicates
7631 /* 22407 */ // MIs[0] sum
7632 /* 22407 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7633 /* 22411 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
7634 /* 22415 */ // MIs[1] ext1
7635 /* 22415 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7636 /* 22419 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
7637 /* 22423 */ // MIs[2] x
7638 /* 22423 */ GIM_RecordRegType, /*MI*/2, /*Op*/1, /*TempTypeIdx*/255,
7639 /* 22427 */ // MIs[1] ext2
7640 /* 22427 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
7641 /* 22431 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
7642 /* 22435 */ // MIs[3] y
7643 /* 22435 */ // No operand predicates
7644 /* 22435 */ // MIs[0] Operand 2
7645 /* 22435 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
7646 /* 22439 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner20),
7647 /* 22443 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
7648 /* 22445 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7649 /* 22448 */ // Combiner Rule #259: avgfloor_u_match
7650 /* 22448 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UAVGFLOOR),
7651 /* 22451 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7652 /* 22456 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // x
7653 /* 22460 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // y
7654 /* 22464 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
7655 /* 22468 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
7656 /* 22472 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7657 /* 22475 */ GIR_EraseRootFromParent_Done,
7658 /* 22476 */ // Label 359: @22476
7659 /* 22476 */ GIM_Try, /*On fail goto*//*Label 360*/ GIMT_Encode4(22505), // Rule ID 415 //
7660 /* 22481 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule249Enabled),
7661 /* 22484 */ // MIs[0] dst
7662 /* 22484 */ // No operand predicates
7663 /* 22484 */ // MIs[0] d2
7664 /* 22484 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7665 /* 22488 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
7666 /* 22492 */ // MIs[1] d1
7667 /* 22492 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7668 /* 22496 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
7669 /* 22500 */ // MIs[2] x
7670 /* 22500 */ // No operand predicates
7671 /* 22500 */ // MIs[2] y
7672 /* 22500 */ // No operand predicates
7673 /* 22500 */ // MIs[0] z
7674 /* 22500 */ // No operand predicates
7675 /* 22500 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7676 /* 22502 */ // Combiner Rule #249: lshr_of_trunc_of_lshr
7677 /* 22502 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner156),
7678 /* 22505 */ // Label 360: @22505
7679 /* 22505 */ GIM_Try, /*On fail goto*//*Label 361*/ GIMT_Encode4(22545), // Rule ID 125 //
7680 /* 22510 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
7681 /* 22513 */ // MIs[0] dst
7682 /* 22513 */ // No operand predicates
7683 /* 22513 */ // MIs[0] zero
7684 /* 22513 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7685 /* 22517 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7686 /* 22521 */ // MIs[1] Operand 1
7687 /* 22521 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
7688 /* 22532 */ // MIs[0] rhs
7689 /* 22532 */ // No operand predicates
7690 /* 22532 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7691 /* 22537 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7692 /* 22539 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[1]]
7693 /* 22539 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7694 /* 22544 */ GIR_EraseRootFromParent_Done,
7695 /* 22545 */ // Label 361: @22545
7696 /* 22545 */ GIM_Try, /*On fail goto*//*Label 362*/ GIMT_Encode4(22568), // Rule ID 116 //
7697 /* 22550 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
7698 /* 22553 */ // MIs[0] dst
7699 /* 22553 */ // No operand predicates
7700 /* 22553 */ // MIs[0] lhs
7701 /* 22553 */ // No operand predicates
7702 /* 22553 */ // MIs[0] Operand 2
7703 /* 22553 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7704 /* 22557 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7705 /* 22562 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[6]]
7706 /* 22562 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7707 /* 22567 */ GIR_EraseRootFromParent_Done,
7708 /* 22568 */ // Label 362: @22568
7709 /* 22568 */ GIM_Try, /*On fail goto*//*Label 363*/ GIMT_Encode4(22579), // Rule ID 158 //
7710 /* 22573 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
7711 /* 22576 */ // MIs[0] root
7712 /* 22576 */ // No operand predicates
7713 /* 22576 */ // MIs[0] mi.shifted
7714 /* 22576 */ // No operand predicates
7715 /* 22576 */ // MIs[0] mi.amt
7716 /* 22576 */ // No operand predicates
7717 /* 22576 */ // Combiner Rule #114: shifts_too_big @ [mi[2]]
7718 /* 22576 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
7719 /* 22579 */ // Label 363: @22579
7720 /* 22579 */ GIM_Reject,
7721 /* 22580 */ // Label 37: @22580
7722 /* 22580 */ GIM_Try, /*On fail goto*//*Label 364*/ GIMT_Encode4(22591), // Rule ID 90 //
7723 /* 22585 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
7724 /* 22588 */ // Combiner Rule #81: binop_right_undef_to_undef; wip_match_opcode 'G_ASHR'
7725 /* 22588 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
7726 /* 22591 */ // Label 364: @22591
7727 /* 22591 */ GIM_Try, /*On fail goto*//*Label 365*/ GIMT_Encode4(22602), // Rule ID 169 //
7728 /* 22596 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule125Enabled),
7729 /* 22599 */ // Combiner Rule #125: shl_ashr_to_sext_inreg; wip_match_opcode 'G_ASHR'
7730 /* 22599 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner64),
7731 /* 22602 */ // Label 365: @22602
7732 /* 22602 */ GIM_Try, /*On fail goto*//*Label 366*/ GIMT_Encode4(22613), // Rule ID 222 //
7733 /* 22607 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
7734 /* 22610 */ // Combiner Rule #169: shift_immed_chain; wip_match_opcode 'G_ASHR'
7735 /* 22610 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
7736 /* 22613 */ // Label 366: @22613
7737 /* 22613 */ GIM_Try, /*On fail goto*//*Label 367*/ GIMT_Encode4(22624), // Rule ID 227 //
7738 /* 22618 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
7739 /* 22621 */ // Combiner Rule #170: shift_of_shifted_logic_chain; wip_match_opcode 'G_ASHR'
7740 /* 22621 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
7741 /* 22624 */ // Label 367: @22624
7742 /* 22624 */ GIM_Try, /*On fail goto*//*Label 368*/ GIMT_Encode4(22635), // Rule ID 252 //
7743 /* 22629 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7744 /* 22632 */ // Combiner Rule #185: bitfield_extract_from_shr; wip_match_opcode 'G_ASHR'
7745 /* 22632 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
7746 /* 22635 */ // Label 368: @22635
7747 /* 22635 */ GIM_Try, /*On fail goto*//*Label 369*/ GIMT_Encode4(22646), // Rule ID 254 //
7748 /* 22640 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
7749 /* 22643 */ // Combiner Rule #186: bitfield_extract_from_shr_and; wip_match_opcode 'G_ASHR'
7750 /* 22643 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
7751 /* 22646 */ // Label 369: @22646
7752 /* 22646 */ GIM_Try, /*On fail goto*//*Label 370*/ GIMT_Encode4(22657), // Rule ID 259 //
7753 /* 22651 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
7754 /* 22654 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_ASHR'
7755 /* 22654 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7756 /* 22657 */ // Label 370: @22657
7757 /* 22657 */ GIM_Try, /*On fail goto*//*Label 371*/ GIMT_Encode4(22668), // Rule ID 327 //
7758 /* 22662 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
7759 /* 22665 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_ASHR'
7760 /* 22665 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
7761 /* 22668 */ // Label 371: @22668
7762 /* 22668 */ GIM_Try, /*On fail goto*//*Label 372*/ GIMT_Encode4(22757), // Rule ID 431 //
7763 /* 22673 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule262Enabled),
7764 /* 22676 */ // MIs[0] dst
7765 /* 22676 */ // No operand predicates
7766 /* 22676 */ // MIs[0] sum
7767 /* 22676 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7768 /* 22680 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
7769 /* 22684 */ // MIs[1] inner
7770 /* 22684 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7771 /* 22688 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
7772 /* 22692 */ // MIs[2] ext1
7773 /* 22692 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
7774 /* 22696 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_SEXT),
7775 /* 22700 */ // MIs[3] x
7776 /* 22700 */ GIM_RecordRegType, /*MI*/3, /*Op*/1, /*TempTypeIdx*/255,
7777 /* 22704 */ // MIs[2] ext2
7778 /* 22704 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/4, /*MI*/2, /*OpIdx*/2, // MIs[4]
7779 /* 22708 */ GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_SEXT),
7780 /* 22712 */ // MIs[4] y
7781 /* 22712 */ // No operand predicates
7782 /* 22712 */ // MIs[1] Operand 2
7783 /* 22712 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
7784 /* 22716 */ // MIs[0] Operand 2
7785 /* 22716 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
7786 /* 22720 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner23),
7787 /* 22724 */ GIM_CheckIsSafeToFold, /*NumInsns*/4,
7788 /* 22726 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7789 /* 22729 */ // Combiner Rule #262: avgceil_s_match
7790 /* 22729 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SAVGCEIL),
7791 /* 22732 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7792 /* 22737 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // x
7793 /* 22741 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // y
7794 /* 22745 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
7795 /* 22749 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
7796 /* 22753 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7797 /* 22756 */ GIR_EraseRootFromParent_Done,
7798 /* 22757 */ // Label 372: @22757
7799 /* 22757 */ GIM_Try, /*On fail goto*//*Label 373*/ GIMT_Encode4(22834), // Rule ID 429 //
7800 /* 22762 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule260Enabled),
7801 /* 22765 */ // MIs[0] dst
7802 /* 22765 */ // No operand predicates
7803 /* 22765 */ // MIs[0] sum
7804 /* 22765 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7805 /* 22769 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
7806 /* 22773 */ // MIs[1] ext1
7807 /* 22773 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7808 /* 22777 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
7809 /* 22781 */ // MIs[2] x
7810 /* 22781 */ GIM_RecordRegType, /*MI*/2, /*Op*/1, /*TempTypeIdx*/255,
7811 /* 22785 */ // MIs[1] ext2
7812 /* 22785 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
7813 /* 22789 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_SEXT),
7814 /* 22793 */ // MIs[3] y
7815 /* 22793 */ // No operand predicates
7816 /* 22793 */ // MIs[0] Operand 2
7817 /* 22793 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
7818 /* 22797 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner21),
7819 /* 22801 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
7820 /* 22803 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7821 /* 22806 */ // Combiner Rule #260: avgfloor_s_match
7822 /* 22806 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SAVGFLOOR),
7823 /* 22809 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7824 /* 22814 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // x
7825 /* 22818 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // y
7826 /* 22822 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
7827 /* 22826 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
7828 /* 22830 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7829 /* 22833 */ GIR_EraseRootFromParent_Done,
7830 /* 22834 */ // Label 373: @22834
7831 /* 22834 */ GIM_Try, /*On fail goto*//*Label 374*/ GIMT_Encode4(22874), // Rule ID 126 //
7832 /* 22839 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
7833 /* 22842 */ // MIs[0] dst
7834 /* 22842 */ // No operand predicates
7835 /* 22842 */ // MIs[0] zero
7836 /* 22842 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7837 /* 22846 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7838 /* 22850 */ // MIs[1] Operand 1
7839 /* 22850 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
7840 /* 22861 */ // MIs[0] rhs
7841 /* 22861 */ // No operand predicates
7842 /* 22861 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7843 /* 22866 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7844 /* 22868 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[2]]
7845 /* 22868 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7846 /* 22873 */ GIR_EraseRootFromParent_Done,
7847 /* 22874 */ // Label 374: @22874
7848 /* 22874 */ GIM_Try, /*On fail goto*//*Label 375*/ GIMT_Encode4(22897), // Rule ID 115 //
7849 /* 22879 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
7850 /* 22882 */ // MIs[0] dst
7851 /* 22882 */ // No operand predicates
7852 /* 22882 */ // MIs[0] lhs
7853 /* 22882 */ // No operand predicates
7854 /* 22882 */ // MIs[0] Operand 2
7855 /* 22882 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7856 /* 22886 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7857 /* 22891 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[5]]
7858 /* 22891 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7859 /* 22896 */ GIR_EraseRootFromParent_Done,
7860 /* 22897 */ // Label 375: @22897
7861 /* 22897 */ GIM_Try, /*On fail goto*//*Label 376*/ GIMT_Encode4(22908), // Rule ID 157 //
7862 /* 22902 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
7863 /* 22905 */ // MIs[0] root
7864 /* 22905 */ // No operand predicates
7865 /* 22905 */ // MIs[0] mi.shifted
7866 /* 22905 */ // No operand predicates
7867 /* 22905 */ // MIs[0] mi.amt
7868 /* 22905 */ // No operand predicates
7869 /* 22905 */ // Combiner Rule #114: shifts_too_big @ [mi[1]]
7870 /* 22905 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
7871 /* 22908 */ // Label 376: @22908
7872 /* 22908 */ GIM_Reject,
7873 /* 22909 */ // Label 38: @22909
7874 /* 22909 */ GIM_Try, /*On fail goto*//*Label 377*/ GIMT_Encode4(22920), // Rule ID 237 //
7875 /* 22914 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
7876 /* 22917 */ // Combiner Rule #174: funnel_shift_to_rotate; wip_match_opcode 'G_FSHL'
7877 /* 22917 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
7878 /* 22920 */ // Label 377: @22920
7879 /* 22920 */ GIM_Try, /*On fail goto*//*Label 378*/ GIMT_Encode4(22931), // Rule ID 241 //
7880 /* 22925 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled),
7881 /* 22928 */ // Combiner Rule #177: funnel_shift_overshift; wip_match_opcode 'G_FSHL'
7882 /* 22928 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
7883 /* 22931 */ // Label 378: @22931
7884 /* 22931 */ GIM_Try, /*On fail goto*//*Label 379*/ GIMT_Encode4(22951), // Rule ID 240 //
7885 /* 22936 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
7886 /* 22939 */ // MIs[0] x
7887 /* 22939 */ // No operand predicates
7888 /* 22939 */ // MIs[0] y
7889 /* 22939 */ // No operand predicates
7890 /* 22939 */ // MIs[0] z
7891 /* 22939 */ // No operand predicates
7892 /* 22939 */ // MIs[0] Operand 3
7893 /* 22939 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
7894 /* 22943 */ // Combiner Rule #176: funnel_shift_left_zero
7895 /* 22943 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7896 /* 22946 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
7897 /* 22948 */ GIR_RootToRootCopy, /*OpIdx*/1, // y
7898 /* 22950 */ GIR_EraseRootFromParent_Done,
7899 /* 22951 */ // Label 379: @22951
7900 /* 22951 */ GIM_Reject,
7901 /* 22952 */ // Label 39: @22952
7902 /* 22952 */ GIM_Try, /*On fail goto*//*Label 380*/ GIMT_Encode4(22963), // Rule ID 238 //
7903 /* 22957 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
7904 /* 22960 */ // Combiner Rule #174: funnel_shift_to_rotate; wip_match_opcode 'G_FSHR'
7905 /* 22960 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
7906 /* 22963 */ // Label 380: @22963
7907 /* 22963 */ GIM_Try, /*On fail goto*//*Label 381*/ GIMT_Encode4(22974), // Rule ID 242 //
7908 /* 22968 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled),
7909 /* 22971 */ // Combiner Rule #177: funnel_shift_overshift; wip_match_opcode 'G_FSHR'
7910 /* 22971 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
7911 /* 22974 */ // Label 381: @22974
7912 /* 22974 */ GIM_Try, /*On fail goto*//*Label 382*/ GIMT_Encode4(22994), // Rule ID 239 //
7913 /* 22979 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
7914 /* 22982 */ // MIs[0] x
7915 /* 22982 */ // No operand predicates
7916 /* 22982 */ // MIs[0] y
7917 /* 22982 */ // No operand predicates
7918 /* 22982 */ // MIs[0] z
7919 /* 22982 */ // No operand predicates
7920 /* 22982 */ // MIs[0] Operand 3
7921 /* 22982 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
7922 /* 22986 */ // Combiner Rule #175: funnel_shift_right_zero
7923 /* 22986 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7924 /* 22989 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
7925 /* 22991 */ GIR_RootToRootCopy, /*OpIdx*/2, // z
7926 /* 22993 */ GIR_EraseRootFromParent_Done,
7927 /* 22994 */ // Label 382: @22994
7928 /* 22994 */ GIM_Reject,
7929 /* 22995 */ // Label 40: @22995
7930 /* 22995 */ GIM_Try, /*On fail goto*//*Label 383*/ GIMT_Encode4(23018), // Rule ID 119 //
7931 /* 23000 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
7932 /* 23003 */ // MIs[0] dst
7933 /* 23003 */ // No operand predicates
7934 /* 23003 */ // MIs[0] lhs
7935 /* 23003 */ // No operand predicates
7936 /* 23003 */ // MIs[0] Operand 2
7937 /* 23003 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7938 /* 23007 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7939 /* 23012 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[9]]
7940 /* 23012 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7941 /* 23017 */ GIR_EraseRootFromParent_Done,
7942 /* 23018 */ // Label 383: @23018
7943 /* 23018 */ GIM_Reject,
7944 /* 23019 */ // Label 41: @23019
7945 /* 23019 */ GIM_Try, /*On fail goto*//*Label 384*/ GIMT_Encode4(23042), // Rule ID 118 //
7946 /* 23024 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
7947 /* 23027 */ // MIs[0] dst
7948 /* 23027 */ // No operand predicates
7949 /* 23027 */ // MIs[0] lhs
7950 /* 23027 */ // No operand predicates
7951 /* 23027 */ // MIs[0] Operand 2
7952 /* 23027 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7953 /* 23031 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7954 /* 23036 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[8]]
7955 /* 23036 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7956 /* 23041 */ GIR_EraseRootFromParent_Done,
7957 /* 23042 */ // Label 384: @23042
7958 /* 23042 */ GIM_Reject,
7959 /* 23043 */ // Label 42: @23043
7960 /* 23043 */ GIM_Try, /*On fail goto*//*Label 385*/ GIMT_Encode4(23054), // Rule ID 164 //
7961 /* 23048 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule120Enabled),
7962 /* 23051 */ // Combiner Rule #120: icmp_to_true_false_known_bits; wip_match_opcode 'G_ICMP'
7963 /* 23051 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner61),
7964 /* 23054 */ // Label 385: @23054
7965 /* 23054 */ GIM_Try, /*On fail goto*//*Label 386*/ GIMT_Encode4(23065), // Rule ID 165 //
7966 /* 23059 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
7967 /* 23062 */ // Combiner Rule #121: icmp_to_lhs_known_bits; wip_match_opcode 'G_ICMP'
7968 /* 23062 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner62),
7969 /* 23065 */ // Label 386: @23065
7970 /* 23065 */ GIM_Try, /*On fail goto*//*Label 387*/ GIMT_Encode4(23076), // Rule ID 168 //
7971 /* 23070 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule124Enabled),
7972 /* 23073 */ // Combiner Rule #124: redundant_binop_in_equality; wip_match_opcode 'G_ICMP'
7973 /* 23073 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
7974 /* 23076 */ // Label 387: @23076
7975 /* 23076 */ GIM_Try, /*On fail goto*//*Label 388*/ GIMT_Encode4(23087), // Rule ID 162 //
7976 /* 23081 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
7977 /* 23084 */ // MIs[0] root
7978 /* 23084 */ // No operand predicates
7979 /* 23084 */ // MIs[0] pred
7980 /* 23084 */ // No operand predicates
7981 /* 23084 */ // MIs[0] lhs
7982 /* 23084 */ // No operand predicates
7983 /* 23084 */ // MIs[0] rhs
7984 /* 23084 */ // No operand predicates
7985 /* 23084 */ // Combiner Rule #118: canonicalize_icmp
7986 /* 23084 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner59),
7987 /* 23087 */ // Label 388: @23087
7988 /* 23087 */ GIM_Reject,
7989 /* 23088 */ // Label 43: @23088
7990 /* 23088 */ GIM_Try, /*On fail goto*//*Label 389*/ GIMT_Encode4(23099), // Rule ID 163 //
7991 /* 23093 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
7992 /* 23096 */ // MIs[0] root
7993 /* 23096 */ // No operand predicates
7994 /* 23096 */ // MIs[0] pred
7995 /* 23096 */ // No operand predicates
7996 /* 23096 */ // MIs[0] lhs
7997 /* 23096 */ // No operand predicates
7998 /* 23096 */ // MIs[0] rhs
7999 /* 23096 */ // No operand predicates
8000 /* 23096 */ // Combiner Rule #119: canonicalize_fcmp
8001 /* 23096 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner60),
8002 /* 23099 */ // Label 389: @23099
8003 /* 23099 */ GIM_Reject,
8004 /* 23100 */ // Label 44: @23100
8005 /* 23100 */ GIM_Try, /*On fail goto*//*Label 390*/ GIMT_Encode4(23111), // Rule ID 109 //
8006 /* 23105 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
8007 /* 23108 */ // Combiner Rule #89: select_same_val; wip_match_opcode 'G_SELECT'
8008 /* 23108 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner44),
8009 /* 23111 */ // Label 390: @23111
8010 /* 23111 */ GIM_Try, /*On fail goto*//*Label 391*/ GIMT_Encode4(23122), // Rule ID 175 //
8011 /* 23116 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled),
8012 /* 23119 */ // Combiner Rule #131: select_constant_cmp; wip_match_opcode 'G_SELECT'
8013 /* 23119 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner68),
8014 /* 23122 */ // Label 391: @23122
8015 /* 23122 */ GIM_Try, /*On fail goto*//*Label 392*/ GIMT_Encode4(23133), // Rule ID 177 //
8016 /* 23127 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule133Enabled),
8017 /* 23130 */ // Combiner Rule #133: match_selects; wip_match_opcode 'G_SELECT'
8018 /* 23130 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
8019 /* 23133 */ // Label 392: @23133
8020 /* 23133 */ GIM_Try, /*On fail goto*//*Label 393*/ GIMT_Encode4(23144), // Rule ID 351 //
8021 /* 23138 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
8022 /* 23141 */ // Combiner Rule #214: select_to_minmax; wip_match_opcode 'G_SELECT'
8023 /* 23141 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
8024 /* 23144 */ // Label 393: @23144
8025 /* 23144 */ GIM_Try_CheckFeatures, /*On fail goto*//*Label 394*/ GIMT_Encode4(23170), GIMT_Encode2(GIFBS_HasFminFmaxLegacy), // Rule ID 436 //
8026 /* 23151 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule264Enabled),
8027 /* 23154 */ GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
8028 /* 23157 */ // MIs[0] cond
8029 /* 23157 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8030 /* 23161 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCMP),
8031 /* 23165 */ // MIs[1] pred
8032 /* 23165 */ // No operand predicates
8033 /* 23165 */ // MIs[1] lhs
8034 /* 23165 */ // No operand predicates
8035 /* 23165 */ // MIs[1] rhs
8036 /* 23165 */ // No operand predicates
8037 /* 23165 */ // MIs[0] true
8038 /* 23165 */ // No operand predicates
8039 /* 23165 */ // MIs[0] false
8040 /* 23165 */ // No operand predicates
8041 /* 23165 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8042 /* 23167 */ // Combiner Rule #264: fcmp_select_to_fmin_fmax_legacy
8043 /* 23167 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner159),
8044 /* 23170 */ // Label 394: @23170
8045 /* 23170 */ GIM_Try, /*On fail goto*//*Label 395*/ GIMT_Encode4(23219), // Rule ID 178 //
8046 /* 23175 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule134Enabled),
8047 /* 23178 */ // MIs[0] dst
8048 /* 23178 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
8049 /* 23182 */ // MIs[0] c
8050 /* 23182 */ // No operand predicates
8051 /* 23182 */ // MIs[0] x
8052 /* 23182 */ // No operand predicates
8053 /* 23182 */ // MIs[0] Operand 3
8054 /* 23182 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
8055 /* 23186 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
8056 /* 23190 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8057 /* 23193 */ // Combiner Rule #134: select_zero_false
8058 /* 23193 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FREEZE),
8059 /* 23196 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8060 /* 23201 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
8061 /* 23203 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
8062 /* 23207 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
8063 /* 23211 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // c
8064 /* 23215 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
8065 /* 23218 */ GIR_EraseRootFromParent_Done,
8066 /* 23219 */ // Label 395: @23219
8067 /* 23219 */ GIM_Try, /*On fail goto*//*Label 396*/ GIMT_Encode4(23240), // Rule ID 176 //
8068 /* 23224 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled),
8069 /* 23227 */ // MIs[0] root
8070 /* 23227 */ // No operand predicates
8071 /* 23227 */ // MIs[0] tst
8072 /* 23227 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8073 /* 23231 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
8074 /* 23235 */ // MIs[1] tst1
8075 /* 23235 */ // No operand predicates
8076 /* 23235 */ // MIs[1] a
8077 /* 23235 */ // No operand predicates
8078 /* 23235 */ // MIs[1] b
8079 /* 23235 */ // No operand predicates
8080 /* 23235 */ // MIs[0] x
8081 /* 23235 */ // No operand predicates
8082 /* 23235 */ // MIs[0] y
8083 /* 23235 */ // No operand predicates
8084 /* 23235 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8085 /* 23237 */ // Combiner Rule #132: select_to_iminmax
8086 /* 23237 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
8087 /* 23240 */ // Label 396: @23240
8088 /* 23240 */ GIM_Try, /*On fail goto*//*Label 397*/ GIMT_Encode4(23276), // Rule ID 179 //
8089 /* 23245 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule135Enabled),
8090 /* 23248 */ // MIs[0] dst
8091 /* 23248 */ // No operand predicates
8092 /* 23248 */ // MIs[0] c
8093 /* 23248 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8094 /* 23252 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
8095 /* 23256 */ // MIs[1] src
8096 /* 23256 */ // No operand predicates
8097 /* 23256 */ // MIs[1] Operand 2
8098 /* 23256 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 255,
8099 /* 23260 */ // MIs[0] x
8100 /* 23260 */ // No operand predicates
8101 /* 23260 */ // MIs[0] y
8102 /* 23260 */ // No operand predicates
8103 /* 23260 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8104 /* 23262 */ // Combiner Rule #135: select_not
8105 /* 23262 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SELECT),
8106 /* 23265 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8107 /* 23267 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
8108 /* 23271 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
8109 /* 23273 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
8110 /* 23275 */ GIR_EraseRootFromParent_Done,
8111 /* 23276 */ // Label 397: @23276
8112 /* 23276 */ GIM_Try, /*On fail goto*//*Label 398*/ GIMT_Encode4(23305), // Rule ID 174 //
8113 /* 23281 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule130Enabled),
8114 /* 23284 */ // MIs[0] dst
8115 /* 23284 */ // No operand predicates
8116 /* 23284 */ // MIs[0] undef
8117 /* 23284 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8118 /* 23288 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8119 /* 23292 */ // MIs[0] x
8120 /* 23292 */ // No operand predicates
8121 /* 23292 */ // MIs[0] y
8122 /* 23292 */ // No operand predicates
8123 /* 23292 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
8124 /* 23297 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8125 /* 23299 */ // Combiner Rule #130: select_undef_cmp
8126 /* 23299 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
8127 /* 23304 */ GIR_EraseRootFromParent_Done,
8128 /* 23305 */ // Label 398: @23305
8129 /* 23305 */ GIM_Reject,
8130 /* 23306 */ // Label 45: @23306
8131 /* 23306 */ GIM_Try, /*On fail goto*//*Label 399*/ GIMT_Encode4(23317), // Rule ID 362 //
8132 /* 23311 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8133 /* 23314 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDO'
8134 /* 23314 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8135 /* 23317 */ // Label 399: @23317
8136 /* 23317 */ GIM_Try, /*On fail goto*//*Label 400*/ GIMT_Encode4(23328), // Rule ID 408 //
8137 /* 23322 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule243Enabled),
8138 /* 23325 */ // Combiner Rule #243: match_addos; wip_match_opcode 'G_UADDO'
8139 /* 23325 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner152),
8140 /* 23328 */ // Label 400: @23328
8141 /* 23328 */ GIM_Reject,
8142 /* 23329 */ // Label 46: @23329
8143 /* 23329 */ GIM_Try, /*On fail goto*//*Label 401*/ GIMT_Encode4(23340), // Rule ID 210 //
8144 /* 23334 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
8145 /* 23337 */ // Combiner Rule #164: adde_to_addo; wip_match_opcode 'G_UADDE'
8146 /* 23337 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
8147 /* 23340 */ // Label 401: @23340
8148 /* 23340 */ GIM_Reject,
8149 /* 23341 */ // Label 47: @23341
8150 /* 23341 */ GIM_Try, /*On fail goto*//*Label 402*/ GIMT_Encode4(23352), // Rule ID 410 //
8151 /* 23346 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule244Enabled),
8152 /* 23349 */ // Combiner Rule #244: match_subo_no_overflow; wip_match_opcode 'G_USUBO'
8153 /* 23349 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
8154 /* 23352 */ // Label 402: @23352
8155 /* 23352 */ GIM_Reject,
8156 /* 23353 */ // Label 48: @23353
8157 /* 23353 */ GIM_Try, /*On fail goto*//*Label 403*/ GIMT_Encode4(23364), // Rule ID 212 //
8158 /* 23358 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
8159 /* 23361 */ // Combiner Rule #164: adde_to_addo; wip_match_opcode 'G_USUBE'
8160 /* 23361 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
8161 /* 23364 */ // Label 403: @23364
8162 /* 23364 */ GIM_Reject,
8163 /* 23365 */ // Label 49: @23365
8164 /* 23365 */ GIM_Try, /*On fail goto*//*Label 404*/ GIMT_Encode4(23376), // Rule ID 363 //
8165 /* 23370 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8166 /* 23373 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDO'
8167 /* 23373 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8168 /* 23376 */ // Label 404: @23376
8169 /* 23376 */ GIM_Try, /*On fail goto*//*Label 405*/ GIMT_Encode4(23387), // Rule ID 407 //
8170 /* 23381 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule243Enabled),
8171 /* 23384 */ // Combiner Rule #243: match_addos; wip_match_opcode 'G_SADDO'
8172 /* 23384 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner152),
8173 /* 23387 */ // Label 405: @23387
8174 /* 23387 */ GIM_Reject,
8175 /* 23388 */ // Label 50: @23388
8176 /* 23388 */ GIM_Try, /*On fail goto*//*Label 406*/ GIMT_Encode4(23399), // Rule ID 211 //
8177 /* 23393 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
8178 /* 23396 */ // Combiner Rule #164: adde_to_addo; wip_match_opcode 'G_SADDE'
8179 /* 23396 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
8180 /* 23399 */ // Label 406: @23399
8181 /* 23399 */ GIM_Reject,
8182 /* 23400 */ // Label 51: @23400
8183 /* 23400 */ GIM_Try, /*On fail goto*//*Label 407*/ GIMT_Encode4(23411), // Rule ID 409 //
8184 /* 23405 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule244Enabled),
8185 /* 23408 */ // Combiner Rule #244: match_subo_no_overflow; wip_match_opcode 'G_SSUBO'
8186 /* 23408 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
8187 /* 23411 */ // Label 407: @23411
8188 /* 23411 */ GIM_Reject,
8189 /* 23412 */ // Label 52: @23412
8190 /* 23412 */ GIM_Try, /*On fail goto*//*Label 408*/ GIMT_Encode4(23423), // Rule ID 213 //
8191 /* 23417 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
8192 /* 23420 */ // Combiner Rule #164: adde_to_addo; wip_match_opcode 'G_SSUBE'
8193 /* 23420 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
8194 /* 23423 */ // Label 408: @23423
8195 /* 23423 */ GIM_Reject,
8196 /* 23424 */ // Label 53: @23424
8197 /* 23424 */ GIM_Try, /*On fail goto*//*Label 409*/ GIMT_Encode4(23435), // Rule ID 206 //
8198 /* 23429 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
8199 /* 23432 */ // Combiner Rule #162: mulo_by_2; wip_match_opcode 'G_UMULO'
8200 /* 23432 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
8201 /* 23435 */ // Label 409: @23435
8202 /* 23435 */ GIM_Try, /*On fail goto*//*Label 410*/ GIMT_Encode4(23446), // Rule ID 208 //
8203 /* 23440 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
8204 /* 23443 */ // Combiner Rule #163: mulo_by_0; wip_match_opcode 'G_UMULO'
8205 /* 23443 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
8206 /* 23446 */ // Label 410: @23446
8207 /* 23446 */ GIM_Try, /*On fail goto*//*Label 411*/ GIMT_Encode4(23457), // Rule ID 364 //
8208 /* 23451 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8209 /* 23454 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULO'
8210 /* 23454 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8211 /* 23457 */ // Label 411: @23457
8212 /* 23457 */ GIM_Reject,
8213 /* 23458 */ // Label 54: @23458
8214 /* 23458 */ GIM_Try, /*On fail goto*//*Label 412*/ GIMT_Encode4(23469), // Rule ID 207 //
8215 /* 23463 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
8216 /* 23466 */ // Combiner Rule #162: mulo_by_2; wip_match_opcode 'G_SMULO'
8217 /* 23466 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
8218 /* 23469 */ // Label 412: @23469
8219 /* 23469 */ GIM_Try, /*On fail goto*//*Label 413*/ GIMT_Encode4(23480), // Rule ID 209 //
8220 /* 23474 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
8221 /* 23477 */ // Combiner Rule #163: mulo_by_0; wip_match_opcode 'G_SMULO'
8222 /* 23477 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
8223 /* 23480 */ // Label 413: @23480
8224 /* 23480 */ GIM_Try, /*On fail goto*//*Label 414*/ GIMT_Encode4(23491), // Rule ID 365 //
8225 /* 23485 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8226 /* 23488 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULO'
8227 /* 23488 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8228 /* 23491 */ // Label 414: @23491
8229 /* 23491 */ GIM_Reject,
8230 /* 23492 */ // Label 55: @23492
8231 /* 23492 */ GIM_Try, /*On fail goto*//*Label 415*/ GIMT_Encode4(23503), // Rule ID 300 //
8232 /* 23497 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
8233 /* 23500 */ // Combiner Rule #193: mulh_to_lshr; wip_match_opcode 'G_UMULH'
8234 /* 23500 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
8235 /* 23503 */ // Label 415: @23503
8236 /* 23503 */ GIM_Try, /*On fail goto*//*Label 416*/ GIMT_Encode4(23514), // Rule ID 366 //
8237 /* 23508 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8238 /* 23511 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULH'
8239 /* 23511 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8240 /* 23514 */ // Label 416: @23514
8241 /* 23514 */ GIM_Reject,
8242 /* 23515 */ // Label 56: @23515
8243 /* 23515 */ GIM_Try, /*On fail goto*//*Label 417*/ GIMT_Encode4(23526), // Rule ID 367 //
8244 /* 23520 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8245 /* 23523 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULH'
8246 /* 23523 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8247 /* 23526 */ // Label 417: @23526
8248 /* 23526 */ GIM_Reject,
8249 /* 23527 */ // Label 57: @23527
8250 /* 23527 */ GIM_Try, /*On fail goto*//*Label 418*/ GIMT_Encode4(23538), // Rule ID 368 //
8251 /* 23532 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8252 /* 23535 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDSAT'
8253 /* 23535 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8254 /* 23538 */ // Label 418: @23538
8255 /* 23538 */ GIM_Reject,
8256 /* 23539 */ // Label 58: @23539
8257 /* 23539 */ GIM_Try, /*On fail goto*//*Label 419*/ GIMT_Encode4(23550), // Rule ID 369 //
8258 /* 23544 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8259 /* 23547 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDSAT'
8260 /* 23547 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8261 /* 23550 */ // Label 419: @23550
8262 /* 23550 */ GIM_Reject,
8263 /* 23551 */ // Label 59: @23551
8264 /* 23551 */ GIM_Try, /*On fail goto*//*Label 420*/ GIMT_Encode4(23562), // Rule ID 225 //
8265 /* 23556 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
8266 /* 23559 */ // Combiner Rule #169: shift_immed_chain; wip_match_opcode 'G_USHLSAT'
8267 /* 23559 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
8268 /* 23562 */ // Label 420: @23562
8269 /* 23562 */ GIM_Try, /*On fail goto*//*Label 421*/ GIMT_Encode4(23573), // Rule ID 229 //
8270 /* 23567 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
8271 /* 23570 */ // Combiner Rule #170: shift_of_shifted_logic_chain; wip_match_opcode 'G_USHLSAT'
8272 /* 23570 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
8273 /* 23573 */ // Label 421: @23573
8274 /* 23573 */ GIM_Reject,
8275 /* 23574 */ // Label 60: @23574
8276 /* 23574 */ GIM_Try, /*On fail goto*//*Label 422*/ GIMT_Encode4(23585), // Rule ID 224 //
8277 /* 23579 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
8278 /* 23582 */ // Combiner Rule #169: shift_immed_chain; wip_match_opcode 'G_SSHLSAT'
8279 /* 23582 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
8280 /* 23585 */ // Label 422: @23585
8281 /* 23585 */ GIM_Try, /*On fail goto*//*Label 423*/ GIMT_Encode4(23596), // Rule ID 230 //
8282 /* 23590 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
8283 /* 23593 */ // Combiner Rule #170: shift_of_shifted_logic_chain; wip_match_opcode 'G_SSHLSAT'
8284 /* 23593 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
8285 /* 23596 */ // Label 423: @23596
8286 /* 23596 */ GIM_Reject,
8287 /* 23597 */ // Label 61: @23597
8288 /* 23597 */ GIM_Try, /*On fail goto*//*Label 424*/ GIMT_Encode4(23608), // Rule ID 370 //
8289 /* 23602 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8290 /* 23605 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIX'
8291 /* 23605 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8292 /* 23608 */ // Label 424: @23608
8293 /* 23608 */ GIM_Reject,
8294 /* 23609 */ // Label 62: @23609
8295 /* 23609 */ GIM_Try, /*On fail goto*//*Label 425*/ GIMT_Encode4(23620), // Rule ID 371 //
8296 /* 23614 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8297 /* 23617 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIX'
8298 /* 23617 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8299 /* 23620 */ // Label 425: @23620
8300 /* 23620 */ GIM_Reject,
8301 /* 23621 */ // Label 63: @23621
8302 /* 23621 */ GIM_Try, /*On fail goto*//*Label 426*/ GIMT_Encode4(23632), // Rule ID 372 //
8303 /* 23626 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8304 /* 23629 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIXSAT'
8305 /* 23629 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8306 /* 23632 */ // Label 426: @23632
8307 /* 23632 */ GIM_Reject,
8308 /* 23633 */ // Label 64: @23633
8309 /* 23633 */ GIM_Try, /*On fail goto*//*Label 427*/ GIMT_Encode4(23644), // Rule ID 373 //
8310 /* 23638 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8311 /* 23641 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIXSAT'
8312 /* 23641 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8313 /* 23644 */ // Label 427: @23644
8314 /* 23644 */ GIM_Reject,
8315 /* 23645 */ // Label 65: @23645
8316 /* 23645 */ GIM_Try, /*On fail goto*//*Label 428*/ GIMT_Encode4(23656), // Rule ID 301 //
8317 /* 23650 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
8318 /* 23653 */ // Combiner Rule #194: redundant_neg_operands; wip_match_opcode 'G_FADD'
8319 /* 23653 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
8320 /* 23656 */ // Label 428: @23656
8321 /* 23656 */ GIM_Try, /*On fail goto*//*Label 429*/ GIMT_Encode4(23667), // Rule ID 308 //
8322 /* 23661 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule196Enabled),
8323 /* 23664 */ // Combiner Rule #196: combine_fadd_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
8324 /* 23664 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner111),
8325 /* 23667 */ // Label 429: @23667
8326 /* 23667 */ GIM_Try, /*On fail goto*//*Label 430*/ GIMT_Encode4(23678), // Rule ID 309 //
8327 /* 23672 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
8328 /* 23675 */ // Combiner Rule #197: combine_fadd_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
8329 /* 23675 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner112),
8330 /* 23678 */ // Label 430: @23678
8331 /* 23678 */ GIM_Try, /*On fail goto*//*Label 431*/ GIMT_Encode4(23689), // Rule ID 310 //
8332 /* 23683 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
8333 /* 23686 */ // Combiner Rule #198: combine_fadd_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
8334 /* 23686 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
8335 /* 23689 */ // Label 431: @23689
8336 /* 23689 */ GIM_Try, /*On fail goto*//*Label 432*/ GIMT_Encode4(23700), // Rule ID 311 //
8337 /* 23694 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule199Enabled),
8338 /* 23697 */ // Combiner Rule #199: combine_fadd_fpext_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
8339 /* 23697 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114),
8340 /* 23700 */ // Label 432: @23700
8341 /* 23700 */ GIM_Try, /*On fail goto*//*Label 433*/ GIMT_Encode4(23711), // Rule ID 334 //
8342 /* 23705 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
8343 /* 23708 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_FADD'
8344 /* 23708 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
8345 /* 23711 */ // Label 433: @23711
8346 /* 23711 */ GIM_Try, /*On fail goto*//*Label 434*/ GIMT_Encode4(23722), // Rule ID 374 //
8347 /* 23716 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
8348 /* 23719 */ // Combiner Rule #217: commute_fp_constant_to_rhs; wip_match_opcode 'G_FADD'
8349 /* 23719 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8350 /* 23722 */ // Label 434: @23722
8351 /* 23722 */ GIM_Try, /*On fail goto*//*Label 435*/ GIMT_Encode4(23745), // Rule ID 148 //
8352 /* 23727 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
8353 /* 23730 */ // MIs[0] dst
8354 /* 23730 */ // No operand predicates
8355 /* 23730 */ // MIs[0] x
8356 /* 23730 */ // No operand predicates
8357 /* 23730 */ // MIs[0] y
8358 /* 23730 */ // No operand predicates
8359 /* 23730 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
8360 /* 23734 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8361 /* 23739 */ // Combiner Rule #108: right_identity_neg_zero_fp
8362 /* 23739 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8363 /* 23744 */ GIR_EraseRootFromParent_Done,
8364 /* 23745 */ // Label 435: @23745
8365 /* 23745 */ GIM_Try, /*On fail goto*//*Label 436*/ GIMT_Encode4(23774), // Rule ID 149 //
8366 /* 23750 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule109Enabled),
8367 /* 23753 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmNsz),
8368 /* 23759 */ // MIs[0] dst
8369 /* 23759 */ // No operand predicates
8370 /* 23759 */ // MIs[0] x
8371 /* 23759 */ // No operand predicates
8372 /* 23759 */ // MIs[0] y
8373 /* 23759 */ // No operand predicates
8374 /* 23759 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
8375 /* 23763 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8376 /* 23768 */ // Combiner Rule #109: right_identity_neg_zero_fp_nsz
8377 /* 23768 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8378 /* 23773 */ GIR_EraseRootFromParent_Done,
8379 /* 23774 */ // Label 436: @23774
8380 /* 23774 */ GIM_Try, /*On fail goto*//*Label 437*/ GIMT_Encode4(23785), // Rule ID 274 //
8381 /* 23779 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
8382 /* 23782 */ // MIs[0] d
8383 /* 23782 */ // No operand predicates
8384 /* 23782 */ // MIs[0] mi.src0
8385 /* 23782 */ // No operand predicates
8386 /* 23782 */ // MIs[0] mi.src1
8387 /* 23782 */ // No operand predicates
8388 /* 23782 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[0]]
8389 /* 23782 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
8390 /* 23785 */ // Label 437: @23785
8391 /* 23785 */ GIM_Reject,
8392 /* 23786 */ // Label 66: @23786
8393 /* 23786 */ GIM_Try, /*On fail goto*//*Label 438*/ GIMT_Encode4(23797), // Rule ID 302 //
8394 /* 23791 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
8395 /* 23794 */ // Combiner Rule #194: redundant_neg_operands; wip_match_opcode 'G_FSUB'
8396 /* 23794 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
8397 /* 23797 */ // Label 438: @23797
8398 /* 23797 */ GIM_Try, /*On fail goto*//*Label 439*/ GIMT_Encode4(23808), // Rule ID 312 //
8399 /* 23802 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
8400 /* 23805 */ // Combiner Rule #200: combine_fsub_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
8401 /* 23805 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner115),
8402 /* 23808 */ // Label 439: @23808
8403 /* 23808 */ GIM_Try, /*On fail goto*//*Label 440*/ GIMT_Encode4(23819), // Rule ID 313 //
8404 /* 23813 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
8405 /* 23816 */ // Combiner Rule #201: combine_fsub_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
8406 /* 23816 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner116),
8407 /* 23819 */ // Label 440: @23819
8408 /* 23819 */ GIM_Try, /*On fail goto*//*Label 441*/ GIMT_Encode4(23830), // Rule ID 314 //
8409 /* 23824 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule202Enabled),
8410 /* 23827 */ // Combiner Rule #202: combine_fsub_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
8411 /* 23827 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner117),
8412 /* 23830 */ // Label 441: @23830
8413 /* 23830 */ GIM_Try, /*On fail goto*//*Label 442*/ GIMT_Encode4(23841), // Rule ID 315 //
8414 /* 23835 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule203Enabled),
8415 /* 23838 */ // Combiner Rule #203: combine_fsub_fpext_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
8416 /* 23838 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8417 /* 23841 */ // Label 442: @23841
8418 /* 23841 */ GIM_Try, /*On fail goto*//*Label 443*/ GIMT_Encode4(23852), // Rule ID 335 //
8419 /* 23846 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
8420 /* 23849 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_FSUB'
8421 /* 23849 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
8422 /* 23852 */ // Label 443: @23852
8423 /* 23852 */ GIM_Try, /*On fail goto*//*Label 444*/ GIMT_Encode4(23863), // Rule ID 352 //
8424 /* 23857 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
8425 /* 23860 */ // Combiner Rule #215: fsub_to_fneg; wip_match_opcode 'G_FSUB'
8426 /* 23860 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
8427 /* 23863 */ // Label 444: @23863
8428 /* 23863 */ GIM_Try, /*On fail goto*//*Label 445*/ GIMT_Encode4(23874), // Rule ID 275 //
8429 /* 23868 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
8430 /* 23871 */ // MIs[0] d
8431 /* 23871 */ // No operand predicates
8432 /* 23871 */ // MIs[0] mi.src0
8433 /* 23871 */ // No operand predicates
8434 /* 23871 */ // MIs[0] mi.src1
8435 /* 23871 */ // No operand predicates
8436 /* 23871 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[1]]
8437 /* 23871 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
8438 /* 23874 */ // Label 445: @23874
8439 /* 23874 */ GIM_Reject,
8440 /* 23875 */ // Label 67: @23875
8441 /* 23875 */ GIM_Try, /*On fail goto*//*Label 446*/ GIMT_Encode4(23886), // Rule ID 303 //
8442 /* 23880 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
8443 /* 23883 */ // Combiner Rule #194: redundant_neg_operands; wip_match_opcode 'G_FMUL'
8444 /* 23883 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
8445 /* 23886 */ // Label 446: @23886
8446 /* 23886 */ GIM_Try, /*On fail goto*//*Label 447*/ GIMT_Encode4(23897), // Rule ID 333 //
8447 /* 23891 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
8448 /* 23894 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_FMUL'
8449 /* 23894 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
8450 /* 23897 */ // Label 447: @23897
8451 /* 23897 */ GIM_Try, /*On fail goto*//*Label 448*/ GIMT_Encode4(23908), // Rule ID 375 //
8452 /* 23902 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
8453 /* 23905 */ // Combiner Rule #217: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMUL'
8454 /* 23905 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8455 /* 23908 */ // Label 448: @23908
8456 /* 23908 */ GIM_Try, /*On fail goto*//*Label 449*/ GIMT_Encode4(23929), // Rule ID 438 //
8457 /* 23913 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule266Enabled),
8458 /* 23916 */ // MIs[0] dst
8459 /* 23916 */ // No operand predicates
8460 /* 23916 */ // MIs[0] x
8461 /* 23916 */ // No operand predicates
8462 /* 23916 */ // MIs[0] select
8463 /* 23916 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8464 /* 23920 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
8465 /* 23924 */ // MIs[1] y
8466 /* 23924 */ // No operand predicates
8467 /* 23924 */ // MIs[1] A
8468 /* 23924 */ // No operand predicates
8469 /* 23924 */ // MIs[1] B
8470 /* 23924 */ // No operand predicates
8471 /* 23924 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8472 /* 23926 */ // Combiner Rule #266: combine_fmul_with_select_to_fldexp
8473 /* 23926 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner161),
8474 /* 23929 */ // Label 449: @23929
8475 /* 23929 */ GIM_Try, /*On fail goto*//*Label 450*/ GIMT_Encode4(23952), // Rule ID 138 //
8476 /* 23934 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule100Enabled),
8477 /* 23937 */ // MIs[0] dst
8478 /* 23937 */ // No operand predicates
8479 /* 23937 */ // MIs[0] x
8480 /* 23937 */ // No operand predicates
8481 /* 23937 */ // MIs[0] y
8482 /* 23937 */ // No operand predicates
8483 /* 23937 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
8484 /* 23941 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8485 /* 23946 */ // Combiner Rule #100: right_identity_one_fp
8486 /* 23946 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8487 /* 23951 */ GIR_EraseRootFromParent_Done,
8488 /* 23952 */ // Label 450: @23952
8489 /* 23952 */ GIM_Try, /*On fail goto*//*Label 451*/ GIMT_Encode4(23972), // Rule ID 150 //
8490 /* 23957 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled),
8491 /* 23960 */ // MIs[0] dst
8492 /* 23960 */ // No operand predicates
8493 /* 23960 */ // MIs[0] x
8494 /* 23960 */ // No operand predicates
8495 /* 23960 */ // MIs[0] y
8496 /* 23960 */ // No operand predicates
8497 /* 23960 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner8),
8498 /* 23964 */ // Combiner Rule #110: right_identity_neg_one_fp
8499 /* 23964 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
8500 /* 23967 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8501 /* 23969 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
8502 /* 23971 */ GIR_EraseRootFromParent_Done,
8503 /* 23972 */ // Label 451: @23972
8504 /* 23972 */ GIM_Try, /*On fail goto*//*Label 452*/ GIMT_Encode4(23983), // Rule ID 276 //
8505 /* 23977 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
8506 /* 23980 */ // MIs[0] d
8507 /* 23980 */ // No operand predicates
8508 /* 23980 */ // MIs[0] mi.src0
8509 /* 23980 */ // No operand predicates
8510 /* 23980 */ // MIs[0] mi.src1
8511 /* 23980 */ // No operand predicates
8512 /* 23980 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[2]]
8513 /* 23980 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
8514 /* 23983 */ // Label 452: @23983
8515 /* 23983 */ GIM_Reject,
8516 /* 23984 */ // Label 68: @23984
8517 /* 23984 */ GIM_Try, /*On fail goto*//*Label 453*/ GIMT_Encode4(23995), // Rule ID 287 //
8518 /* 23989 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule189Enabled),
8519 /* 23992 */ // Combiner Rule #189: constant_fold_fma; wip_match_opcode 'G_FMA'
8520 /* 23992 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
8521 /* 23995 */ // Label 453: @23995
8522 /* 23995 */ GIM_Try, /*On fail goto*//*Label 454*/ GIMT_Encode4(24006), // Rule ID 306 //
8523 /* 24000 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
8524 /* 24003 */ // Combiner Rule #194: redundant_neg_operands; wip_match_opcode 'G_FMA'
8525 /* 24003 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
8526 /* 24006 */ // Label 454: @24006
8527 /* 24006 */ GIM_Reject,
8528 /* 24007 */ // Label 69: @24007
8529 /* 24007 */ GIM_Try, /*On fail goto*//*Label 455*/ GIMT_Encode4(24018), // Rule ID 286 //
8530 /* 24012 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule189Enabled),
8531 /* 24015 */ // Combiner Rule #189: constant_fold_fma; wip_match_opcode 'G_FMAD'
8532 /* 24015 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
8533 /* 24018 */ // Label 455: @24018
8534 /* 24018 */ GIM_Try, /*On fail goto*//*Label 456*/ GIMT_Encode4(24029), // Rule ID 305 //
8535 /* 24023 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
8536 /* 24026 */ // Combiner Rule #194: redundant_neg_operands; wip_match_opcode 'G_FMAD'
8537 /* 24026 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
8538 /* 24029 */ // Label 456: @24029
8539 /* 24029 */ GIM_Reject,
8540 /* 24030 */ // Label 70: @24030
8541 /* 24030 */ GIM_Try, /*On fail goto*//*Label 457*/ GIMT_Encode4(24041), // Rule ID 304 //
8542 /* 24035 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
8543 /* 24038 */ // Combiner Rule #194: redundant_neg_operands; wip_match_opcode 'G_FDIV'
8544 /* 24038 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
8545 /* 24041 */ // Label 457: @24041
8546 /* 24041 */ GIM_Try, /*On fail goto*//*Label 458*/ GIMT_Encode4(24052), // Rule ID 336 //
8547 /* 24046 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
8548 /* 24049 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_FDIV'
8549 /* 24049 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
8550 /* 24052 */ // Label 458: @24052
8551 /* 24052 */ GIM_Try, /*On fail goto*//*Label 459*/ GIMT_Encode4(24091), // Rule ID 449 //
8552 /* 24057 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule272Enabled),
8553 /* 24060 */ GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s16,
8554 /* 24063 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s16,
8555 /* 24066 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmContract),
8556 /* 24072 */ // MIs[0] y
8557 /* 24072 */ // No operand predicates
8558 /* 24072 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8559 /* 24076 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSQRT),
8560 /* 24080 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::FmContract),
8561 /* 24086 */ // MIs[1] x
8562 /* 24086 */ // No operand predicates
8563 /* 24086 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8564 /* 24088 */ // Combiner Rule #272: fdiv_by_sqrt_to_rsq_f16
8565 /* 24088 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner167),
8566 /* 24091 */ // Label 459: @24091
8567 /* 24091 */ GIM_Try, /*On fail goto*//*Label 460*/ GIMT_Encode4(24102), // Rule ID 277 //
8568 /* 24096 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
8569 /* 24099 */ // MIs[0] d
8570 /* 24099 */ // No operand predicates
8571 /* 24099 */ // MIs[0] mi.src0
8572 /* 24099 */ // No operand predicates
8573 /* 24099 */ // MIs[0] mi.src1
8574 /* 24099 */ // No operand predicates
8575 /* 24099 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[3]]
8576 /* 24099 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
8577 /* 24102 */ // Label 460: @24102
8578 /* 24102 */ GIM_Try, /*On fail goto*//*Label 461*/ GIMT_Encode4(24113), // Rule ID 349 //
8579 /* 24107 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
8580 /* 24110 */ // MIs[0] dst
8581 /* 24110 */ // No operand predicates
8582 /* 24110 */ // MIs[0] src1
8583 /* 24110 */ // No operand predicates
8584 /* 24110 */ // MIs[0] src2
8585 /* 24110 */ // No operand predicates
8586 /* 24110 */ // Combiner Rule #212: fdiv_repeated_divison
8587 /* 24110 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner125),
8588 /* 24113 */ // Label 461: @24113
8589 /* 24113 */ GIM_Reject,
8590 /* 24114 */ // Label 71: @24114
8591 /* 24114 */ GIM_Try, /*On fail goto*//*Label 462*/ GIMT_Encode4(24125), // Rule ID 337 //
8592 /* 24119 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
8593 /* 24122 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_FREM'
8594 /* 24122 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
8595 /* 24125 */ // Label 462: @24125
8596 /* 24125 */ GIM_Try, /*On fail goto*//*Label 463*/ GIMT_Encode4(24136), // Rule ID 278 //
8597 /* 24130 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
8598 /* 24133 */ // MIs[0] d
8599 /* 24133 */ // No operand predicates
8600 /* 24133 */ // MIs[0] mi.src0
8601 /* 24133 */ // No operand predicates
8602 /* 24133 */ // MIs[0] mi.src1
8603 /* 24133 */ // No operand predicates
8604 /* 24133 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[4]]
8605 /* 24133 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
8606 /* 24136 */ // Label 463: @24136
8607 /* 24136 */ GIM_Reject,
8608 /* 24137 */ // Label 72: @24137
8609 /* 24137 */ GIM_Try, /*On fail goto*//*Label 464*/ GIMT_Encode4(24158), // Rule ID 218 //
8610 /* 24142 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
8611 /* 24145 */ // MIs[0] dst
8612 /* 24145 */ // No operand predicates
8613 /* 24145 */ // MIs[0] float
8614 /* 24145 */ // No operand predicates
8615 /* 24145 */ // MIs[0] int
8616 /* 24145 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8617 /* 24149 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8618 /* 24153 */ // MIs[1] imm
8619 /* 24153 */ // No operand predicates
8620 /* 24153 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8621 /* 24155 */ // Combiner Rule #166: expand_const_fpowi
8622 /* 24155 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
8623 /* 24158 */ // Label 464: @24158
8624 /* 24158 */ GIM_Reject,
8625 /* 24159 */ // Label 73: @24159
8626 /* 24159 */ GIM_Try, /*On fail goto*//*Label 465*/ GIMT_Encode4(24180), // Rule ID 192 //
8627 /* 24164 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
8628 /* 24167 */ // MIs[0] dst
8629 /* 24167 */ // No operand predicates
8630 /* 24167 */ // MIs[0] src0
8631 /* 24167 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8632 /* 24171 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8633 /* 24175 */ // MIs[1] cst
8634 /* 24175 */ // No operand predicates
8635 /* 24175 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8636 /* 24177 */ // Combiner Rule #148: constant_fold_flog2
8637 /* 24177 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8638 /* 24180 */ // Label 465: @24180
8639 /* 24180 */ GIM_Reject,
8640 /* 24181 */ // Label 74: @24181
8641 /* 24181 */ GIM_Try, /*On fail goto*//*Label 466*/ GIMT_Encode4(24192), // Rule ID 446 //
8642 /* 24186 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule270Enabled),
8643 /* 24189 */ // Combiner Rule #270: foldable_fneg; wip_match_opcode 'G_FNEG'
8644 /* 24189 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner165),
8645 /* 24192 */ // Label 466: @24192
8646 /* 24192 */ GIM_Try, /*On fail goto*//*Label 467*/ GIMT_Encode4(24213), // Rule ID 189 //
8647 /* 24197 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
8648 /* 24200 */ // MIs[0] dst
8649 /* 24200 */ // No operand predicates
8650 /* 24200 */ // MIs[0] src0
8651 /* 24200 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8652 /* 24204 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8653 /* 24208 */ // MIs[1] cst
8654 /* 24208 */ // No operand predicates
8655 /* 24208 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8656 /* 24210 */ // Combiner Rule #145: constant_fold_fneg
8657 /* 24210 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8658 /* 24213 */ // Label 467: @24213
8659 /* 24213 */ GIM_Try, /*On fail goto*//*Label 468*/ GIMT_Encode4(24242), // Rule ID 136 //
8660 /* 24218 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule98Enabled),
8661 /* 24221 */ // MIs[0] dst
8662 /* 24221 */ // No operand predicates
8663 /* 24221 */ // MIs[0] t
8664 /* 24221 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8665 /* 24225 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
8666 /* 24229 */ // MIs[1] src
8667 /* 24229 */ // No operand predicates
8668 /* 24229 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
8669 /* 24234 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8670 /* 24236 */ // Combiner Rule #98: fneg_fneg_fold
8671 /* 24236 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
8672 /* 24241 */ GIR_EraseRootFromParent_Done,
8673 /* 24242 */ // Label 468: @24242
8674 /* 24242 */ GIM_Reject,
8675 /* 24243 */ // Label 75: @24243
8676 /* 24243 */ GIM_Try, /*On fail goto*//*Label 469*/ GIMT_Encode4(24264), // Rule ID 194 //
8677 /* 24248 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
8678 /* 24251 */ // MIs[0] dst
8679 /* 24251 */ // No operand predicates
8680 /* 24251 */ // MIs[0] src0
8681 /* 24251 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8682 /* 24255 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8683 /* 24259 */ // MIs[1] cst
8684 /* 24259 */ // No operand predicates
8685 /* 24259 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8686 /* 24261 */ // Combiner Rule #150: constant_fold_fpext
8687 /* 24261 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8688 /* 24264 */ // Label 469: @24264
8689 /* 24264 */ GIM_Reject,
8690 /* 24265 */ // Label 76: @24265
8691 /* 24265 */ GIM_Try_CheckFeatures, /*On fail goto*//*Label 470*/ GIMT_Encode4(24288), GIMT_Encode2(GIFBS_Has16BitInsts_NotHasMed3_16), // Rule ID 437 //
8692 /* 24272 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule265Enabled),
8693 /* 24275 */ // MIs[0] fptrunc_dst
8694 /* 24275 */ // No operand predicates
8695 /* 24275 */ // MIs[0] fmed3_dst
8696 /* 24275 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8697 /* 24279 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(AMDGPU::G_AMDGPU_FMED3),
8698 /* 24283 */ // MIs[1] src0
8699 /* 24283 */ // No operand predicates
8700 /* 24283 */ // MIs[1] src1
8701 /* 24283 */ // No operand predicates
8702 /* 24283 */ // MIs[1] src2
8703 /* 24283 */ // No operand predicates
8704 /* 24283 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8705 /* 24285 */ // Combiner Rule #265: expand_promoted_fmed3
8706 /* 24285 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
8707 /* 24288 */ // Label 470: @24288
8708 /* 24288 */ GIM_Try, /*On fail goto*//*Label 471*/ GIMT_Encode4(24309), // Rule ID 193 //
8709 /* 24293 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule149Enabled),
8710 /* 24296 */ // MIs[0] dst
8711 /* 24296 */ // No operand predicates
8712 /* 24296 */ // MIs[0] src0
8713 /* 24296 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8714 /* 24300 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8715 /* 24304 */ // MIs[1] cst
8716 /* 24304 */ // No operand predicates
8717 /* 24304 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8718 /* 24306 */ // Combiner Rule #149: constant_fold_fptrunc
8719 /* 24306 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8720 /* 24309 */ // Label 471: @24309
8721 /* 24309 */ GIM_Try, /*On fail goto*//*Label 472*/ GIMT_Encode4(24330), // Rule ID 147 //
8722 /* 24314 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
8723 /* 24317 */ // MIs[0] dst
8724 /* 24317 */ // No operand predicates
8725 /* 24317 */ // MIs[0] src1
8726 /* 24317 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8727 /* 24321 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
8728 /* 24325 */ // MIs[1] src0
8729 /* 24325 */ // No operand predicates
8730 /* 24325 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8731 /* 24327 */ // Combiner Rule #107: fptrunc_fpext_fold
8732 /* 24327 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
8733 /* 24330 */ // Label 472: @24330
8734 /* 24330 */ GIM_Reject,
8735 /* 24331 */ // Label 77: @24331
8736 /* 24331 */ GIM_Try, /*On fail goto*//*Label 473*/ GIMT_Encode4(24352), // Rule ID 98 //
8737 /* 24336 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
8738 /* 24339 */ // MIs[0] dst
8739 /* 24339 */ // No operand predicates
8740 /* 24339 */ // MIs[0] __unary_undef_to_undef_match_0.x
8741 /* 24339 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8742 /* 24343 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8743 /* 24347 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8744 /* 24349 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[5]]
8745 /* 24349 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
8746 /* 24352 */ // Label 473: @24352
8747 /* 24352 */ GIM_Reject,
8748 /* 24353 */ // Label 78: @24353
8749 /* 24353 */ GIM_Try, /*On fail goto*//*Label 474*/ GIMT_Encode4(24374), // Rule ID 99 //
8750 /* 24358 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
8751 /* 24361 */ // MIs[0] dst
8752 /* 24361 */ // No operand predicates
8753 /* 24361 */ // MIs[0] __unary_undef_to_undef_match_0.x
8754 /* 24361 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8755 /* 24365 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8756 /* 24369 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8757 /* 24371 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[6]]
8758 /* 24371 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
8759 /* 24374 */ // Label 474: @24374
8760 /* 24374 */ GIM_Reject,
8761 /* 24375 */ // Label 79: @24375
8762 /* 24375 */ GIM_Try, /*On fail goto*//*Label 475*/ GIMT_Encode4(24386), // Rule ID 82 //
8763 /* 24380 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
8764 /* 24383 */ // Combiner Rule #77: undef_to_fp_zero; wip_match_opcode 'G_SITOFP'
8765 /* 24383 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
8766 /* 24386 */ // Label 475: @24386
8767 /* 24386 */ GIM_Try, /*On fail goto*//*Label 476*/ GIMT_Encode4(24397), // Rule ID 440 //
8768 /* 24391 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule267Enabled),
8769 /* 24394 */ // Combiner Rule #267: uchar_to_float; wip_match_opcode 'G_SITOFP'
8770 /* 24394 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner162),
8771 /* 24397 */ // Label 476: @24397
8772 /* 24397 */ GIM_Try, /*On fail goto*//*Label 477*/ GIMT_Encode4(24412), // Rule ID 202 //
8773 /* 24402 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
8774 /* 24405 */ // MIs[0] dst
8775 /* 24405 */ // No operand predicates
8776 /* 24405 */ // MIs[0] Operand 1
8777 /* 24405 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
8778 /* 24409 */ // Combiner Rule #158: itof_const_zero_fold_si
8779 /* 24409 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
8780 /* 24412 */ // Label 477: @24412
8781 /* 24412 */ GIM_Reject,
8782 /* 24413 */ // Label 80: @24413
8783 /* 24413 */ GIM_Try, /*On fail goto*//*Label 478*/ GIMT_Encode4(24424), // Rule ID 81 //
8784 /* 24418 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
8785 /* 24421 */ // Combiner Rule #77: undef_to_fp_zero; wip_match_opcode 'G_UITOFP'
8786 /* 24421 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
8787 /* 24424 */ // Label 478: @24424
8788 /* 24424 */ GIM_Try, /*On fail goto*//*Label 479*/ GIMT_Encode4(24435), // Rule ID 439 //
8789 /* 24429 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule267Enabled),
8790 /* 24432 */ // Combiner Rule #267: uchar_to_float; wip_match_opcode 'G_UITOFP'
8791 /* 24432 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner162),
8792 /* 24435 */ // Label 479: @24435
8793 /* 24435 */ GIM_Try, /*On fail goto*//*Label 480*/ GIMT_Encode4(24450), // Rule ID 203 //
8794 /* 24440 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
8795 /* 24443 */ // MIs[0] dst
8796 /* 24443 */ // No operand predicates
8797 /* 24443 */ // MIs[0] Operand 1
8798 /* 24443 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
8799 /* 24447 */ // Combiner Rule #159: itof_const_zero_fold_ui
8800 /* 24447 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
8801 /* 24450 */ // Label 480: @24450
8802 /* 24450 */ GIM_Reject,
8803 /* 24451 */ // Label 81: @24451
8804 /* 24451 */ GIM_Try, /*On fail goto*//*Label 481*/ GIMT_Encode4(24480), // Rule ID 25 //
8805 /* 24456 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
8806 /* 24459 */ // MIs[0] dst
8807 /* 24459 */ // No operand predicates
8808 /* 24459 */ // MIs[0] src
8809 /* 24459 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8810 /* 24463 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
8811 /* 24467 */ // MIs[1] __idempotent_prop_match_0.x
8812 /* 24467 */ // No operand predicates
8813 /* 24467 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8814 /* 24472 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8815 /* 24474 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[1]]
8816 /* 24474 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8817 /* 24479 */ GIR_EraseRootFromParent_Done,
8818 /* 24480 */ // Label 481: @24480
8819 /* 24480 */ GIM_Try, /*On fail goto*//*Label 482*/ GIMT_Encode4(24501), // Rule ID 190 //
8820 /* 24485 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
8821 /* 24488 */ // MIs[0] dst
8822 /* 24488 */ // No operand predicates
8823 /* 24488 */ // MIs[0] src0
8824 /* 24488 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8825 /* 24492 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8826 /* 24496 */ // MIs[1] cst
8827 /* 24496 */ // No operand predicates
8828 /* 24496 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8829 /* 24498 */ // Combiner Rule #146: constant_fold_fabs
8830 /* 24498 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8831 /* 24501 */ // Label 482: @24501
8832 /* 24501 */ GIM_Try, /*On fail goto*//*Label 483*/ GIMT_Encode4(24529), // Rule ID 299 //
8833 /* 24506 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
8834 /* 24509 */ // MIs[0] dst
8835 /* 24509 */ // No operand predicates
8836 /* 24509 */ // MIs[0] tmp
8837 /* 24509 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8838 /* 24513 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
8839 /* 24517 */ // MIs[1] x
8840 /* 24517 */ // No operand predicates
8841 /* 24517 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8842 /* 24519 */ // Combiner Rule #192: fabs_fneg_fold
8843 /* 24519 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FABS),
8844 /* 24522 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8845 /* 24524 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
8846 /* 24528 */ GIR_EraseRootFromParent_Done,
8847 /* 24529 */ // Label 483: @24529
8848 /* 24529 */ GIM_Reject,
8849 /* 24530 */ // Label 82: @24530
8850 /* 24530 */ GIM_Try, /*On fail goto*//*Label 484*/ GIMT_Encode4(24541), // Rule ID 279 //
8851 /* 24535 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
8852 /* 24538 */ // MIs[0] d
8853 /* 24538 */ // No operand predicates
8854 /* 24538 */ // MIs[0] mi.src0
8855 /* 24538 */ // No operand predicates
8856 /* 24538 */ // MIs[0] mi.src1
8857 /* 24538 */ // No operand predicates
8858 /* 24538 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[5]]
8859 /* 24538 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
8860 /* 24541 */ // Label 484: @24541
8861 /* 24541 */ GIM_Reject,
8862 /* 24542 */ // Label 83: @24542
8863 /* 24542 */ GIM_Try, /*On fail goto*//*Label 485*/ GIMT_Encode4(24553), // Rule ID 445 //
8864 /* 24547 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule269Enabled),
8865 /* 24550 */ // Combiner Rule #269: remove_fcanonicalize; wip_match_opcode 'G_FCANONICALIZE'
8866 /* 24550 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner164),
8867 /* 24553 */ // Label 485: @24553
8868 /* 24553 */ GIM_Try, /*On fail goto*//*Label 486*/ GIMT_Encode4(24582), // Rule ID 26 //
8869 /* 24558 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
8870 /* 24561 */ // MIs[0] dst
8871 /* 24561 */ // No operand predicates
8872 /* 24561 */ // MIs[0] src
8873 /* 24561 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8874 /* 24565 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCANONICALIZE),
8875 /* 24569 */ // MIs[1] __idempotent_prop_match_0.x
8876 /* 24569 */ // No operand predicates
8877 /* 24569 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8878 /* 24574 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8879 /* 24576 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[2]]
8880 /* 24576 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8881 /* 24581 */ GIR_EraseRootFromParent_Done,
8882 /* 24582 */ // Label 486: @24582
8883 /* 24582 */ GIM_Reject,
8884 /* 24583 */ // Label 84: @24583
8885 /* 24583 */ GIM_Try, /*On fail goto*//*Label 487*/ GIMT_Encode4(24594), // Rule ID 214 //
8886 /* 24588 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
8887 /* 24591 */ // Combiner Rule #165: combine_minmax_nan; wip_match_opcode 'G_FMINNUM'
8888 /* 24591 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
8889 /* 24594 */ // Label 487: @24594
8890 /* 24594 */ GIM_Try, /*On fail goto*//*Label 488*/ GIMT_Encode4(24605), // Rule ID 338 //
8891 /* 24599 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
8892 /* 24602 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_FMINNUM'
8893 /* 24602 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
8894 /* 24605 */ // Label 488: @24605
8895 /* 24605 */ GIM_Try, /*On fail goto*//*Label 489*/ GIMT_Encode4(24616), // Rule ID 376 //
8896 /* 24610 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
8897 /* 24613 */ // Combiner Rule #217: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM'
8898 /* 24613 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8899 /* 24616 */ // Label 489: @24616
8900 /* 24616 */ GIM_Try, /*On fail goto*//*Label 490*/ GIMT_Encode4(24627), // Rule ID 280 //
8901 /* 24621 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
8902 /* 24624 */ // MIs[0] d
8903 /* 24624 */ // No operand predicates
8904 /* 24624 */ // MIs[0] mi.src0
8905 /* 24624 */ // No operand predicates
8906 /* 24624 */ // MIs[0] mi.src1
8907 /* 24624 */ // No operand predicates
8908 /* 24624 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[6]]
8909 /* 24624 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
8910 /* 24627 */ // Label 490: @24627
8911 /* 24627 */ GIM_Reject,
8912 /* 24628 */ // Label 85: @24628
8913 /* 24628 */ GIM_Try, /*On fail goto*//*Label 491*/ GIMT_Encode4(24639), // Rule ID 215 //
8914 /* 24633 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
8915 /* 24636 */ // Combiner Rule #165: combine_minmax_nan; wip_match_opcode 'G_FMAXNUM'
8916 /* 24636 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
8917 /* 24639 */ // Label 491: @24639
8918 /* 24639 */ GIM_Try, /*On fail goto*//*Label 492*/ GIMT_Encode4(24650), // Rule ID 339 //
8919 /* 24644 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
8920 /* 24647 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_FMAXNUM'
8921 /* 24647 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
8922 /* 24650 */ // Label 492: @24650
8923 /* 24650 */ GIM_Try, /*On fail goto*//*Label 493*/ GIMT_Encode4(24661), // Rule ID 377 //
8924 /* 24655 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
8925 /* 24658 */ // Combiner Rule #217: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM'
8926 /* 24658 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8927 /* 24661 */ // Label 493: @24661
8928 /* 24661 */ GIM_Try, /*On fail goto*//*Label 494*/ GIMT_Encode4(24672), // Rule ID 281 //
8929 /* 24666 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
8930 /* 24669 */ // MIs[0] d
8931 /* 24669 */ // No operand predicates
8932 /* 24669 */ // MIs[0] mi.src0
8933 /* 24669 */ // No operand predicates
8934 /* 24669 */ // MIs[0] mi.src1
8935 /* 24669 */ // No operand predicates
8936 /* 24669 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[7]]
8937 /* 24669 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
8938 /* 24672 */ // Label 494: @24672
8939 /* 24672 */ GIM_Reject,
8940 /* 24673 */ // Label 86: @24673
8941 /* 24673 */ GIM_Try, /*On fail goto*//*Label 495*/ GIMT_Encode4(24684), // Rule ID 378 //
8942 /* 24678 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
8943 /* 24681 */ // Combiner Rule #217: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM_IEEE'
8944 /* 24681 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8945 /* 24684 */ // Label 495: @24684
8946 /* 24684 */ GIM_Reject,
8947 /* 24685 */ // Label 87: @24685
8948 /* 24685 */ GIM_Try, /*On fail goto*//*Label 496*/ GIMT_Encode4(24696), // Rule ID 379 //
8949 /* 24690 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
8950 /* 24693 */ // Combiner Rule #217: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM_IEEE'
8951 /* 24693 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8952 /* 24696 */ // Label 496: @24696
8953 /* 24696 */ GIM_Reject,
8954 /* 24697 */ // Label 88: @24697
8955 /* 24697 */ GIM_Try, /*On fail goto*//*Label 497*/ GIMT_Encode4(24708), // Rule ID 216 //
8956 /* 24702 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
8957 /* 24705 */ // Combiner Rule #165: combine_minmax_nan; wip_match_opcode 'G_FMINIMUM'
8958 /* 24705 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
8959 /* 24708 */ // Label 497: @24708
8960 /* 24708 */ GIM_Try, /*On fail goto*//*Label 498*/ GIMT_Encode4(24719), // Rule ID 340 //
8961 /* 24713 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
8962 /* 24716 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_FMINIMUM'
8963 /* 24716 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
8964 /* 24719 */ // Label 498: @24719
8965 /* 24719 */ GIM_Try, /*On fail goto*//*Label 499*/ GIMT_Encode4(24730), // Rule ID 380 //
8966 /* 24724 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
8967 /* 24727 */ // Combiner Rule #217: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINIMUM'
8968 /* 24727 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8969 /* 24730 */ // Label 499: @24730
8970 /* 24730 */ GIM_Try, /*On fail goto*//*Label 500*/ GIMT_Encode4(24741), // Rule ID 282 //
8971 /* 24735 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
8972 /* 24738 */ // MIs[0] d
8973 /* 24738 */ // No operand predicates
8974 /* 24738 */ // MIs[0] mi.src0
8975 /* 24738 */ // No operand predicates
8976 /* 24738 */ // MIs[0] mi.src1
8977 /* 24738 */ // No operand predicates
8978 /* 24738 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[8]]
8979 /* 24738 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
8980 /* 24741 */ // Label 500: @24741
8981 /* 24741 */ GIM_Reject,
8982 /* 24742 */ // Label 89: @24742
8983 /* 24742 */ GIM_Try, /*On fail goto*//*Label 501*/ GIMT_Encode4(24753), // Rule ID 217 //
8984 /* 24747 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
8985 /* 24750 */ // Combiner Rule #165: combine_minmax_nan; wip_match_opcode 'G_FMAXIMUM'
8986 /* 24750 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
8987 /* 24753 */ // Label 501: @24753
8988 /* 24753 */ GIM_Try, /*On fail goto*//*Label 502*/ GIMT_Encode4(24764), // Rule ID 341 //
8989 /* 24758 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
8990 /* 24761 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_FMAXIMUM'
8991 /* 24761 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
8992 /* 24764 */ // Label 502: @24764
8993 /* 24764 */ GIM_Try, /*On fail goto*//*Label 503*/ GIMT_Encode4(24775), // Rule ID 381 //
8994 /* 24769 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
8995 /* 24772 */ // Combiner Rule #217: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXIMUM'
8996 /* 24772 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8997 /* 24775 */ // Label 503: @24775
8998 /* 24775 */ GIM_Try, /*On fail goto*//*Label 504*/ GIMT_Encode4(24786), // Rule ID 283 //
8999 /* 24780 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
9000 /* 24783 */ // MIs[0] d
9001 /* 24783 */ // No operand predicates
9002 /* 24783 */ // MIs[0] mi.src0
9003 /* 24783 */ // No operand predicates
9004 /* 24783 */ // MIs[0] mi.src1
9005 /* 24783 */ // No operand predicates
9006 /* 24783 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[9]]
9007 /* 24783 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
9008 /* 24786 */ // Label 504: @24786
9009 /* 24786 */ GIM_Reject,
9010 /* 24787 */ // Label 90: @24787
9011 /* 24787 */ GIM_Try, /*On fail goto*//*Label 505*/ GIMT_Encode4(24798), // Rule ID 284 //
9012 /* 24792 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
9013 /* 24795 */ // MIs[0] d
9014 /* 24795 */ // No operand predicates
9015 /* 24795 */ // MIs[0] mi.src0
9016 /* 24795 */ // No operand predicates
9017 /* 24795 */ // MIs[0] mi.src1
9018 /* 24795 */ // No operand predicates
9019 /* 24795 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[10]]
9020 /* 24795 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
9021 /* 24798 */ // Label 505: @24798
9022 /* 24798 */ GIM_Reject,
9023 /* 24799 */ // Label 91: @24799
9024 /* 24799 */ GIM_Try, /*On fail goto*//*Label 506*/ GIMT_Encode4(24810), // Rule ID 285 //
9025 /* 24804 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
9026 /* 24807 */ // MIs[0] d
9027 /* 24807 */ // No operand predicates
9028 /* 24807 */ // MIs[0] mi.src0
9029 /* 24807 */ // No operand predicates
9030 /* 24807 */ // MIs[0] mi.src1
9031 /* 24807 */ // No operand predicates
9032 /* 24807 */ // Combiner Rule #188: constant_fold_fp_binop @ [mi[11]]
9033 /* 24807 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
9034 /* 24810 */ // Label 506: @24810
9035 /* 24810 */ GIM_Reject,
9036 /* 24811 */ // Label 92: @24811
9037 /* 24811 */ GIM_Try, /*On fail goto*//*Label 507*/ GIMT_Encode4(24822), // Rule ID 159 //
9038 /* 24816 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule115Enabled),
9039 /* 24819 */ // Combiner Rule #115: reassoc_ptradd; wip_match_opcode 'G_PTR_ADD'
9040 /* 24819 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
9041 /* 24822 */ // Label 507: @24822
9042 /* 24822 */ GIM_Try, /*On fail goto*//*Label 508*/ GIMT_Encode4(24833), // Rule ID 161 //
9043 /* 24827 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled),
9044 /* 24830 */ // Combiner Rule #117: ptr_add_immed_chain; wip_match_opcode 'G_PTR_ADD'
9045 /* 24830 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner58),
9046 /* 24833 */ // Label 508: @24833
9047 /* 24833 */ GIM_Try, /*On fail goto*//*Label 509*/ GIMT_Encode4(24844), // Rule ID 204 //
9048 /* 24838 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
9049 /* 24841 */ // Combiner Rule #160: const_ptradd_to_i2p; wip_match_opcode 'G_PTR_ADD'
9050 /* 24841 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
9051 /* 24844 */ // Label 509: @24844
9052 /* 24844 */ GIM_Try, /*On fail goto*//*Label 510*/ GIMT_Encode4(24855), // Rule ID 220 //
9053 /* 24849 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
9054 /* 24852 */ // Combiner Rule #168: ptr_add_with_zero; wip_match_opcode 'G_PTR_ADD'
9055 /* 24852 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner90),
9056 /* 24855 */ // Label 510: @24855
9057 /* 24855 */ GIM_Try, /*On fail goto*//*Label 511*/ GIMT_Encode4(24866), // Rule ID 257 //
9058 /* 24860 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
9059 /* 24863 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_PTR_ADD'
9060 /* 24863 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
9061 /* 24866 */ // Label 511: @24866
9062 /* 24866 */ GIM_Try, /*On fail goto*//*Label 512*/ GIMT_Encode4(24877), // Rule ID 318 //
9063 /* 24871 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
9064 /* 24874 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_PTR_ADD'
9065 /* 24874 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
9066 /* 24877 */ // Label 512: @24877
9067 /* 24877 */ GIM_Try, /*On fail goto*//*Label 513*/ GIMT_Encode4(24900), // Rule ID 117 //
9068 /* 24882 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
9069 /* 24885 */ // MIs[0] dst
9070 /* 24885 */ // No operand predicates
9071 /* 24885 */ // MIs[0] lhs
9072 /* 24885 */ // No operand predicates
9073 /* 24885 */ // MIs[0] Operand 2
9074 /* 24885 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
9075 /* 24889 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9076 /* 24894 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[7]]
9077 /* 24894 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9078 /* 24899 */ GIR_EraseRootFromParent_Done,
9079 /* 24900 */ // Label 513: @24900
9080 /* 24900 */ GIM_Reject,
9081 /* 24901 */ // Label 93: @24901
9082 /* 24901 */ GIM_Try, /*On fail goto*//*Label 514*/ GIMT_Encode4(24912), // Rule ID 270 //
9083 /* 24906 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
9084 /* 24909 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_SMIN'
9085 /* 24909 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
9086 /* 24912 */ // Label 514: @24912
9087 /* 24912 */ GIM_Try, /*On fail goto*//*Label 515*/ GIMT_Encode4(24923), // Rule ID 329 //
9088 /* 24917 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
9089 /* 24920 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_SMIN'
9090 /* 24920 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
9091 /* 24923 */ // Label 515: @24923
9092 /* 24923 */ GIM_Try, /*On fail goto*//*Label 516*/ GIMT_Encode4(24934), // Rule ID 358 //
9093 /* 24928 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
9094 /* 24931 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_SMIN'
9095 /* 24931 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
9096 /* 24934 */ // Label 516: @24934
9097 /* 24934 */ GIM_Reject,
9098 /* 24935 */ // Label 94: @24935
9099 /* 24935 */ GIM_Try, /*On fail goto*//*Label 517*/ GIMT_Encode4(24946), // Rule ID 271 //
9100 /* 24940 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
9101 /* 24943 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_SMAX'
9102 /* 24943 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
9103 /* 24946 */ // Label 517: @24946
9104 /* 24946 */ GIM_Try, /*On fail goto*//*Label 518*/ GIMT_Encode4(24957), // Rule ID 330 //
9105 /* 24951 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
9106 /* 24954 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_SMAX'
9107 /* 24954 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
9108 /* 24957 */ // Label 518: @24957
9109 /* 24957 */ GIM_Try, /*On fail goto*//*Label 519*/ GIMT_Encode4(24968), // Rule ID 359 //
9110 /* 24962 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
9111 /* 24965 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_SMAX'
9112 /* 24965 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
9113 /* 24968 */ // Label 519: @24968
9114 /* 24968 */ GIM_Reject,
9115 /* 24969 */ // Label 95: @24969
9116 /* 24969 */ GIM_Try, /*On fail goto*//*Label 520*/ GIMT_Encode4(24980), // Rule ID 272 //
9117 /* 24974 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
9118 /* 24977 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_UMIN'
9119 /* 24977 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
9120 /* 24980 */ // Label 520: @24980
9121 /* 24980 */ GIM_Try, /*On fail goto*//*Label 521*/ GIMT_Encode4(24991), // Rule ID 331 //
9122 /* 24985 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
9123 /* 24988 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_UMIN'
9124 /* 24988 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
9125 /* 24991 */ // Label 521: @24991
9126 /* 24991 */ GIM_Try, /*On fail goto*//*Label 522*/ GIMT_Encode4(25002), // Rule ID 360 //
9127 /* 24996 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
9128 /* 24999 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_UMIN'
9129 /* 24999 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
9130 /* 25002 */ // Label 522: @25002
9131 /* 25002 */ GIM_Reject,
9132 /* 25003 */ // Label 96: @25003
9133 /* 25003 */ GIM_Try, /*On fail goto*//*Label 523*/ GIMT_Encode4(25014), // Rule ID 273 //
9134 /* 25008 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
9135 /* 25011 */ // Combiner Rule #187: constant_fold_binop; wip_match_opcode 'G_UMAX'
9136 /* 25011 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
9137 /* 25014 */ // Label 523: @25014
9138 /* 25014 */ GIM_Try, /*On fail goto*//*Label 524*/ GIMT_Encode4(25025), // Rule ID 332 //
9139 /* 25019 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
9140 /* 25022 */ // Combiner Rule #204: fold_binop_into_select; wip_match_opcode 'G_UMAX'
9141 /* 25022 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
9142 /* 25025 */ // Label 524: @25025
9143 /* 25025 */ GIM_Try, /*On fail goto*//*Label 525*/ GIMT_Encode4(25036), // Rule ID 361 //
9144 /* 25030 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
9145 /* 25033 */ // Combiner Rule #216: commute_int_constant_to_rhs; wip_match_opcode 'G_UMAX'
9146 /* 25033 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
9147 /* 25036 */ // Label 525: @25036
9148 /* 25036 */ GIM_Reject,
9149 /* 25037 */ // Label 97: @25037
9150 /* 25037 */ GIM_Try, /*On fail goto*//*Label 526*/ GIMT_Encode4(25048), // Rule ID 92 //
9151 /* 25042 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
9152 /* 25045 */ // Combiner Rule #82: unary_undef_to_zero; wip_match_opcode 'G_ABS'
9153 /* 25045 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
9154 /* 25048 */ // Label 526: @25048
9155 /* 25048 */ GIM_Try, /*On fail goto*//*Label 527*/ GIMT_Encode4(25059), // Rule ID 296 //
9156 /* 25053 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9157 /* 25056 */ // MIs[0] dst
9158 /* 25056 */ // No operand predicates
9159 /* 25056 */ // MIs[0] mi.src
9160 /* 25056 */ // No operand predicates
9161 /* 25056 */ // Combiner Rule #191: constant_fold_unary_int_op @ [mi[5]]
9162 /* 25056 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
9163 /* 25059 */ // Label 527: @25059
9164 /* 25059 */ GIM_Reject,
9165 /* 25060 */ // Label 98: @25060
9166 /* 25060 */ GIM_Try, /*On fail goto*//*Label 528*/ GIMT_Encode4(25071), // Rule ID 188 //
9167 /* 25065 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule144Enabled),
9168 /* 25068 */ // Combiner Rule #144: opt_brcond_by_inverting_cond; wip_match_opcode 'G_BR'
9169 /* 25068 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
9170 /* 25071 */ // Label 528: @25071
9171 /* 25071 */ GIM_Reject,
9172 /* 25072 */ // Label 99: @25072
9173 /* 25072 */ GIM_Try, /*On fail goto*//*Label 529*/ GIMT_Encode4(25083), // Rule ID 32 //
9174 /* 25077 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
9175 /* 25080 */ // Combiner Rule #30: insert_vector_elt_oob; wip_match_opcode 'G_INSERT_VECTOR_ELT'
9176 /* 25080 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
9177 /* 25083 */ // Label 529: @25083
9178 /* 25083 */ GIM_Try, /*On fail goto*//*Label 530*/ GIMT_Encode4(25094), // Rule ID 73 //
9179 /* 25088 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
9180 /* 25091 */ // Combiner Rule #71: combine_insert_vec_elts_build_vector; wip_match_opcode 'G_INSERT_VECTOR_ELT'
9181 /* 25091 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
9182 /* 25094 */ // Label 530: @25094
9183 /* 25094 */ GIM_Try, /*On fail goto*//*Label 531*/ GIMT_Encode4(25105), // Rule ID 107 //
9184 /* 25099 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
9185 /* 25102 */ // Combiner Rule #88: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_INSERT_VECTOR_ELT'
9186 /* 25102 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
9187 /* 25105 */ // Label 531: @25105
9188 /* 25105 */ GIM_Try, /*On fail goto*//*Label 532*/ GIMT_Encode4(25144), // Rule ID 44 //
9189 /* 25110 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
9190 /* 25113 */ // MIs[0] root
9191 /* 25113 */ // No operand predicates
9192 /* 25113 */ // MIs[0] src
9193 /* 25113 */ // No operand predicates
9194 /* 25113 */ // MIs[0] elt
9195 /* 25113 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9196 /* 25117 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_EXTRACT_VECTOR_ELT),
9197 /* 25121 */ // MIs[1] src
9198 /* 25121 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
9199 /* 25126 */ // MIs[1] idx
9200 /* 25126 */ // No operand predicates
9201 /* 25126 */ // MIs[0] idx
9202 /* 25126 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
9203 /* 25131 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9204 /* 25136 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9205 /* 25138 */ // Combiner Rule #42: insert_vector_element_extract_vector_element
9206 /* 25138 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9207 /* 25143 */ GIR_EraseRootFromParent_Done,
9208 /* 25144 */ // Label 532: @25144
9209 /* 25144 */ GIM_Try, /*On fail goto*//*Label 533*/ GIMT_Encode4(25177), // Rule ID 30 //
9210 /* 25149 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
9211 /* 25152 */ // MIs[0] root
9212 /* 25152 */ // No operand predicates
9213 /* 25152 */ // MIs[0] src
9214 /* 25152 */ // No operand predicates
9215 /* 25152 */ // MIs[0] elt
9216 /* 25152 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9217 /* 25156 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9218 /* 25160 */ // MIs[0] idx
9219 /* 25160 */ // No operand predicates
9220 /* 25160 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
9221 /* 25164 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9222 /* 25169 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9223 /* 25171 */ // Combiner Rule #28: insert_vector_element_elt_undef
9224 /* 25171 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9225 /* 25176 */ GIR_EraseRootFromParent_Done,
9226 /* 25177 */ // Label 533: @25177
9227 /* 25177 */ GIM_Try, /*On fail goto*//*Label 534*/ GIMT_Encode4(25201), // Rule ID 29 //
9228 /* 25182 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
9229 /* 25185 */ // MIs[0] root
9230 /* 25185 */ // No operand predicates
9231 /* 25185 */ // MIs[0] src
9232 /* 25185 */ // No operand predicates
9233 /* 25185 */ // MIs[0] elt
9234 /* 25185 */ // No operand predicates
9235 /* 25185 */ // MIs[0] idx
9236 /* 25185 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
9237 /* 25189 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9238 /* 25193 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9239 /* 25195 */ // Combiner Rule #27: insert_vector_element_idx_undef
9240 /* 25195 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9241 /* 25198 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
9242 /* 25200 */ GIR_EraseRootFromParent_Done,
9243 /* 25201 */ // Label 534: @25201
9244 /* 25201 */ GIM_Reject,
9245 /* 25202 */ // Label 100: @25202
9246 /* 25202 */ GIM_Try, /*On fail goto*//*Label 535*/ GIMT_Encode4(25213), // Rule ID 31 //
9247 /* 25207 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
9248 /* 25210 */ // Combiner Rule #29: match_extract_of_element; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
9249 /* 25210 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
9250 /* 25213 */ // Label 535: @25213
9251 /* 25213 */ GIM_Try, /*On fail goto*//*Label 536*/ GIMT_Encode4(25224), // Rule ID 74 //
9252 /* 25218 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
9253 /* 25221 */ // Combiner Rule #72: extract_vec_elt_build_vec; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
9254 /* 25221 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner28),
9255 /* 25224 */ // Label 536: @25224
9256 /* 25224 */ GIM_Try, /*On fail goto*//*Label 537*/ GIMT_Encode4(25235), // Rule ID 80 //
9257 /* 25229 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
9258 /* 25232 */ // Combiner Rule #76: combine_extracted_vector_load; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
9259 /* 25232 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
9260 /* 25235 */ // Label 537: @25235
9261 /* 25235 */ GIM_Try, /*On fail goto*//*Label 538*/ GIMT_Encode4(25246), // Rule ID 108 //
9262 /* 25240 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
9263 /* 25243 */ // Combiner Rule #88: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
9264 /* 25243 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
9265 /* 25246 */ // Label 538: @25246
9266 /* 25246 */ GIM_Try, /*On fail goto*//*Label 539*/ GIMT_Encode4(25270), // Rule ID 42 //
9267 /* 25251 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
9268 /* 25254 */ // MIs[0] root
9269 /* 25254 */ // No operand predicates
9270 /* 25254 */ // MIs[0] src
9271 /* 25254 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9272 /* 25258 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9273 /* 25262 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/9,
9274 /* 25265 */ // MIs[1] x
9275 /* 25265 */ // No operand predicates
9276 /* 25265 */ // MIs[1] y
9277 /* 25265 */ // No operand predicates
9278 /* 25265 */ // MIs[1] z
9279 /* 25265 */ // No operand predicates
9280 /* 25265 */ // MIs[1] a
9281 /* 25265 */ // No operand predicates
9282 /* 25265 */ // MIs[1] b
9283 /* 25265 */ // No operand predicates
9284 /* 25265 */ // MIs[1] c
9285 /* 25265 */ // No operand predicates
9286 /* 25265 */ // MIs[1] d
9287 /* 25265 */ // No operand predicates
9288 /* 25265 */ // MIs[1] e
9289 /* 25265 */ // No operand predicates
9290 /* 25265 */ // MIs[0] idx
9291 /* 25265 */ // No operand predicates
9292 /* 25265 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9293 /* 25267 */ // Combiner Rule #40: extract_vector_element_build_vector_trunc8
9294 /* 25267 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
9295 /* 25270 */ // Label 539: @25270
9296 /* 25270 */ GIM_Try, /*On fail goto*//*Label 540*/ GIMT_Encode4(25294), // Rule ID 41 //
9297 /* 25275 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
9298 /* 25278 */ // MIs[0] root
9299 /* 25278 */ // No operand predicates
9300 /* 25278 */ // MIs[0] src
9301 /* 25278 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9302 /* 25282 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9303 /* 25286 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/8,
9304 /* 25289 */ // MIs[1] x
9305 /* 25289 */ // No operand predicates
9306 /* 25289 */ // MIs[1] y
9307 /* 25289 */ // No operand predicates
9308 /* 25289 */ // MIs[1] z
9309 /* 25289 */ // No operand predicates
9310 /* 25289 */ // MIs[1] a
9311 /* 25289 */ // No operand predicates
9312 /* 25289 */ // MIs[1] b
9313 /* 25289 */ // No operand predicates
9314 /* 25289 */ // MIs[1] c
9315 /* 25289 */ // No operand predicates
9316 /* 25289 */ // MIs[1] d
9317 /* 25289 */ // No operand predicates
9318 /* 25289 */ // MIs[0] idx
9319 /* 25289 */ // No operand predicates
9320 /* 25289 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9321 /* 25291 */ // Combiner Rule #39: extract_vector_element_build_vector_trunc7
9322 /* 25291 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
9323 /* 25294 */ // Label 540: @25294
9324 /* 25294 */ GIM_Try, /*On fail goto*//*Label 541*/ GIMT_Encode4(25318), // Rule ID 40 //
9325 /* 25299 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
9326 /* 25302 */ // MIs[0] root
9327 /* 25302 */ // No operand predicates
9328 /* 25302 */ // MIs[0] src
9329 /* 25302 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9330 /* 25306 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9331 /* 25310 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/7,
9332 /* 25313 */ // MIs[1] x
9333 /* 25313 */ // No operand predicates
9334 /* 25313 */ // MIs[1] y
9335 /* 25313 */ // No operand predicates
9336 /* 25313 */ // MIs[1] z
9337 /* 25313 */ // No operand predicates
9338 /* 25313 */ // MIs[1] a
9339 /* 25313 */ // No operand predicates
9340 /* 25313 */ // MIs[1] b
9341 /* 25313 */ // No operand predicates
9342 /* 25313 */ // MIs[1] c
9343 /* 25313 */ // No operand predicates
9344 /* 25313 */ // MIs[0] idx
9345 /* 25313 */ // No operand predicates
9346 /* 25313 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9347 /* 25315 */ // Combiner Rule #38: extract_vector_element_build_vector_trunc6
9348 /* 25315 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
9349 /* 25318 */ // Label 541: @25318
9350 /* 25318 */ GIM_Try, /*On fail goto*//*Label 542*/ GIMT_Encode4(25342), // Rule ID 39 //
9351 /* 25323 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
9352 /* 25326 */ // MIs[0] root
9353 /* 25326 */ // No operand predicates
9354 /* 25326 */ // MIs[0] src
9355 /* 25326 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9356 /* 25330 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9357 /* 25334 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/6,
9358 /* 25337 */ // MIs[1] x
9359 /* 25337 */ // No operand predicates
9360 /* 25337 */ // MIs[1] y
9361 /* 25337 */ // No operand predicates
9362 /* 25337 */ // MIs[1] z
9363 /* 25337 */ // No operand predicates
9364 /* 25337 */ // MIs[1] a
9365 /* 25337 */ // No operand predicates
9366 /* 25337 */ // MIs[1] b
9367 /* 25337 */ // No operand predicates
9368 /* 25337 */ // MIs[0] idx
9369 /* 25337 */ // No operand predicates
9370 /* 25337 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9371 /* 25339 */ // Combiner Rule #37: extract_vector_element_build_vector_trunc5
9372 /* 25339 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
9373 /* 25342 */ // Label 542: @25342
9374 /* 25342 */ GIM_Try, /*On fail goto*//*Label 543*/ GIMT_Encode4(25366), // Rule ID 38 //
9375 /* 25347 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
9376 /* 25350 */ // MIs[0] root
9377 /* 25350 */ // No operand predicates
9378 /* 25350 */ // MIs[0] src
9379 /* 25350 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9380 /* 25354 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9381 /* 25358 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/5,
9382 /* 25361 */ // MIs[1] x
9383 /* 25361 */ // No operand predicates
9384 /* 25361 */ // MIs[1] y
9385 /* 25361 */ // No operand predicates
9386 /* 25361 */ // MIs[1] z
9387 /* 25361 */ // No operand predicates
9388 /* 25361 */ // MIs[1] a
9389 /* 25361 */ // No operand predicates
9390 /* 25361 */ // MIs[0] idx
9391 /* 25361 */ // No operand predicates
9392 /* 25361 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9393 /* 25363 */ // Combiner Rule #36: extract_vector_element_build_vector_trunc4
9394 /* 25363 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
9395 /* 25366 */ // Label 543: @25366
9396 /* 25366 */ GIM_Try, /*On fail goto*//*Label 544*/ GIMT_Encode4(25390), // Rule ID 37 //
9397 /* 25371 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
9398 /* 25374 */ // MIs[0] root
9399 /* 25374 */ // No operand predicates
9400 /* 25374 */ // MIs[0] src
9401 /* 25374 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9402 /* 25378 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9403 /* 25382 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
9404 /* 25385 */ // MIs[1] x
9405 /* 25385 */ // No operand predicates
9406 /* 25385 */ // MIs[1] y
9407 /* 25385 */ // No operand predicates
9408 /* 25385 */ // MIs[1] z
9409 /* 25385 */ // No operand predicates
9410 /* 25385 */ // MIs[0] idx
9411 /* 25385 */ // No operand predicates
9412 /* 25385 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9413 /* 25387 */ // Combiner Rule #35: extract_vector_element_build_vector_trunc3
9414 /* 25387 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
9415 /* 25390 */ // Label 544: @25390
9416 /* 25390 */ GIM_Try, /*On fail goto*//*Label 545*/ GIMT_Encode4(25424), // Rule ID 33 //
9417 /* 25395 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
9418 /* 25398 */ // MIs[0] root
9419 /* 25398 */ // No operand predicates
9420 /* 25398 */ // MIs[0] src
9421 /* 25398 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9422 /* 25402 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
9423 /* 25406 */ // MIs[1] x
9424 /* 25406 */ // No operand predicates
9425 /* 25406 */ // MIs[1] value
9426 /* 25406 */ // No operand predicates
9427 /* 25406 */ // MIs[1] idx
9428 /* 25406 */ // No operand predicates
9429 /* 25406 */ // MIs[0] idx
9430 /* 25406 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
9431 /* 25411 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
9432 /* 25416 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9433 /* 25418 */ // Combiner Rule #31: extract_vector_element_not_const
9434 /* 25418 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
9435 /* 25423 */ GIR_EraseRootFromParent_Done,
9436 /* 25424 */ // Label 545: @25424
9437 /* 25424 */ GIM_Try, /*On fail goto*//*Label 546*/ GIMT_Encode4(25445), // Rule ID 34 //
9438 /* 25429 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
9439 /* 25432 */ // MIs[0] root
9440 /* 25432 */ // No operand predicates
9441 /* 25432 */ // MIs[0] src
9442 /* 25432 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9443 /* 25436 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
9444 /* 25440 */ // MIs[1] x
9445 /* 25440 */ // No operand predicates
9446 /* 25440 */ // MIs[1] value
9447 /* 25440 */ // No operand predicates
9448 /* 25440 */ // MIs[1] idx2
9449 /* 25440 */ // No operand predicates
9450 /* 25440 */ // MIs[0] idx1
9451 /* 25440 */ // No operand predicates
9452 /* 25440 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9453 /* 25442 */ // Combiner Rule #32: extract_vector_element_different_indices
9454 /* 25442 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
9455 /* 25445 */ // Label 546: @25445
9456 /* 25445 */ GIM_Try, /*On fail goto*//*Label 547*/ GIMT_Encode4(25474), // Rule ID 43 //
9457 /* 25450 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
9458 /* 25453 */ // MIs[0] root
9459 /* 25453 */ // No operand predicates
9460 /* 25453 */ // MIs[0] src
9461 /* 25453 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9462 /* 25457 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHUFFLE_VECTOR),
9463 /* 25461 */ // MIs[1] src1
9464 /* 25461 */ // No operand predicates
9465 /* 25461 */ // MIs[1] src2
9466 /* 25461 */ // No operand predicates
9467 /* 25461 */ // MIs[1] mask
9468 /* 25461 */ // No operand predicates
9469 /* 25461 */ // MIs[0] idx
9470 /* 25461 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
9471 /* 25465 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
9472 /* 25469 */ // MIs[2] imm
9473 /* 25469 */ // No operand predicates
9474 /* 25469 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9475 /* 25471 */ // Combiner Rule #41: extract_vector_element_shuffle_vector
9476 /* 25471 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
9477 /* 25474 */ // Label 547: @25474
9478 /* 25474 */ GIM_Try, /*On fail goto*//*Label 548*/ GIMT_Encode4(25498), // Rule ID 36 //
9479 /* 25479 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
9480 /* 25482 */ // MIs[0] root
9481 /* 25482 */ // No operand predicates
9482 /* 25482 */ // MIs[0] src
9483 /* 25482 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9484 /* 25486 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9485 /* 25490 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
9486 /* 25493 */ // MIs[1] x
9487 /* 25493 */ // No operand predicates
9488 /* 25493 */ // MIs[1] y
9489 /* 25493 */ // No operand predicates
9490 /* 25493 */ // MIs[0] idx
9491 /* 25493 */ // No operand predicates
9492 /* 25493 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9493 /* 25495 */ // Combiner Rule #34: extract_vector_element_build_vector_trunc2
9494 /* 25495 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
9495 /* 25498 */ // Label 548: @25498
9496 /* 25498 */ GIM_Try, /*On fail goto*//*Label 549*/ GIMT_Encode4(25530), // Rule ID 35 //
9497 /* 25503 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
9498 /* 25506 */ // MIs[0] root
9499 /* 25506 */ // No operand predicates
9500 /* 25506 */ // MIs[0] src
9501 /* 25506 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9502 /* 25510 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
9503 /* 25514 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
9504 /* 25517 */ // MIs[1] unused
9505 /* 25517 */ // No operand predicates
9506 /* 25517 */ // MIs[0] idx
9507 /* 25517 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
9508 /* 25521 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
9509 /* 25525 */ // MIs[2] imm
9510 /* 25525 */ // No operand predicates
9511 /* 25525 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9512 /* 25527 */ // Combiner Rule #33: extract_vector_element_build_vector
9513 /* 25527 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
9514 /* 25530 */ // Label 549: @25530
9515 /* 25530 */ GIM_Try, /*On fail goto*//*Label 550*/ GIMT_Encode4(25554), // Rule ID 27 //
9516 /* 25535 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
9517 /* 25538 */ // MIs[0] root
9518 /* 25538 */ // No operand predicates
9519 /* 25538 */ // MIs[0] vector
9520 /* 25538 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9521 /* 25542 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9522 /* 25546 */ // MIs[0] idx
9523 /* 25546 */ // No operand predicates
9524 /* 25546 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9525 /* 25548 */ // Combiner Rule #25: match_extract_of_element_undef_vector
9526 /* 25548 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9527 /* 25551 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
9528 /* 25553 */ GIR_EraseRootFromParent_Done,
9529 /* 25554 */ // Label 550: @25554
9530 /* 25554 */ GIM_Try, /*On fail goto*//*Label 551*/ GIMT_Encode4(25578), // Rule ID 28 //
9531 /* 25559 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
9532 /* 25562 */ // MIs[0] root
9533 /* 25562 */ // No operand predicates
9534 /* 25562 */ // MIs[0] vector
9535 /* 25562 */ // No operand predicates
9536 /* 25562 */ // MIs[0] idx
9537 /* 25562 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9538 /* 25566 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9539 /* 25570 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9540 /* 25572 */ // Combiner Rule #26: match_extract_of_element_undef_index
9541 /* 25572 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9542 /* 25575 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
9543 /* 25577 */ GIR_EraseRootFromParent_Done,
9544 /* 25578 */ // Label 551: @25578
9545 /* 25578 */ GIM_Reject,
9546 /* 25579 */ // Label 101: @25579
9547 /* 25579 */ GIM_Try, /*On fail goto*//*Label 552*/ GIMT_Encode4(25590), // Rule ID 103 //
9548 /* 25584 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
9549 /* 25587 */ // Combiner Rule #85: propagate_undef_all_ops; wip_match_opcode 'G_SHUFFLE_VECTOR'
9550 /* 25587 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
9551 /* 25590 */ // Label 552: @25590
9552 /* 25590 */ GIM_Try, /*On fail goto*//*Label 553*/ GIMT_Encode4(25601), // Rule ID 105 //
9553 /* 25595 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
9554 /* 25598 */ // Combiner Rule #86: propagate_undef_shuffle_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
9555 /* 25598 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner41),
9556 /* 25601 */ // Label 553: @25601
9557 /* 25601 */ GIM_Try, /*On fail goto*//*Label 554*/ GIMT_Encode4(25612), // Rule ID 393 //
9558 /* 25606 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule229Enabled),
9559 /* 25609 */ // Combiner Rule #229: combine_shuffle_concat; wip_match_opcode 'G_SHUFFLE_VECTOR'
9560 /* 25609 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner138),
9561 /* 25612 */ // Label 554: @25612
9562 /* 25612 */ GIM_Try, /*On fail goto*//*Label 555*/ GIMT_Encode4(25623), // Rule ID 395 //
9563 /* 25617 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule231Enabled),
9564 /* 25620 */ // Combiner Rule #231: combine_shuffle_disjoint_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
9565 /* 25620 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner140),
9566 /* 25623 */ // Label 555: @25623
9567 /* 25623 */ GIM_Try, /*On fail goto*//*Label 556*/ GIMT_Encode4(25644), // Rule ID 394 //
9568 /* 25628 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule230Enabled),
9569 /* 25631 */ // MIs[0] root
9570 /* 25631 */ // No operand predicates
9571 /* 25631 */ // MIs[0] src1
9572 /* 25631 */ // No operand predicates
9573 /* 25631 */ // MIs[0] undef
9574 /* 25631 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9575 /* 25635 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9576 /* 25639 */ // MIs[0] mask
9577 /* 25639 */ // No operand predicates
9578 /* 25639 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9579 /* 25641 */ // Combiner Rule #230: combine_shuffle_undef_rhs
9580 /* 25641 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner139),
9581 /* 25644 */ // Label 556: @25644
9582 /* 25644 */ GIM_Reject,
9583 /* 25645 */ // Label 102: @25645
9584 /* 25645 */ GIM_Try, /*On fail goto*//*Label 557*/ GIMT_Encode4(25656), // Rule ID 293 //
9585 /* 25650 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9586 /* 25653 */ // MIs[0] dst
9587 /* 25653 */ // No operand predicates
9588 /* 25653 */ // MIs[0] mi.src
9589 /* 25653 */ // No operand predicates
9590 /* 25653 */ // Combiner Rule #191: constant_fold_unary_int_op @ [mi[2]]
9591 /* 25653 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
9592 /* 25656 */ // Label 557: @25656
9593 /* 25656 */ GIM_Reject,
9594 /* 25657 */ // Label 103: @25657
9595 /* 25657 */ GIM_Try, /*On fail goto*//*Label 558*/ GIMT_Encode4(25668), // Rule ID 294 //
9596 /* 25662 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9597 /* 25665 */ // MIs[0] dst
9598 /* 25665 */ // No operand predicates
9599 /* 25665 */ // MIs[0] mi.src
9600 /* 25665 */ // No operand predicates
9601 /* 25665 */ // Combiner Rule #191: constant_fold_unary_int_op @ [mi[3]]
9602 /* 25665 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
9603 /* 25668 */ // Label 558: @25668
9604 /* 25668 */ GIM_Reject,
9605 /* 25669 */ // Label 104: @25669
9606 /* 25669 */ GIM_Try, /*On fail goto*//*Label 559*/ GIMT_Encode4(25680), // Rule ID 291 //
9607 /* 25674 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9608 /* 25677 */ // MIs[0] dst
9609 /* 25677 */ // No operand predicates
9610 /* 25677 */ // MIs[0] mi.src
9611 /* 25677 */ // No operand predicates
9612 /* 25677 */ // Combiner Rule #191: constant_fold_unary_int_op @ [mi[0]]
9613 /* 25677 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
9614 /* 25680 */ // Label 559: @25680
9615 /* 25680 */ GIM_Try, /*On fail goto*//*Label 560*/ GIMT_Encode4(25691), // Rule ID 416 //
9616 /* 25685 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule250Enabled),
9617 /* 25688 */ // MIs[0] dst
9618 /* 25688 */ // No operand predicates
9619 /* 25688 */ // MIs[0] src
9620 /* 25688 */ // No operand predicates
9621 /* 25688 */ // Combiner Rule #250: ctlz_to_ctls
9622 /* 25688 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner157),
9623 /* 25691 */ // Label 560: @25691
9624 /* 25691 */ GIM_Reject,
9625 /* 25692 */ // Label 105: @25692
9626 /* 25692 */ GIM_Try, /*On fail goto*//*Label 561*/ GIMT_Encode4(25703), // Rule ID 292 //
9627 /* 25697 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9628 /* 25700 */ // MIs[0] dst
9629 /* 25700 */ // No operand predicates
9630 /* 25700 */ // MIs[0] mi.src
9631 /* 25700 */ // No operand predicates
9632 /* 25700 */ // Combiner Rule #191: constant_fold_unary_int_op @ [mi[1]]
9633 /* 25700 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
9634 /* 25703 */ // Label 561: @25703
9635 /* 25703 */ GIM_Try, /*On fail goto*//*Label 562*/ GIMT_Encode4(25714), // Rule ID 417 //
9636 /* 25708 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule251Enabled),
9637 /* 25711 */ // MIs[0] dst
9638 /* 25711 */ // No operand predicates
9639 /* 25711 */ // MIs[0] src
9640 /* 25711 */ // No operand predicates
9641 /* 25711 */ // Combiner Rule #251: ctlz_zero_poison_to_ctls
9642 /* 25711 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner157),
9643 /* 25714 */ // Label 562: @25714
9644 /* 25714 */ GIM_Reject,
9645 /* 25715 */ // Label 106: @25715
9646 /* 25715 */ GIM_Try, /*On fail goto*//*Label 563*/ GIMT_Encode4(25726), // Rule ID 295 //
9647 /* 25720 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9648 /* 25723 */ // MIs[0] dst
9649 /* 25723 */ // No operand predicates
9650 /* 25723 */ // MIs[0] mi.src
9651 /* 25723 */ // No operand predicates
9652 /* 25723 */ // Combiner Rule #191: constant_fold_unary_int_op @ [mi[4]]
9653 /* 25723 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
9654 /* 25726 */ // Label 563: @25726
9655 /* 25726 */ GIM_Reject,
9656 /* 25727 */ // Label 107: @25727
9657 /* 25727 */ GIM_Try, /*On fail goto*//*Label 564*/ GIMT_Encode4(25738), // Rule ID 297 //
9658 /* 25732 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9659 /* 25735 */ // MIs[0] dst
9660 /* 25735 */ // No operand predicates
9661 /* 25735 */ // MIs[0] mi.src
9662 /* 25735 */ // No operand predicates
9663 /* 25735 */ // Combiner Rule #191: constant_fold_unary_int_op @ [mi[6]]
9664 /* 25735 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
9665 /* 25738 */ // Label 564: @25738
9666 /* 25738 */ GIM_Reject,
9667 /* 25739 */ // Label 108: @25739
9668 /* 25739 */ GIM_Try, /*On fail goto*//*Label 565*/ GIMT_Encode4(25783), // Rule ID 248 //
9669 /* 25744 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
9670 /* 25747 */ // MIs[0] d
9671 /* 25747 */ // No operand predicates
9672 /* 25747 */ // MIs[0] src
9673 /* 25747 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9674 /* 25751 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
9675 /* 25755 */ // MIs[1] rev
9676 /* 25755 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
9677 /* 25759 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
9678 /* 25763 */ // MIs[2] val
9679 /* 25763 */ // No operand predicates
9680 /* 25763 */ // MIs[1] amt
9681 /* 25763 */ // No operand predicates
9682 /* 25763 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner14),
9683 /* 25767 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9684 /* 25769 */ // Combiner Rule #181: bitreverse_lshr
9685 /* 25769 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
9686 /* 25772 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
9687 /* 25774 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
9688 /* 25778 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
9689 /* 25782 */ GIR_EraseRootFromParent_Done,
9690 /* 25783 */ // Label 565: @25783
9691 /* 25783 */ GIM_Try, /*On fail goto*//*Label 566*/ GIMT_Encode4(25827), // Rule ID 247 //
9692 /* 25788 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
9693 /* 25791 */ // MIs[0] d
9694 /* 25791 */ // No operand predicates
9695 /* 25791 */ // MIs[0] src
9696 /* 25791 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9697 /* 25795 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
9698 /* 25799 */ // MIs[1] rev
9699 /* 25799 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
9700 /* 25803 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
9701 /* 25807 */ // MIs[2] val
9702 /* 25807 */ // No operand predicates
9703 /* 25807 */ // MIs[1] amt
9704 /* 25807 */ // No operand predicates
9705 /* 25807 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
9706 /* 25811 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9707 /* 25813 */ // Combiner Rule #180: bitreverse_shl
9708 /* 25813 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_LSHR),
9709 /* 25816 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
9710 /* 25818 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
9711 /* 25822 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
9712 /* 25826 */ GIR_EraseRootFromParent_Done,
9713 /* 25827 */ // Label 566: @25827
9714 /* 25827 */ GIM_Try, /*On fail goto*//*Label 567*/ GIMT_Encode4(25838), // Rule ID 298 //
9715 /* 25832 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9716 /* 25835 */ // MIs[0] dst
9717 /* 25835 */ // No operand predicates
9718 /* 25835 */ // MIs[0] mi.src
9719 /* 25835 */ // No operand predicates
9720 /* 25835 */ // Combiner Rule #191: constant_fold_unary_int_op @ [mi[7]]
9721 /* 25835 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
9722 /* 25838 */ // Label 567: @25838
9723 /* 25838 */ GIM_Reject,
9724 /* 25839 */ // Label 109: @25839
9725 /* 25839 */ GIM_Try, /*On fail goto*//*Label 568*/ GIMT_Encode4(25860), // Rule ID 195 //
9726 /* 25844 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
9727 /* 25847 */ // MIs[0] dst
9728 /* 25847 */ // No operand predicates
9729 /* 25847 */ // MIs[0] src0
9730 /* 25847 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9731 /* 25851 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
9732 /* 25855 */ // MIs[1] cst
9733 /* 25855 */ // No operand predicates
9734 /* 25855 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9735 /* 25857 */ // Combiner Rule #151: constant_fold_fceil
9736 /* 25857 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
9737 /* 25860 */ // Label 568: @25860
9738 /* 25860 */ GIM_Reject,
9739 /* 25861 */ // Label 110: @25861
9740 /* 25861 */ GIM_Try, /*On fail goto*//*Label 569*/ GIMT_Encode4(25872), // Rule ID 448 //
9741 /* 25866 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule271Enabled),
9742 /* 25869 */ // Combiner Rule #271: rcp_sqrt_to_rsq; wip_match_opcode 'G_FSQRT'
9743 /* 25869 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner166),
9744 /* 25872 */ // Label 569: @25872
9745 /* 25872 */ GIM_Try, /*On fail goto*//*Label 570*/ GIMT_Encode4(25893), // Rule ID 191 //
9746 /* 25877 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
9747 /* 25880 */ // MIs[0] dst
9748 /* 25880 */ // No operand predicates
9749 /* 25880 */ // MIs[0] src0
9750 /* 25880 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9751 /* 25884 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
9752 /* 25888 */ // MIs[1] cst
9753 /* 25888 */ // No operand predicates
9754 /* 25888 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9755 /* 25890 */ // Combiner Rule #147: constant_fold_fsqrt
9756 /* 25890 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
9757 /* 25893 */ // Label 570: @25893
9758 /* 25893 */ GIM_Reject,
9759 /* 25894 */ // Label 111: @25894
9760 /* 25894 */ GIM_Try, /*On fail goto*//*Label 571*/ GIMT_Encode4(25915), // Rule ID 196 //
9761 /* 25899 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
9762 /* 25902 */ // MIs[0] dst
9763 /* 25902 */ // No operand predicates
9764 /* 25902 */ // MIs[0] src0
9765 /* 25902 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9766 /* 25906 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
9767 /* 25910 */ // MIs[1] cst
9768 /* 25910 */ // No operand predicates
9769 /* 25910 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9770 /* 25912 */ // Combiner Rule #152: constant_fold_ffloor
9771 /* 25912 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
9772 /* 25915 */ // Label 571: @25915
9773 /* 25915 */ GIM_Reject,
9774 /* 25916 */ // Label 112: @25916
9775 /* 25916 */ GIM_Try, /*On fail goto*//*Label 572*/ GIMT_Encode4(25937), // Rule ID 200 //
9776 /* 25921 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
9777 /* 25924 */ // MIs[0] dst
9778 /* 25924 */ // No operand predicates
9779 /* 25924 */ // MIs[0] src0
9780 /* 25924 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9781 /* 25928 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
9782 /* 25932 */ // MIs[1] cst
9783 /* 25932 */ // No operand predicates
9784 /* 25932 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9785 /* 25934 */ // Combiner Rule #156: constant_fold_frint
9786 /* 25934 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
9787 /* 25937 */ // Label 572: @25937
9788 /* 25937 */ GIM_Reject,
9789 /* 25938 */ // Label 113: @25938
9790 /* 25938 */ GIM_Try, /*On fail goto*//*Label 573*/ GIMT_Encode4(25959), // Rule ID 201 //
9791 /* 25943 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
9792 /* 25946 */ // MIs[0] dst
9793 /* 25946 */ // No operand predicates
9794 /* 25946 */ // MIs[0] src0
9795 /* 25946 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9796 /* 25950 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
9797 /* 25954 */ // MIs[1] cst
9798 /* 25954 */ // No operand predicates
9799 /* 25954 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9800 /* 25956 */ // Combiner Rule #157: constant_fold_fnearbyint
9801 /* 25956 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
9802 /* 25959 */ // Label 573: @25959
9803 /* 25959 */ GIM_Reject,
9804 /* 25960 */ // Label 114: @25960
9805 /* 25960 */ GIM_Try, /*On fail goto*//*Label 574*/ GIMT_Encode4(25971), // Rule ID 441 //
9806 /* 25965 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule268Enabled),
9807 /* 25968 */ // Combiner Rule #268: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE0'
9808 /* 25968 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner163),
9809 /* 25971 */ // Label 574: @25971
9810 /* 25971 */ GIM_Reject,
9811 /* 25972 */ // Label 115: @25972
9812 /* 25972 */ GIM_Try, /*On fail goto*//*Label 575*/ GIMT_Encode4(25983), // Rule ID 442 //
9813 /* 25977 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule268Enabled),
9814 /* 25980 */ // Combiner Rule #268: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE1'
9815 /* 25980 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner163),
9816 /* 25983 */ // Label 575: @25983
9817 /* 25983 */ GIM_Reject,
9818 /* 25984 */ // Label 116: @25984
9819 /* 25984 */ GIM_Try, /*On fail goto*//*Label 576*/ GIMT_Encode4(25995), // Rule ID 443 //
9820 /* 25989 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule268Enabled),
9821 /* 25992 */ // Combiner Rule #268: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE2'
9822 /* 25992 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner163),
9823 /* 25995 */ // Label 576: @25995
9824 /* 25995 */ GIM_Reject,
9825 /* 25996 */ // Label 117: @25996
9826 /* 25996 */ GIM_Try, /*On fail goto*//*Label 577*/ GIMT_Encode4(26007), // Rule ID 444 //
9827 /* 26001 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule268Enabled),
9828 /* 26004 */ // Combiner Rule #268: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE3'
9829 /* 26004 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner163),
9830 /* 26007 */ // Label 577: @26007
9831 /* 26007 */ GIM_Reject,
9832 /* 26008 */ // Label 118: @26008
9833 /* 26008 */ GIM_Reject,
9834 /* 26009 */ }; // Size: 26009 bytes
9835 return MatchTable0;
9836}
9837#undef GIMT_Encode2
9838#undef GIMT_Encode4
9839#undef GIMT_Encode8
9840
9841
9842#endif // GET_GICOMBINER_IMPL
9843
9844#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
9845
9846AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
9847AvailableFunctionFeatures()
9848
9849#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
9850
9851#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
9852
9853, State(0),
9854ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
9855
9856#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
9857
9858