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 346; // "smulu64"
45 case 9: // 5 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 320; // "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': // 1 string to match.
57 if (memcmp(RuleIdentifier.data()+1, "atch_ors", 8) != 0)
58 break;
59 return 279; // "match_ors"
60 case 'n': // 1 string to match.
61 if (memcmp(RuleIdentifier.data()+1, "neg_zext", 8) != 0)
62 break;
63 return 290; // "nneg_zext"
64 case 'o': // 1 string to match.
65 if (memcmp(RuleIdentifier.data()+1, "r_xor_or", 8) != 0)
66 break;
67 return 284; // "or_xor_or"
68 }
69 break;
70 case 10: // 10 strings to match.
71 switch (RuleIdentifier[0]) {
72 default: break;
73 case 'S': // 2 strings to match.
74 if (memcmp(RuleIdentifier.data()+1, "ub", 2) != 0)
75 break;
76 switch (RuleIdentifier[3]) {
77 default: break;
78 case 'S': // 1 string to match.
79 if (memcmp(RuleIdentifier.data()+4, "maxSub", 6) != 0)
80 break;
81 return 325; // "SubSmaxSub"
82 case 'U': // 1 string to match.
83 if (memcmp(RuleIdentifier.data()+4, "maxSub", 6) != 0)
84 break;
85 return 326; // "SubUmaxSub"
86 }
87 break;
88 case 'm': // 2 strings to match.
89 switch (RuleIdentifier[1]) {
90 default: break;
91 case 'a': // 1 string to match.
92 if (memcmp(RuleIdentifier.data()+2, "tch_ands", 8) != 0)
93 break;
94 return 278; // "match_ands"
95 case 'u': // 1 string to match.
96 if (memcmp(RuleIdentifier.data()+2, "l_to_shl", 8) != 0)
97 break;
98 return 20; // "mul_to_shl"
99 }
100 break;
101 case 'o': // 1 string to match.
102 if (memcmp(RuleIdentifier.data()+1, "r_xor_and", 9) != 0)
103 break;
104 return 285; // "or_xor_and"
105 case 'p': // 1 string to match.
106 if (memcmp(RuleIdentifier.data()+1, "2i_to_i2p", 9) != 0)
107 break;
108 return 97; // "p2i_to_i2p"
109 case 's': // 3 strings to match.
110 switch (RuleIdentifier[1]) {
111 default: break;
112 case 'e': // 2 strings to match.
113 switch (RuleIdentifier[2]) {
114 default: break;
115 case 'l': // 1 string to match.
116 if (memcmp(RuleIdentifier.data()+3, "ect_not", 7) != 0)
117 break;
118 return 143; // "select_not"
119 case 'x': // 1 string to match.
120 if (memcmp(RuleIdentifier.data()+3, "t_trunc", 7) != 0)
121 break;
122 return 288; // "sext_trunc"
123 }
124 break;
125 case 'u': // 1 string to match.
126 if (memcmp(RuleIdentifier.data()+2, "b_to_add", 8) != 0)
127 break;
128 return 21; // "sub_to_add"
129 }
130 break;
131 case 'z': // 1 string to match.
132 if (memcmp(RuleIdentifier.data()+1, "ext_trunc", 9) != 0)
133 break;
134 return 289; // "zext_trunc"
135 }
136 break;
137 case 11: // 6 strings to match.
138 switch (RuleIdentifier[0]) {
139 default: break;
140 case 'a': // 1 string to match.
141 if (memcmp(RuleIdentifier.data()+1, "dd_sub_reg", 10) != 0)
142 break;
143 return 105; // "add_sub_reg"
144 case 't': // 4 strings to match.
145 if (memcmp(RuleIdentifier.data()+1, "runc_", 5) != 0)
146 break;
147 switch (RuleIdentifier[6]) {
148 default: break;
149 case 's': // 3 strings to match.
150 switch (RuleIdentifier[7]) {
151 default: break;
152 case 'h': // 1 string to match.
153 if (memcmp(RuleIdentifier.data()+8, "ift", 3) != 0)
154 break;
155 return 154; // "trunc_shift"
156 case 's': // 2 strings to match.
157 if (memcmp(RuleIdentifier.data()+8, "at", 2) != 0)
158 break;
159 switch (RuleIdentifier[10]) {
160 default: break;
161 case 's': // 1 string to match.
162 return 311; // "trunc_ssats"
163 case 'u': // 1 string to match.
164 return 312; // "trunc_ssatu"
165 }
166 break;
167 }
168 break;
169 case 'u': // 1 string to match.
170 if (memcmp(RuleIdentifier.data()+7, "satu", 4) != 0)
171 break;
172 return 313; // "trunc_usatu"
173 }
174 break;
175 case 'u': // 1 string to match.
176 if (memcmp(RuleIdentifier.data()+1, "nmerge_cst", 10) != 0)
177 break;
178 return 298; // "unmerge_cst"
179 }
180 break;
181 case 12: // 11 strings to match.
182 switch (RuleIdentifier[0]) {
183 default: break;
184 case 'A': // 1 string to match.
185 if (memcmp(RuleIdentifier.data()+1, "PlusBMinusB", 11) != 0)
186 break;
187 return 4; // "APlusBMinusB"
188 case 'B': // 1 string to match.
189 if (memcmp(RuleIdentifier.data()+1, "MinusAPlusA", 11) != 0)
190 break;
191 return 5; // "BMinusAPlusA"
192 case 'c': // 1 string to match.
193 if (memcmp(RuleIdentifier.data()+1, "tlz_to_ctls", 11) != 0)
194 break;
195 return 316; // "ctlz_to_ctls"
196 case 'f': // 1 string to match.
197 if (memcmp(RuleIdentifier.data()+1, "sub_to_fneg", 11) != 0)
198 break;
199 return 248; // "fsub_to_fneg"
200 case 'm': // 1 string to match.
201 if (memcmp(RuleIdentifier.data()+1, "ulh_to_lshr", 11) != 0)
202 break;
203 return 216; // "mulh_to_lshr"
204 case 'n': // 1 string to match.
205 if (memcmp(RuleIdentifier.data()+1, "ot_cmp_fold", 11) != 0)
206 break;
207 return 155; // "not_cmp_fold"
208 case 'r': // 1 string to match.
209 if (memcmp(RuleIdentifier.data()+1, "edundant_or", 11) != 0)
210 break;
211 return 150; // "redundant_or"
212 case 's': // 2 strings to match.
213 switch (RuleIdentifier[1]) {
214 default: break;
215 case 'd': // 1 string to match.
216 if (memcmp(RuleIdentifier.data()+2, "iv_by_pow2", 10) != 0)
217 break;
218 return 239; // "sdiv_by_pow2"
219 case 'e': // 1 string to match.
220 if (memcmp(RuleIdentifier.data()+2, "xt_of_sext", 10) != 0)
221 break;
222 return 53; // "sext_of_sext"
223 }
224 break;
225 case 'u': // 1 string to match.
226 if (memcmp(RuleIdentifier.data()+1, "div_by_pow2", 11) != 0)
227 break;
228 return 238; // "udiv_by_pow2"
229 case 'z': // 1 string to match.
230 if (memcmp(RuleIdentifier.data()+1, "ext_of_zext", 11) != 0)
231 break;
232 return 51; // "zext_of_zext"
233 }
234 break;
235 case 13: // 19 strings to match.
236 switch (RuleIdentifier[0]) {
237 default: break;
238 case 'A': // 2 strings to match.
239 if (memcmp(RuleIdentifier.data()+1, "MinusBMinus", 11) != 0)
240 break;
241 switch (RuleIdentifier[12]) {
242 default: break;
243 case 'A': // 1 string to match.
244 return 12; // "AMinusBMinusA"
245 case 'C': // 1 string to match.
246 return 9; // "AMinusBMinusC"
247 }
248 break;
249 case 'a': // 1 string to match.
250 if (memcmp(RuleIdentifier.data()+1, "dd_of_vscale", 12) != 0)
251 break;
252 return 42; // "add_of_vscale"
253 case 'f': // 1 string to match.
254 if (memcmp(RuleIdentifier.data()+1, "oldable_fneg", 12) != 0)
255 break;
256 return 338; // "foldable_fneg"
257 case 'l': // 1 string to match.
258 if (memcmp(RuleIdentifier.data()+1, "oad_and_mask", 12) != 0)
259 break;
260 return 74; // "load_and_mask"
261 case 'm': // 3 strings to match.
262 switch (RuleIdentifier[1]) {
263 default: break;
264 case 'a': // 1 string to match.
265 if (memcmp(RuleIdentifier.data()+2, "tch_selects", 11) != 0)
266 break;
267 return 141; // "match_selects"
268 case 'e': // 1 string to match.
269 if (memcmp(RuleIdentifier.data()+2, "rge_unmerge", 11) != 0)
270 break;
271 return 297; // "merge_unmerge"
272 case 'u': // 1 string to match.
273 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
274 break;
275 return 43; // "mul_of_vscale"
276 }
277 break;
278 case 'r': // 1 string to match.
279 if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
280 break;
281 return 149; // "redundant_and"
282 case 's': // 6 strings to match.
283 switch (RuleIdentifier[1]) {
284 default: break;
285 case 'a': // 1 string to match.
286 if (memcmp(RuleIdentifier.data()+2, "me_val_zero", 11) != 0)
287 break;
288 return 94; // "same_val_zero"
289 case 'd': // 1 string to match.
290 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
291 break;
292 return 241; // "sdiv_by_const"
293 case 'h': // 1 string to match.
294 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
295 break;
296 return 44; // "shl_of_vscale"
297 case 'r': // 1 string to match.
298 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
299 break;
300 return 237; // "srem_by_const"
301 case 'u': // 2 strings to match.
302 if (memcmp(RuleIdentifier.data()+2, "b_", 2) != 0)
303 break;
304 switch (RuleIdentifier[4]) {
305 default: break;
306 case 'm': // 1 string to match.
307 if (memcmp(RuleIdentifier.data()+5, "inus_one", 8) != 0)
308 break;
309 return 323; // "sub_minus_one"
310 case 'o': // 1 string to match.
311 if (memcmp(RuleIdentifier.data()+5, "f_vscale", 8) != 0)
312 break;
313 return 45; // "sub_of_vscale"
314 }
315 break;
316 }
317 break;
318 case 'u': // 4 strings to match.
319 switch (RuleIdentifier[1]) {
320 default: break;
321 case 'd': // 1 string to match.
322 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
323 break;
324 return 240; // "udiv_by_const"
325 case 'n': // 2 strings to match.
326 if (memcmp(RuleIdentifier.data()+2, "merge_", 6) != 0)
327 break;
328 switch (RuleIdentifier[8]) {
329 default: break;
330 case 'm': // 1 string to match.
331 if (memcmp(RuleIdentifier.data()+9, "erge", 4) != 0)
332 break;
333 return 296; // "unmerge_merge"
334 case 'u': // 1 string to match.
335 if (memcmp(RuleIdentifier.data()+9, "ndef", 4) != 0)
336 break;
337 return 299; // "unmerge_undef"
338 }
339 break;
340 case 'r': // 1 string to match.
341 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
342 break;
343 return 236; // "urem_by_const"
344 }
345 break;
346 }
347 break;
348 case 14: // 19 strings to match.
349 switch (RuleIdentifier[0]) {
350 default: break;
351 case 'A': // 2 strings to match.
352 switch (RuleIdentifier[1]) {
353 default: break;
354 case 'M': // 1 string to match.
355 if (memcmp(RuleIdentifier.data()+2, "inusC1PlusC2", 12) != 0)
356 break;
357 return 18; // "AMinusC1PlusC2"
358 case 'P': // 1 string to match.
359 if (memcmp(RuleIdentifier.data()+2, "lusC1MinusC2", 12) != 0)
360 break;
361 return 14; // "APlusC1MinusC2"
362 }
363 break;
364 case 'C': // 1 string to match.
365 if (memcmp(RuleIdentifier.data()+1, "2MinusAPlusC1", 13) != 0)
366 break;
367 return 15; // "C2MinusAPlusC1"
368 case 'N': // 1 string to match.
369 if (memcmp(RuleIdentifier.data()+1, "otAPlusNegOne", 13) != 0)
370 break;
371 return 13; // "NotAPlusNegOne"
372 case 'a': // 2 strings to match.
373 if (memcmp(RuleIdentifier.data()+1, "nyext_of_", 9) != 0)
374 break;
375 switch (RuleIdentifier[10]) {
376 default: break;
377 case 's': // 1 string to match.
378 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
379 break;
380 return 57; // "anyext_of_sext"
381 case 'z': // 1 string to match.
382 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
383 break;
384 return 56; // "anyext_of_zext"
385 }
386 break;
387 case 'b': // 3 strings to match.
388 if (RuleIdentifier[1] != 'i')
389 break;
390 switch (RuleIdentifier[2]) {
391 default: break;
392 case 'n': // 2 strings to match.
393 if (memcmp(RuleIdentifier.data()+3, "op_", 3) != 0)
394 break;
395 switch (RuleIdentifier[6]) {
396 default: break;
397 case 's': // 1 string to match.
398 if (memcmp(RuleIdentifier.data()+7, "ame_val", 7) != 0)
399 break;
400 return 93; // "binop_same_val"
401 case 'w': // 1 string to match.
402 if (memcmp(RuleIdentifier.data()+7, "ith_neg", 7) != 0)
403 break;
404 return 322; // "binop_with_neg"
405 }
406 break;
407 case 't': // 1 string to match.
408 if (memcmp(RuleIdentifier.data()+3, "reverse_shl", 11) != 0)
409 break;
410 return 202; // "bitreverse_shl"
411 }
412 break;
413 case 'c': // 1 string to match.
414 if (memcmp(RuleIdentifier.data()+1, "vt_f32_ubyteN", 13) != 0)
415 break;
416 return 336; // "cvt_f32_ubyteN"
417 case 'f': // 2 strings to match.
418 switch (RuleIdentifier[1]) {
419 default: break;
420 case 'a': // 1 string to match.
421 if (memcmp(RuleIdentifier.data()+2, "bs_fneg_fold", 12) != 0)
422 break;
423 return 215; // "fabs_fneg_fold"
424 case 'n': // 1 string to match.
425 if (memcmp(RuleIdentifier.data()+2, "eg_fneg_fold", 12) != 0)
426 break;
427 return 102; // "fneg_fneg_fold"
428 }
429 break;
430 case 'm': // 1 string to match.
431 if (memcmp(RuleIdentifier.data()+1, "ul_by_neg_one", 13) != 0)
432 break;
433 return 23; // "mul_by_neg_one"
434 case 'r': // 1 string to match.
435 if (memcmp(RuleIdentifier.data()+1, "eassoc_ptradd", 13) != 0)
436 break;
437 return 120; // "reassoc_ptradd"
438 case 's': // 3 strings to match.
439 switch (RuleIdentifier[1]) {
440 default: break;
441 case 'e': // 2 strings to match.
442 switch (RuleIdentifier[2]) {
443 default: break;
444 case 'l': // 1 string to match.
445 if (memcmp(RuleIdentifier.data()+3, "ect_of_zext", 11) != 0)
446 break;
447 return 59; // "select_of_zext"
448 case 'x': // 1 string to match.
449 if (memcmp(RuleIdentifier.data()+3, "t_of_anyext", 11) != 0)
450 break;
451 return 54; // "sext_of_anyext"
452 }
453 break;
454 case 'h': // 1 string to match.
455 if (memcmp(RuleIdentifier.data()+2, "ifts_too_big", 12) != 0)
456 break;
457 return 119; // "shifts_too_big"
458 }
459 break;
460 case 'u': // 1 string to match.
461 if (memcmp(RuleIdentifier.data()+1, "char_to_float", 13) != 0)
462 break;
463 return 335; // "uchar_to_float"
464 case 'z': // 1 string to match.
465 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
466 break;
467 return 52; // "zext_of_anyext"
468 }
469 break;
470 case 15: // 26 strings to match.
471 switch (RuleIdentifier[0]) {
472 default: break;
473 case 'A': // 2 strings to match.
474 switch (RuleIdentifier[1]) {
475 default: break;
476 case 'M': // 1 string to match.
477 if (memcmp(RuleIdentifier.data()+2, "inusC1MinusC2", 13) != 0)
478 break;
479 return 16; // "AMinusC1MinusC2"
480 case 'P': // 1 string to match.
481 if (memcmp(RuleIdentifier.data()+2, "lusZeroMinusB", 13) != 0)
482 break;
483 return 3; // "APlusZeroMinusB"
484 }
485 break;
486 case 'C': // 1 string to match.
487 if (memcmp(RuleIdentifier.data()+1, "1Minus2MinusC2", 14) != 0)
488 break;
489 return 17; // "C1Minus2MinusC2"
490 case 'G': // 1 string to match.
491 if (memcmp(RuleIdentifier.data()+1, "_FMA_fneg_fneg", 14) != 0)
492 break;
493 return 223; // "G_FMA_fneg_fneg"
494 case 'Z': // 1 string to match.
495 if (memcmp(RuleIdentifier.data()+1, "eroMinusAPlusB", 14) != 0)
496 break;
497 return 2; // "ZeroMinusAPlusB"
498 case 'a': // 5 strings to match.
499 switch (RuleIdentifier[1]) {
500 default: break;
501 case 'n': // 3 strings to match.
502 if (memcmp(RuleIdentifier.data()+2, "onymous_5572", 12) != 0)
503 break;
504 switch (RuleIdentifier[14]) {
505 default: break;
506 case '7': // 1 string to match.
507 return 353; // "anonymous_55727"
508 case '8': // 1 string to match.
509 return 354; // "anonymous_55728"
510 case '9': // 1 string to match.
511 return 355; // "anonymous_55729"
512 }
513 break;
514 case 'v': // 2 strings to match.
515 if (memcmp(RuleIdentifier.data()+2, "gceil_", 6) != 0)
516 break;
517 switch (RuleIdentifier[8]) {
518 default: break;
519 case 's': // 1 string to match.
520 if (memcmp(RuleIdentifier.data()+9, "_match", 6) != 0)
521 break;
522 return 330; // "avgceil_s_match"
523 case 'u': // 1 string to match.
524 if (memcmp(RuleIdentifier.data()+9, "_match", 6) != 0)
525 break;
526 return 329; // "avgceil_u_match"
527 }
528 break;
529 }
530 break;
531 case 'b': // 1 string to match.
532 if (memcmp(RuleIdentifier.data()+1, "itreverse_lshr", 14) != 0)
533 break;
534 return 203; // "bitreverse_lshr"
535 case 'e': // 1 string to match.
536 if (memcmp(RuleIdentifier.data()+1, "xtending_loads", 14) != 0)
537 break;
538 return 73; // "extending_loads"
539 case 'i': // 2 strings to match.
540 switch (RuleIdentifier[1]) {
541 default: break;
542 case '2': // 1 string to match.
543 if (memcmp(RuleIdentifier.data()+2, "p_to_p2i_zext", 13) != 0)
544 break;
545 return 99; // "i2p_to_p2i_zext"
546 case 'd': // 1 string to match.
547 if (memcmp(RuleIdentifier.data()+2, "empotent_prop", 13) != 0)
548 break;
549 return 24; // "idempotent_prop"
550 }
551 break;
552 case 'l': // 1 string to match.
553 if (memcmp(RuleIdentifier.data()+1, "oad_or_combine", 14) != 0)
554 break;
555 return 192; // "load_or_combine"
556 case 'm': // 4 strings to match.
557 if (memcmp(RuleIdentifier.data()+1, "ulo_by_", 7) != 0)
558 break;
559 switch (RuleIdentifier[8]) {
560 default: break;
561 case '0': // 2 strings to match.
562 if (RuleIdentifier[9] != '_')
563 break;
564 switch (RuleIdentifier[10]) {
565 default: break;
566 case 's': // 1 string to match.
567 if (memcmp(RuleIdentifier.data()+11, "mulo", 4) != 0)
568 break;
569 return 177; // "mulo_by_0_smulo"
570 case 'u': // 1 string to match.
571 if (memcmp(RuleIdentifier.data()+11, "mulo", 4) != 0)
572 break;
573 return 176; // "mulo_by_0_umulo"
574 }
575 break;
576 case '2': // 2 strings to match.
577 if (RuleIdentifier[9] != '_')
578 break;
579 switch (RuleIdentifier[10]) {
580 default: break;
581 case 's': // 1 string to match.
582 if (memcmp(RuleIdentifier.data()+11, "mulo", 4) != 0)
583 break;
584 return 175; // "mulo_by_2_smulo"
585 case 'u': // 1 string to match.
586 if (memcmp(RuleIdentifier.data()+11, "mulo", 4) != 0)
587 break;
588 return 174; // "mulo_by_2_umulo"
589 }
590 break;
591 }
592 break;
593 case 'n': // 1 string to match.
594 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_or", 14) != 0)
595 break;
596 return 67; // "narrow_binop_or"
597 case 'o': // 1 string to match.
598 if (memcmp(RuleIdentifier.data()+1, "verlapping_and", 14) != 0)
599 break;
600 return 173; // "overlapping_and"
601 case 's': // 4 strings to match.
602 if (memcmp(RuleIdentifier.data()+1, "ub_add_", 7) != 0)
603 break;
604 switch (RuleIdentifier[8]) {
605 default: break;
606 case 'n': // 2 strings to match.
607 if (memcmp(RuleIdentifier.data()+9, "eg_", 3) != 0)
608 break;
609 switch (RuleIdentifier[12]) {
610 default: break;
611 case 'l': // 1 string to match.
612 if (memcmp(RuleIdentifier.data()+13, "hs", 2) != 0)
613 break;
614 return 246; // "sub_add_neg_lhs"
615 case 'r': // 1 string to match.
616 if (memcmp(RuleIdentifier.data()+13, "hs", 2) != 0)
617 break;
618 return 245; // "sub_add_neg_rhs"
619 }
620 break;
621 case 'r': // 2 strings to match.
622 if (memcmp(RuleIdentifier.data()+9, "eg_", 3) != 0)
623 break;
624 switch (RuleIdentifier[12]) {
625 default: break;
626 case 'l': // 1 string to match.
627 if (memcmp(RuleIdentifier.data()+13, "hs", 2) != 0)
628 break;
629 return 244; // "sub_add_reg_lhs"
630 case 'r': // 1 string to match.
631 if (memcmp(RuleIdentifier.data()+13, "hs", 2) != 0)
632 break;
633 return 243; // "sub_add_reg_rhs"
634 }
635 break;
636 }
637 break;
638 case 'z': // 1 string to match.
639 if (memcmp(RuleIdentifier.data()+1, "ext_trunc_fold", 14) != 0)
640 break;
641 return 152; // "zext_trunc_fold"
642 }
643 break;
644 case 16: // 23 strings to match.
645 switch (RuleIdentifier[0]) {
646 default: break;
647 case 'A': // 1 string to match.
648 if (memcmp(RuleIdentifier.data()+1, "MinusZeroMinusB", 15) != 0)
649 break;
650 return 11; // "AMinusZeroMinusB"
651 case 'G': // 3 strings to match.
652 if (memcmp(RuleIdentifier.data()+1, "_F", 2) != 0)
653 break;
654 switch (RuleIdentifier[3]) {
655 default: break;
656 case 'D': // 1 string to match.
657 if (memcmp(RuleIdentifier.data()+4, "IV_fneg_fneg", 12) != 0)
658 break;
659 return 221; // "G_FDIV_fneg_fneg"
660 case 'M': // 2 strings to match.
661 switch (RuleIdentifier[4]) {
662 default: break;
663 case 'A': // 1 string to match.
664 if (memcmp(RuleIdentifier.data()+5, "D_fneg_fneg", 11) != 0)
665 break;
666 return 222; // "G_FMAD_fneg_fneg"
667 case 'U': // 1 string to match.
668 if (memcmp(RuleIdentifier.data()+5, "L_fneg_fneg", 11) != 0)
669 break;
670 return 220; // "G_FMUL_fneg_fneg"
671 }
672 break;
673 }
674 break;
675 case 'a': // 3 strings to match.
676 switch (RuleIdentifier[1]) {
677 default: break;
678 case 'n': // 1 string to match.
679 if (memcmp(RuleIdentifier.data()+2, "yext_of_anyext", 14) != 0)
680 break;
681 return 55; // "anyext_of_anyext"
682 case 'v': // 2 strings to match.
683 if (memcmp(RuleIdentifier.data()+2, "gfloor_", 7) != 0)
684 break;
685 switch (RuleIdentifier[9]) {
686 default: break;
687 case 's': // 1 string to match.
688 if (memcmp(RuleIdentifier.data()+10, "_match", 6) != 0)
689 break;
690 return 328; // "avgfloor_s_match"
691 case 'u': // 1 string to match.
692 if (memcmp(RuleIdentifier.data()+10, "_match", 6) != 0)
693 break;
694 return 327; // "avgfloor_u_match"
695 }
696 break;
697 }
698 break;
699 case 'c': // 1 string to match.
700 if (memcmp(RuleIdentifier.data()+1, "ommute_shift_or", 15) != 0)
701 break;
702 return 205; // "commute_shift_or"
703 case 'i': // 1 string to match.
704 if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i_trunc", 15) != 0)
705 break;
706 return 100; // "i2p_to_p2i_trunc"
707 case 'n': // 5 strings to match.
708 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_", 12) != 0)
709 break;
710 switch (RuleIdentifier[13]) {
711 default: break;
712 case 'a': // 2 strings to match.
713 switch (RuleIdentifier[14]) {
714 default: break;
715 case 'd': // 1 string to match.
716 if (RuleIdentifier[15] != 'd')
717 break;
718 return 63; // "narrow_binop_add"
719 case 'n': // 1 string to match.
720 if (RuleIdentifier[15] != 'd')
721 break;
722 return 66; // "narrow_binop_and"
723 }
724 break;
725 case 'm': // 1 string to match.
726 if (memcmp(RuleIdentifier.data()+14, "ul", 2) != 0)
727 break;
728 return 65; // "narrow_binop_mul"
729 case 's': // 1 string to match.
730 if (memcmp(RuleIdentifier.data()+14, "ub", 2) != 0)
731 break;
732 return 64; // "narrow_binop_sub"
733 case 'x': // 1 string to match.
734 if (memcmp(RuleIdentifier.data()+14, "or", 2) != 0)
735 break;
736 return 68; // "narrow_binop_xor"
737 }
738 break;
739 case 'o': // 1 string to match.
740 if (memcmp(RuleIdentifier.data()+1, "r_and_xor_to_or", 15) != 0)
741 break;
742 return 280; // "or_and_xor_to_or"
743 case 's': // 5 strings to match.
744 switch (RuleIdentifier[1]) {
745 default: break;
746 case 'e': // 3 strings to match.
747 if (memcmp(RuleIdentifier.data()+2, "lect_", 5) != 0)
748 break;
749 switch (RuleIdentifier[7]) {
750 default: break;
751 case 'o': // 1 string to match.
752 if (memcmp(RuleIdentifier.data()+8, "f_anyext", 8) != 0)
753 break;
754 return 60; // "select_of_anyext"
755 case 't': // 1 string to match.
756 if (memcmp(RuleIdentifier.data()+8, "o_minmax", 8) != 0)
757 break;
758 return 247; // "select_to_minmax"
759 case 'u': // 1 string to match.
760 if (memcmp(RuleIdentifier.data()+8, "ndef_cmp", 8) != 0)
761 break;
762 return 135; // "select_undef_cmp"
763 }
764 break;
765 case 'u': // 2 strings to match.
766 if (memcmp(RuleIdentifier.data()+2, "b_o", 3) != 0)
767 break;
768 switch (RuleIdentifier[5]) {
769 default: break;
770 case 'f': // 1 string to match.
771 if (memcmp(RuleIdentifier.data()+6, "_mul_const", 10) != 0)
772 break;
773 return 324; // "sub_of_mul_const"
774 case 'n': // 1 string to match.
775 if (memcmp(RuleIdentifier.data()+6, "e_from_sub", 10) != 0)
776 break;
777 return 321; // "sub_one_from_sub"
778 }
779 break;
780 }
781 break;
782 case 't': // 2 strings to match.
783 if (memcmp(RuleIdentifier.data()+1, "runcate_of_", 11) != 0)
784 break;
785 switch (RuleIdentifier[12]) {
786 default: break;
787 case 's': // 1 string to match.
788 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
789 break;
790 return 49; // "truncate_of_sext"
791 case 'z': // 1 string to match.
792 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
793 break;
794 return 48; // "truncate_of_zext"
795 }
796 break;
797 case 'u': // 1 string to match.
798 if (memcmp(RuleIdentifier.data()+1, "ndef_to_fp_zero", 15) != 0)
799 break;
800 return 76; // "undef_to_fp_zero"
801 }
802 break;
803 case 17: // 21 strings to match.
804 switch (RuleIdentifier[0]) {
805 default: break;
806 case 'A': // 2 strings to match.
807 if (memcmp(RuleIdentifier.data()+1, "PlusBMinus", 10) != 0)
808 break;
809 switch (RuleIdentifier[11]) {
810 default: break;
811 case 'A': // 1 string to match.
812 if (memcmp(RuleIdentifier.data()+12, "plusC", 5) != 0)
813 break;
814 return 8; // "APlusBMinusAplusC"
815 case 'C': // 1 string to match.
816 if (memcmp(RuleIdentifier.data()+12, "PlusA", 5) != 0)
817 break;
818 return 10; // "APlusBMinusCPlusA"
819 }
820 break;
821 case 'a': // 3 strings to match.
822 switch (RuleIdentifier[1]) {
823 default: break;
824 case 'd': // 1 string to match.
825 if (memcmp(RuleIdentifier.data()+2, "d_p2i_to_ptradd", 15) != 0)
826 break;
827 return 22; // "add_p2i_to_ptradd"
828 case 'n': // 2 strings to match.
829 switch (RuleIdentifier[2]) {
830 default: break;
831 case 'd': // 1 string to match.
832 if (memcmp(RuleIdentifier.data()+3, "_xor_or_to_and", 14) != 0)
833 break;
834 return 282; // "and_xor_or_to_and"
835 case 'y': // 1 string to match.
836 if (memcmp(RuleIdentifier.data()+3, "ext_trunc_fold", 14) != 0)
837 break;
838 return 101; // "anyext_trunc_fold"
839 }
840 break;
841 }
842 break;
843 case 'c': // 5 strings to match.
844 switch (RuleIdentifier[1]) {
845 default: break;
846 case 'a': // 2 strings to match.
847 if (memcmp(RuleIdentifier.data()+2, "nonicalize_", 11) != 0)
848 break;
849 switch (RuleIdentifier[13]) {
850 default: break;
851 case 'f': // 1 string to match.
852 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
853 break;
854 return 124; // "canonicalize_fcmp"
855 case 'i': // 1 string to match.
856 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
857 break;
858 return 123; // "canonicalize_icmp"
859 }
860 break;
861 case 'o': // 3 strings to match.
862 switch (RuleIdentifier[2]) {
863 default: break;
864 case 'm': // 2 strings to match.
865 switch (RuleIdentifier[3]) {
866 default: break;
867 case 'b': // 1 string to match.
868 if (memcmp(RuleIdentifier.data()+4, "ine_or_of_and", 13) != 0)
869 break;
870 return 331; // "combine_or_of_and"
871 case 'm': // 1 string to match.
872 if (memcmp(RuleIdentifier.data()+4, "ute_shift_add", 13) != 0)
873 break;
874 return 204; // "commute_shift_add"
875 }
876 break;
877 case 'n': // 1 string to match.
878 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fma", 14) != 0)
879 break;
880 return 212; // "constant_fold_fma"
881 }
882 break;
883 }
884 break;
885 case 'd': // 1 string to match.
886 if (memcmp(RuleIdentifier.data()+1, "iv_rem_to_divrem", 16) != 0)
887 break;
888 return 193; // "div_rem_to_divrem"
889 case 'e': // 1 string to match.
890 if (memcmp(RuleIdentifier.data()+1, "rase_undef_store", 16) != 0)
891 break;
892 return 87; // "erase_undef_store"
893 case 'f': // 1 string to match.
894 if (memcmp(RuleIdentifier.data()+1, "old_fabs_fptrunc", 16) != 0)
895 break;
896 return 339; // "fold_fabs_fptrunc"
897 case 'm': // 2 strings to match.
898 if (memcmp(RuleIdentifier.data()+1, "atch_addos_", 11) != 0)
899 break;
900 switch (RuleIdentifier[12]) {
901 default: break;
902 case 's': // 1 string to match.
903 if (memcmp(RuleIdentifier.data()+13, "addo", 4) != 0)
904 break;
905 return 307; // "match_addos_saddo"
906 case 'u': // 1 string to match.
907 if (memcmp(RuleIdentifier.data()+13, "addo", 4) != 0)
908 break;
909 return 308; // "match_addos_uaddo"
910 }
911 break;
912 case 's': // 4 strings to match.
913 switch (RuleIdentifier[1]) {
914 default: break;
915 case 'e': // 2 strings to match.
916 if (memcmp(RuleIdentifier.data()+2, "lect_", 5) != 0)
917 break;
918 switch (RuleIdentifier[7]) {
919 default: break;
920 case 't': // 1 string to match.
921 if (memcmp(RuleIdentifier.data()+8, "o_iminmax", 9) != 0)
922 break;
923 return 140; // "select_to_iminmax"
924 case 'z': // 1 string to match.
925 if (memcmp(RuleIdentifier.data()+8, "ero_false", 9) != 0)
926 break;
927 return 142; // "select_zero_false"
928 }
929 break;
930 case 'h': // 1 string to match.
931 if (memcmp(RuleIdentifier.data()+2, "ift_immed_chain", 15) != 0)
932 break;
933 return 190; // "shift_immed_chain"
934 case 'r': // 1 string to match.
935 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
936 break;
937 return 235; // "srem_pow2_to_mask"
938 }
939 break;
940 case 'u': // 2 strings to match.
941 switch (RuleIdentifier[1]) {
942 default: break;
943 case 'n': // 1 string to match.
944 if (memcmp(RuleIdentifier.data()+2, "def_to_int_zero", 15) != 0)
945 break;
946 return 77; // "undef_to_int_zero"
947 case 'r': // 1 string to match.
948 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
949 break;
950 return 151; // "urem_pow2_to_mask"
951 }
952 break;
953 }
954 break;
955 case 18: // 18 strings to match.
956 switch (RuleIdentifier[0]) {
957 default: break;
958 case 'A': // 3 strings to match.
959 switch (RuleIdentifier[1]) {
960 default: break;
961 case 'M': // 2 strings to match.
962 if (memcmp(RuleIdentifier.data()+2, "inusBPlus", 9) != 0)
963 break;
964 switch (RuleIdentifier[11]) {
965 default: break;
966 case 'B': // 1 string to match.
967 if (memcmp(RuleIdentifier.data()+12, "MinusC", 6) != 0)
968 break;
969 return 7; // "AMinusBPlusBMinusC"
970 case 'C': // 1 string to match.
971 if (memcmp(RuleIdentifier.data()+12, "MinusA", 6) != 0)
972 break;
973 return 6; // "AMinusBPlusCMinusA"
974 }
975 break;
976 case 'P': // 1 string to match.
977 if (memcmp(RuleIdentifier.data()+2, "lusBMinusCMinusB", 16) != 0)
978 break;
979 return 0; // "APlusBMinusCMinusB"
980 }
981 break;
982 case 'a': // 4 strings to match.
983 if (memcmp(RuleIdentifier.data()+1, "dde_to_addo_", 12) != 0)
984 break;
985 switch (RuleIdentifier[13]) {
986 default: break;
987 case 's': // 2 strings to match.
988 switch (RuleIdentifier[14]) {
989 default: break;
990 case 'a': // 1 string to match.
991 if (memcmp(RuleIdentifier.data()+15, "dde", 3) != 0)
992 break;
993 return 179; // "adde_to_addo_sadde"
994 case 's': // 1 string to match.
995 if (memcmp(RuleIdentifier.data()+15, "ube", 3) != 0)
996 break;
997 return 181; // "adde_to_addo_ssube"
998 }
999 break;
1000 case 'u': // 2 strings to match.
1001 switch (RuleIdentifier[14]) {
1002 default: break;
1003 case 'a': // 1 string to match.
1004 if (memcmp(RuleIdentifier.data()+15, "dde", 3) != 0)
1005 break;
1006 return 178; // "adde_to_addo_uadde"
1007 case 's': // 1 string to match.
1008 if (memcmp(RuleIdentifier.data()+15, "ube", 3) != 0)
1009 break;
1010 return 180; // "adde_to_addo_usube"
1011 }
1012 break;
1013 }
1014 break;
1015 case 'b': // 1 string to match.
1016 if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
1017 break;
1018 return 95; // "binop_left_to_zero"
1019 case 'c': // 3 strings to match.
1020 if (RuleIdentifier[1] != 'o')
1021 break;
1022 switch (RuleIdentifier[2]) {
1023 default: break;
1024 case 'm': // 1 string to match.
1025 if (memcmp(RuleIdentifier.data()+3, "bine_or_s64_s32", 15) != 0)
1026 break;
1027 return 352; // "combine_or_s64_s32"
1028 case 'n': // 2 strings to match.
1029 if (memcmp(RuleIdentifier.data()+3, "stant_fold_f", 12) != 0)
1030 break;
1031 switch (RuleIdentifier[15]) {
1032 default: break;
1033 case 'a': // 1 string to match.
1034 if (memcmp(RuleIdentifier.data()+16, "bs", 2) != 0)
1035 break;
1036 return 158; // "constant_fold_fabs"
1037 case 'n': // 1 string to match.
1038 if (memcmp(RuleIdentifier.data()+16, "eg", 2) != 0)
1039 break;
1040 return 157; // "constant_fold_fneg"
1041 }
1042 break;
1043 }
1044 break;
1045 case 'e': // 1 string to match.
1046 if (memcmp(RuleIdentifier.data()+1, "xpand_const_fpowi", 17) != 0)
1047 break;
1048 return 186; // "expand_const_fpowi"
1049 case 'f': // 1 string to match.
1050 if (memcmp(RuleIdentifier.data()+1, "ptrunc_fpext_fold", 17) != 0)
1051 break;
1052 return 112; // "fptrunc_fpext_fold"
1053 case 'm': // 2 strings to match.
1054 if (memcmp(RuleIdentifier.data()+1, "inmax_nan_num_", 14) != 0)
1055 break;
1056 switch (RuleIdentifier[15]) {
1057 default: break;
1058 case 'l': // 1 string to match.
1059 if (memcmp(RuleIdentifier.data()+16, "hs", 2) != 0)
1060 break;
1061 return 182; // "minmax_nan_num_lhs"
1062 case 'r': // 1 string to match.
1063 if (memcmp(RuleIdentifier.data()+16, "hs", 2) != 0)
1064 break;
1065 return 183; // "minmax_nan_num_rhs"
1066 }
1067 break;
1068 case 's': // 2 strings to match.
1069 if (RuleIdentifier[1] != 'e')
1070 break;
1071 switch (RuleIdentifier[2]) {
1072 default: break;
1073 case 'l': // 1 string to match.
1074 if (memcmp(RuleIdentifier.data()+3, "ect_of_truncate", 15) != 0)
1075 break;
1076 return 61; // "select_of_truncate"
1077 case 'x': // 1 string to match.
1078 if (memcmp(RuleIdentifier.data()+3, "t_inreg_of_load", 15) != 0)
1079 break;
1080 return 132; // "sext_inreg_of_load"
1081 }
1082 break;
1083 case 't': // 1 string to match.
1084 if (memcmp(RuleIdentifier.data()+1, "runcate_of_anyext", 17) != 0)
1085 break;
1086 return 50; // "truncate_of_anyext"
1087 }
1088 break;
1089 case 19: // 22 strings to match.
1090 switch (RuleIdentifier[0]) {
1091 default: break;
1092 case 'A': // 1 string to match.
1093 if (memcmp(RuleIdentifier.data()+1, "MinusBMinusCMinusC", 18) != 0)
1094 break;
1095 return 1; // "AMinusBMinusCMinusC"
1096 case 'b': // 1 string to match.
1097 if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
1098 break;
1099 return 96; // "binop_right_to_zero"
1100 case 'c': // 7 strings to match.
1101 if (memcmp(RuleIdentifier.data()+1, "onst", 4) != 0)
1102 break;
1103 switch (RuleIdentifier[5]) {
1104 default: break;
1105 case '_': // 1 string to match.
1106 if (memcmp(RuleIdentifier.data()+6, "ptradd_to_i2p", 13) != 0)
1107 break;
1108 return 172; // "const_ptradd_to_i2p"
1109 case 'a': // 6 strings to match.
1110 if (memcmp(RuleIdentifier.data()+6, "nt_fold_", 8) != 0)
1111 break;
1112 switch (RuleIdentifier[14]) {
1113 default: break;
1114 case 'b': // 1 string to match.
1115 if (memcmp(RuleIdentifier.data()+15, "inop", 4) != 0)
1116 break;
1117 return 210; // "constant_fold_binop"
1118 case 'f': // 5 strings to match.
1119 switch (RuleIdentifier[15]) {
1120 default: break;
1121 case 'c': // 1 string to match.
1122 if (memcmp(RuleIdentifier.data()+16, "eil", 3) != 0)
1123 break;
1124 return 163; // "constant_fold_fceil"
1125 case 'l': // 1 string to match.
1126 if (memcmp(RuleIdentifier.data()+16, "og2", 3) != 0)
1127 break;
1128 return 160; // "constant_fold_flog2"
1129 case 'p': // 1 string to match.
1130 if (memcmp(RuleIdentifier.data()+16, "ext", 3) != 0)
1131 break;
1132 return 162; // "constant_fold_fpext"
1133 case 'r': // 1 string to match.
1134 if (memcmp(RuleIdentifier.data()+16, "int", 3) != 0)
1135 break;
1136 return 168; // "constant_fold_frint"
1137 case 's': // 1 string to match.
1138 if (memcmp(RuleIdentifier.data()+16, "qrt", 3) != 0)
1139 break;
1140 return 159; // "constant_fold_fsqrt"
1141 }
1142 break;
1143 }
1144 break;
1145 }
1146 break;
1147 case 'e': // 1 string to match.
1148 if (memcmp(RuleIdentifier.data()+1, "xtend_through_phis", 18) != 0)
1149 break;
1150 return 116; // "extend_through_phis"
1151 case 'f': // 1 string to match.
1152 if (memcmp(RuleIdentifier.data()+1, "sqrt_of_rcp_to_rsq", 18) != 0)
1153 break;
1154 return 342; // "fsqrt_of_rcp_to_rsq"
1155 case 'i': // 1 string to match.
1156 if (memcmp(RuleIdentifier.data()+1, "nteger_of_truncate", 18) != 0)
1157 break;
1158 return 69; // "integer_of_truncate"
1159 case 'm': // 3 strings to match.
1160 switch (RuleIdentifier[1]) {
1161 default: break;
1162 case 'e': // 1 string to match.
1163 if (memcmp(RuleIdentifier.data()+2, "rge_of_x_and_zero", 17) != 0)
1164 break;
1165 return 303; // "merge_of_x_and_zero"
1166 case 'i': // 2 strings to match.
1167 if (memcmp(RuleIdentifier.data()+2, "nmax_nan_ieee_", 14) != 0)
1168 break;
1169 switch (RuleIdentifier[16]) {
1170 default: break;
1171 case 'l': // 1 string to match.
1172 if (memcmp(RuleIdentifier.data()+17, "hs", 2) != 0)
1173 break;
1174 return 184; // "minmax_nan_ieee_lhs"
1175 case 'r': // 1 string to match.
1176 if (memcmp(RuleIdentifier.data()+17, "hs", 2) != 0)
1177 break;
1178 return 185; // "minmax_nan_ieee_rhs"
1179 }
1180 break;
1181 }
1182 break;
1183 case 'p': // 1 string to match.
1184 if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
1185 break;
1186 return 122; // "ptr_add_immed_chain"
1187 case 'r': // 3 strings to match.
1188 switch (RuleIdentifier[1]) {
1189 default: break;
1190 case 'c': // 1 string to match.
1191 if (memcmp(RuleIdentifier.data()+2, "p_of_fsqrt_to_rsq", 17) != 0)
1192 break;
1193 return 340; // "rcp_of_fsqrt_to_rsq"
1194 case 'e': // 1 string to match.
1195 if (memcmp(RuleIdentifier.data()+2, "assoc_comm_binops", 17) != 0)
1196 break;
1197 return 121; // "reassoc_comm_binops"
1198 case 'i': // 1 string to match.
1199 if (memcmp(RuleIdentifier.data()+2, "ght_identity_zero", 17) != 0)
1200 break;
1201 return 92; // "right_identity_zero"
1202 }
1203 break;
1204 case 's': // 2 strings to match.
1205 if (memcmp(RuleIdentifier.data()+1, "implify_", 8) != 0)
1206 break;
1207 switch (RuleIdentifier[9]) {
1208 default: break;
1209 case 'a': // 1 string to match.
1210 if (memcmp(RuleIdentifier.data()+10, "dd_to_sub", 9) != 0)
1211 break;
1212 return 117; // "simplify_add_to_sub"
1213 case 'n': // 1 string to match.
1214 if (memcmp(RuleIdentifier.data()+10, "eg_minmax", 9) != 0)
1215 break;
1216 return 286; // "simplify_neg_minmax"
1217 }
1218 break;
1219 case 'u': // 1 string to match.
1220 if (memcmp(RuleIdentifier.data()+1, "nary_undef_to_zero", 18) != 0)
1221 break;
1222 return 81; // "unary_undef_to_zero"
1223 }
1224 break;
1225 case 20: // 11 strings to match.
1226 switch (RuleIdentifier[0]) {
1227 default: break;
1228 case 'a': // 1 string to match.
1229 if (memcmp(RuleIdentifier.data()+1, "nd_or_disjoint_mask", 19) != 0)
1230 break;
1231 return 224; // "and_or_disjoint_mask"
1232 case 'b': // 1 string to match.
1233 if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold", 19) != 0)
1234 break;
1235 return 110; // "bitcast_bitcast_fold"
1236 case 'c': // 1 string to match.
1237 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_ffloor", 19) != 0)
1238 break;
1239 return 164; // "constant_fold_ffloor"
1240 case 'i': // 1 string to match.
1241 if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i_same_size", 19) != 0)
1242 break;
1243 return 98; // "i2p_to_p2i_same_size"
1244 case 'm': // 1 string to match.
1245 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_undef", 19) != 0)
1246 break;
1247 return 302; // "merge_of_x_and_undef"
1248 case 'o': // 1 string to match.
1249 if (memcmp(RuleIdentifier.data()+1, "r_and_xor_to_xor_or", 19) != 0)
1250 break;
1251 return 281; // "or_and_xor_to_xor_or"
1252 case 'r': // 3 strings to match.
1253 if (RuleIdentifier[1] != 'e')
1254 break;
1255 switch (RuleIdentifier[2]) {
1256 default: break;
1257 case 'd': // 2 strings to match.
1258 if (RuleIdentifier[3] != 'u')
1259 break;
1260 switch (RuleIdentifier[4]) {
1261 default: break;
1262 case 'c': // 1 string to match.
1263 if (memcmp(RuleIdentifier.data()+5, "e_shl_of_extend", 15) != 0)
1264 break;
1265 return 133; // "reduce_shl_of_extend"
1266 case 'n': // 1 string to match.
1267 if (memcmp(RuleIdentifier.data()+5, "dant_sext_inreg", 15) != 0)
1268 break;
1269 return 144; // "redundant_sext_inreg"
1270 }
1271 break;
1272 case 'm': // 1 string to match.
1273 if (memcmp(RuleIdentifier.data()+3, "ove_fcanonicalize", 17) != 0)
1274 break;
1275 return 337; // "remove_fcanonicalize"
1276 }
1277 break;
1278 case 'u': // 2 strings to match.
1279 if (RuleIdentifier[1] != 'n')
1280 break;
1281 switch (RuleIdentifier[2]) {
1282 default: break;
1283 case 'a': // 1 string to match.
1284 if (memcmp(RuleIdentifier.data()+3, "ry_undef_to_undef", 17) != 0)
1285 break;
1286 return 82; // "unary_undef_to_undef"
1287 case 'm': // 1 string to match.
1288 if (memcmp(RuleIdentifier.data()+3, "erge_zext_to_zext", 17) != 0)
1289 break;
1290 return 301; // "unmerge_zext_to_zext"
1291 }
1292 break;
1293 }
1294 break;
1295 case 21: // 14 strings to match.
1296 switch (RuleIdentifier[0]) {
1297 default: break;
1298 case 'a': // 1 string to match.
1299 if (memcmp(RuleIdentifier.data()+1, "nd_xor_or_to_xor_and", 20) != 0)
1300 break;
1301 return 283; // "and_xor_or_to_xor_and"
1302 case 'c': // 4 strings to match.
1303 if (RuleIdentifier[1] != 'o')
1304 break;
1305 switch (RuleIdentifier[2]) {
1306 default: break;
1307 case 'm': // 2 strings to match.
1308 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1309 break;
1310 switch (RuleIdentifier[8]) {
1311 default: break;
1312 case 'b': // 1 string to match.
1313 if (memcmp(RuleIdentifier.data()+9, "uild_unmerge", 12) != 0)
1314 break;
1315 return 304; // "combine_build_unmerge"
1316 case 'c': // 1 string to match.
1317 if (memcmp(RuleIdentifier.data()+9, "oncat_vector", 12) != 0)
1318 break;
1319 return 287; // "combine_concat_vector"
1320 }
1321 break;
1322 case 'n': // 2 strings to match.
1323 if (memcmp(RuleIdentifier.data()+3, "stant_fold_", 11) != 0)
1324 break;
1325 switch (RuleIdentifier[14]) {
1326 default: break;
1327 case 'c': // 1 string to match.
1328 if (memcmp(RuleIdentifier.data()+15, "ast_op", 6) != 0)
1329 break;
1330 return 213; // "constant_fold_cast_op"
1331 case 'f': // 1 string to match.
1332 if (memcmp(RuleIdentifier.data()+15, "ptrunc", 6) != 0)
1333 break;
1334 return 161; // "constant_fold_fptrunc"
1335 }
1336 break;
1337 }
1338 break;
1339 case 'e': // 1 string to match.
1340 if (memcmp(RuleIdentifier.data()+1, "xpand_promoted_fmed3", 20) != 0)
1341 break;
1342 return 333; // "expand_promoted_fmed3"
1343 case 'f': // 1 string to match.
1344 if (memcmp(RuleIdentifier.data()+1, "div_repeated_divison", 20) != 0)
1345 break;
1346 return 242; // "fdiv_repeated_divison"
1347 case 'i': // 1 string to match.
1348 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_elt_oob", 20) != 0)
1349 break;
1350 return 29; // "insert_vector_elt_oob"
1351 case 'l': // 1 string to match.
1352 if (memcmp(RuleIdentifier.data()+1, "shr_of_trunc_of_lshr", 20) != 0)
1353 break;
1354 return 315; // "lshr_of_trunc_of_lshr"
1355 case 'r': // 1 string to match.
1356 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
1357 break;
1358 return 104; // "right_identity_one_fp"
1359 case 's': // 2 strings to match.
1360 switch (RuleIdentifier[1]) {
1361 default: break;
1362 case 'e': // 1 string to match.
1363 if (memcmp(RuleIdentifier.data()+2, "lect_same_val_equiv", 19) != 0)
1364 break;
1365 return 91; // "select_same_val_equiv"
1366 case 'i': // 1 string to match.
1367 if (memcmp(RuleIdentifier.data()+2, "gn_extension_in_reg", 19) != 0)
1368 break;
1369 return 345; // "sign_extension_in_reg"
1370 }
1371 break;
1372 case 'u': // 2 strings to match.
1373 if (RuleIdentifier[1] != 'n')
1374 break;
1375 switch (RuleIdentifier[2]) {
1376 default: break;
1377 case 'd': // 1 string to match.
1378 if (memcmp(RuleIdentifier.data()+3, "ef_to_negative_one", 18) != 0)
1379 break;
1380 return 78; // "undef_to_negative_one"
1381 case 'm': // 1 string to match.
1382 if (memcmp(RuleIdentifier.data()+3, "erge_dead_to_trunc", 18) != 0)
1383 break;
1384 return 300; // "unmerge_dead_to_trunc"
1385 }
1386 break;
1387 }
1388 break;
1389 case 22: // 9 strings to match.
1390 switch (RuleIdentifier[0]) {
1391 default: break;
1392 case 'c': // 2 strings to match.
1393 if (RuleIdentifier[1] != 'o')
1394 break;
1395 switch (RuleIdentifier[2]) {
1396 default: break;
1397 case 'm': // 1 string to match.
1398 if (memcmp(RuleIdentifier.data()+3, "bine_shuffle_concat", 19) != 0)
1399 break;
1400 return 291; // "combine_shuffle_concat"
1401 case 'n': // 1 string to match.
1402 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fp_binop", 19) != 0)
1403 break;
1404 return 211; // "constant_fold_fp_binop"
1405 }
1406 break;
1407 case 'f': // 2 strings to match.
1408 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_", 12) != 0)
1409 break;
1410 switch (RuleIdentifier[13]) {
1411 default: break;
1412 case 'l': // 1 string to match.
1413 if (memcmp(RuleIdentifier.data()+14, "eft_zero", 8) != 0)
1414 break;
1415 return 198; // "funnel_shift_left_zero"
1416 case 'o': // 1 string to match.
1417 if (memcmp(RuleIdentifier.data()+14, "vershift", 8) != 0)
1418 break;
1419 return 199; // "funnel_shift_overshift"
1420 }
1421 break;
1422 case 'i': // 1 string to match.
1423 if (memcmp(RuleIdentifier.data()+1, "cmp_to_lhs_known_bits", 21) != 0)
1424 break;
1425 return 126; // "icmp_to_lhs_known_bits"
1426 case 'p': // 1 string to match.
1427 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_any_op", 21) != 0)
1428 break;
1429 return 83; // "propagate_undef_any_op"
1430 case 'r': // 1 string to match.
1431 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_int", 21) != 0)
1432 break;
1433 return 103; // "right_identity_one_int"
1434 case 's': // 1 string to match.
1435 if (memcmp(RuleIdentifier.data()+1, "hl_ashr_to_sext_inreg", 21) != 0)
1436 break;
1437 return 130; // "shl_ashr_to_sext_inreg"
1438 case 't': // 1 string to match.
1439 if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold", 21) != 0)
1440 break;
1441 return 108; // "trunc_buildvector_fold"
1442 }
1443 break;
1444 case 23: // 7 strings to match.
1445 switch (RuleIdentifier[0]) {
1446 default: break;
1447 case 'b': // 1 string to match.
1448 if (memcmp(RuleIdentifier.data()+1, "uildvector_of_truncate", 22) != 0)
1449 break;
1450 return 62; // "buildvector_of_truncate"
1451 case 'f': // 2 strings to match.
1452 switch (RuleIdentifier[1]) {
1453 default: break;
1454 case 'd': // 1 string to match.
1455 if (memcmp(RuleIdentifier.data()+2, "iv_by_sqrt_to_rsq_f16", 21) != 0)
1456 break;
1457 return 344; // "fdiv_by_sqrt_to_rsq_f16"
1458 case 'u': // 1 string to match.
1459 if (memcmp(RuleIdentifier.data()+2, "nnel_shift_right_zero", 21) != 0)
1460 break;
1461 return 197; // "funnel_shift_right_zero"
1462 }
1463 break;
1464 case 'i': // 2 strings to match.
1465 if (memcmp(RuleIdentifier.data()+1, "tof_const_zero_fold_", 20) != 0)
1466 break;
1467 switch (RuleIdentifier[21]) {
1468 default: break;
1469 case 's': // 1 string to match.
1470 if (RuleIdentifier[22] != 'i')
1471 break;
1472 return 170; // "itof_const_zero_fold_si"
1473 case 'u': // 1 string to match.
1474 if (RuleIdentifier[22] != 'i')
1475 break;
1476 return 171; // "itof_const_zero_fold_ui"
1477 }
1478 break;
1479 case 's': // 1 string to match.
1480 if (memcmp(RuleIdentifier.data()+1, "elect_same_val_trivial", 22) != 0)
1481 break;
1482 return 90; // "select_same_val_trivial"
1483 case 't': // 1 string to match.
1484 if (memcmp(RuleIdentifier.data()+1, "runcusatu_to_fptouisat", 22) != 0)
1485 break;
1486 return 314; // "truncusatu_to_fptouisat"
1487 }
1488 break;
1489 case 24: // 17 strings to match.
1490 switch (RuleIdentifier[0]) {
1491 default: break;
1492 case 'b': // 1 string to match.
1493 if (memcmp(RuleIdentifier.data()+1, "inop_left_undef_to_zero", 23) != 0)
1494 break;
1495 return 79; // "binop_left_undef_to_zero"
1496 case 'c': // 4 strings to match.
1497 switch (RuleIdentifier[1]) {
1498 default: break;
1499 case 'o': // 1 string to match.
1500 if (memcmp(RuleIdentifier.data()+2, "nstant_fold_fnearbyint", 22) != 0)
1501 break;
1502 return 169; // "constant_fold_fnearbyint"
1503 case 't': // 3 strings to match.
1504 switch (RuleIdentifier[2]) {
1505 default: break;
1506 case 'l': // 2 strings to match.
1507 if (memcmp(RuleIdentifier.data()+3, "z_", 2) != 0)
1508 break;
1509 switch (RuleIdentifier[5]) {
1510 default: break;
1511 case 't': // 1 string to match.
1512 if (memcmp(RuleIdentifier.data()+6, "o_ctlz_zero_poison", 18) != 0)
1513 break;
1514 return 318; // "ctlz_to_ctlz_zero_poison"
1515 case 'z': // 1 string to match.
1516 if (memcmp(RuleIdentifier.data()+6, "ero_poison_to_ctls", 18) != 0)
1517 break;
1518 return 317; // "ctlz_zero_poison_to_ctls"
1519 }
1520 break;
1521 case 't': // 1 string to match.
1522 if (memcmp(RuleIdentifier.data()+3, "z_to_cttz_zero_poison", 21) != 0)
1523 break;
1524 return 319; // "cttz_to_cttz_zero_poison"
1525 }
1526 break;
1527 }
1528 break;
1529 case 'f': // 2 strings to match.
1530 if (memcmp(RuleIdentifier.data()+1, "old_binop_into_select_", 22) != 0)
1531 break;
1532 switch (RuleIdentifier[23]) {
1533 default: break;
1534 case 'a': // 1 string to match.
1535 return 233; // "fold_binop_into_select_a"
1536 case 'b': // 1 string to match.
1537 return 234; // "fold_binop_into_select_b"
1538 }
1539 break;
1540 case 'm': // 1 string to match.
1541 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element", 23) != 0)
1542 break;
1543 return 28; // "match_extract_of_element"
1544 case 'n': // 1 string to match.
1545 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_feeding_and", 23) != 0)
1546 break;
1547 return 134; // "narrow_binop_feeding_and"
1548 case 'p': // 2 strings to match.
1549 if (memcmp(RuleIdentifier.data()+1, "tr_add_with_zero_", 17) != 0)
1550 break;
1551 switch (RuleIdentifier[18]) {
1552 default: break;
1553 case 's': // 1 string to match.
1554 if (memcmp(RuleIdentifier.data()+19, "calar", 5) != 0)
1555 break;
1556 return 188; // "ptr_add_with_zero_scalar"
1557 case 'v': // 1 string to match.
1558 if (memcmp(RuleIdentifier.data()+19, "ector", 5) != 0)
1559 break;
1560 return 189; // "ptr_add_with_zero_vector"
1561 }
1562 break;
1563 case 's': // 3 strings to match.
1564 if (RuleIdentifier[1] != 'e')
1565 break;
1566 switch (RuleIdentifier[2]) {
1567 default: break;
1568 case 'l': // 1 string to match.
1569 if (memcmp(RuleIdentifier.data()+3, "ect_constant_cmp_true", 21) != 0)
1570 break;
1571 return 137; // "select_constant_cmp_true"
1572 case 'x': // 2 strings to match.
1573 if (memcmp(RuleIdentifier.data()+3, "t_inreg_", 8) != 0)
1574 break;
1575 switch (RuleIdentifier[11]) {
1576 default: break;
1577 case 'o': // 1 string to match.
1578 if (memcmp(RuleIdentifier.data()+12, "f_sext_inreg", 12) != 0)
1579 break;
1580 return 58; // "sext_inreg_of_sext_inreg"
1581 case 't': // 1 string to match.
1582 if (memcmp(RuleIdentifier.data()+12, "o_zext_inreg", 12) != 0)
1583 break;
1584 return 153; // "sext_inreg_to_zext_inreg"
1585 }
1586 break;
1587 }
1588 break;
1589 case 't': // 2 strings to match.
1590 if (memcmp(RuleIdentifier.data()+1, "runc_lshr16_unmerge_", 20) != 0)
1591 break;
1592 switch (RuleIdentifier[21]) {
1593 default: break;
1594 case 'f': // 1 string to match.
1595 if (memcmp(RuleIdentifier.data()+22, "16", 2) != 0)
1596 break;
1597 return 348; // "trunc_lshr16_unmerge_f16"
1598 case 'i': // 1 string to match.
1599 if (memcmp(RuleIdentifier.data()+22, "16", 2) != 0)
1600 break;
1601 return 347; // "trunc_lshr16_unmerge_i16"
1602 }
1603 break;
1604 case 'x': // 1 string to match.
1605 if (memcmp(RuleIdentifier.data()+1, "or_of_and_with_same_reg", 23) != 0)
1606 break;
1607 return 187; // "xor_of_and_with_same_reg"
1608 }
1609 break;
1610 case 25: // 12 strings to match.
1611 switch (RuleIdentifier[0]) {
1612 default: break;
1613 case 'a': // 1 string to match.
1614 if (memcmp(RuleIdentifier.data()+1, "mdgcn_sqrt_of_rcp_to_rsq", 24) != 0)
1615 break;
1616 return 343; // "amdgcn_sqrt_of_rcp_to_rsq"
1617 case 'b': // 2 strings to match.
1618 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_", 21) != 0)
1619 break;
1620 switch (RuleIdentifier[22]) {
1621 default: break;
1622 case 'a': // 1 string to match.
1623 if (memcmp(RuleIdentifier.data()+23, "nd", 2) != 0)
1624 break;
1625 return 207; // "bitfield_extract_from_and"
1626 case 's': // 1 string to match.
1627 if (memcmp(RuleIdentifier.data()+23, "hr", 2) != 0)
1628 break;
1629 return 208; // "bitfield_extract_from_shr"
1630 }
1631 break;
1632 case 'c': // 1 string to match.
1633 if (memcmp(RuleIdentifier.data()+1, "ombine_shuffle_undef_rhs", 24) != 0)
1634 break;
1635 return 292; // "combine_shuffle_undef_rhs"
1636 case 'e': // 1 string to match.
1637 if (memcmp(RuleIdentifier.data()+1, "xtract_vec_elt_build_vec", 24) != 0)
1638 break;
1639 return 71; // "extract_vec_elt_build_vec"
1640 case 'n': // 1 string to match.
1641 if (memcmp(RuleIdentifier.data()+1, "eg_and_one_to_sext_inreg", 24) != 0)
1642 break;
1643 return 131; // "neg_and_one_to_sext_inreg"
1644 case 'r': // 4 strings to match.
1645 switch (RuleIdentifier[1]) {
1646 default: break;
1647 case 'c': // 1 string to match.
1648 if (memcmp(RuleIdentifier.data()+2, "p_of_amdgcn_sqrt_to_rsq", 23) != 0)
1649 break;
1650 return 341; // "rcp_of_amdgcn_sqrt_to_rsq"
1651 case 'e': // 2 strings to match.
1652 if (memcmp(RuleIdentifier.data()+2, "dundant_", 8) != 0)
1653 break;
1654 switch (RuleIdentifier[10]) {
1655 default: break;
1656 case 'a': // 1 string to match.
1657 if (memcmp(RuleIdentifier.data()+11, "ext_sext_inreg", 14) != 0)
1658 break;
1659 return 146; // "redundant_aext_sext_inreg"
1660 case 'z': // 1 string to match.
1661 if (memcmp(RuleIdentifier.data()+11, "ext_sext_inreg", 14) != 0)
1662 break;
1663 return 145; // "redundant_zext_sext_inreg"
1664 }
1665 break;
1666 case 'i': // 1 string to match.
1667 if (memcmp(RuleIdentifier.data()+2, "ght_identity_neg_one_fp", 23) != 0)
1668 break;
1669 return 115; // "right_identity_neg_one_fp"
1670 }
1671 break;
1672 case 's': // 1 string to match.
1673 if (memcmp(RuleIdentifier.data()+1, "elect_constant_cmp_false", 24) != 0)
1674 break;
1675 return 136; // "select_constant_cmp_false"
1676 case 't': // 1 string to match.
1677 if (memcmp(RuleIdentifier.data()+1, "runc_lshr16_unmerge_bf16", 24) != 0)
1678 break;
1679 return 349; // "trunc_lshr16_unmerge_bf16"
1680 }
1681 break;
1682 case 26: // 5 strings to match.
1683 switch (RuleIdentifier[0]) {
1684 default: break;
1685 case 'b': // 2 strings to match.
1686 if (RuleIdentifier[1] != 'i')
1687 break;
1688 switch (RuleIdentifier[2]) {
1689 default: break;
1690 case 'n': // 1 string to match.
1691 if (memcmp(RuleIdentifier.data()+3, "op_right_undef_to_undef", 23) != 0)
1692 break;
1693 return 80; // "binop_right_undef_to_undef"
1694 case 't': // 1 string to match.
1695 if (memcmp(RuleIdentifier.data()+3, "cast_bitcast_to_bitcast", 23) != 0)
1696 break;
1697 return 111; // "bitcast_bitcast_to_bitcast"
1698 }
1699 break;
1700 case 'c': // 1 string to match.
1701 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_unary_int_op", 25) != 0)
1702 break;
1703 return 214; // "constant_fold_unary_int_op"
1704 case 'f': // 1 string to match.
1705 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_from_or_shift", 25) != 0)
1706 break;
1707 return 194; // "funnel_shift_from_or_shift"
1708 case 'r': // 1 string to match.
1709 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp", 25) != 0)
1710 break;
1711 return 113; // "right_identity_neg_zero_fp"
1712 }
1713 break;
1714 case 27: // 7 strings to match.
1715 switch (RuleIdentifier[0]) {
1716 default: break;
1717 case 'c': // 1 string to match.
1718 if (memcmp(RuleIdentifier.data()+1, "ombine_use_vector_truncate", 26) != 0)
1719 break;
1720 return 294; // "combine_use_vector_truncate"
1721 case 'd': // 1 string to match.
1722 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_or_combine", 26) != 0)
1723 break;
1724 return 128; // "double_icmp_zero_or_combine"
1725 case 'f': // 1 string to match.
1726 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_to_rotate_left", 26) != 0)
1727 break;
1728 return 195; // "funnel_shift_to_rotate_left"
1729 case 'r': // 2 strings to match.
1730 if (memcmp(RuleIdentifier.data()+1, "edundant_", 9) != 0)
1731 break;
1732 switch (RuleIdentifier[10]) {
1733 default: break;
1734 case 'b': // 1 string to match.
1735 if (memcmp(RuleIdentifier.data()+11, "inop_in_equality", 16) != 0)
1736 break;
1737 return 129; // "redundant_binop_in_equality"
1738 case 'n': // 1 string to match.
1739 if (memcmp(RuleIdentifier.data()+11, "eg_operands_fsub", 16) != 0)
1740 break;
1741 return 219; // "redundant_neg_operands_fsub"
1742 }
1743 break;
1744 case 't': // 1 string to match.
1745 if (memcmp(RuleIdentifier.data()+1, "runc_lshr_buildvector_fold", 26) != 0)
1746 break;
1747 return 109; // "trunc_lshr_buildvector_fold"
1748 case 'u': // 1 string to match.
1749 if (memcmp(RuleIdentifier.data()+1, "nmerge_anyext_build_vector", 26) != 0)
1750 break;
1751 return 295; // "unmerge_anyext_build_vector"
1752 }
1753 break;
1754 case 28: // 14 strings to match.
1755 switch (RuleIdentifier[0]) {
1756 default: break;
1757 case 'G': // 1 string to match.
1758 if (memcmp(RuleIdentifier.data()+1, "_OR_commute_constant_to_rhs", 27) != 0)
1759 break;
1760 return 252; // "G_OR_commute_constant_to_rhs"
1761 case 'b': // 1 string to match.
1762 if (memcmp(RuleIdentifier.data()+1, "uildvector_identity_fold_bv", 27) != 0)
1763 break;
1764 return 106; // "buildvector_identity_fold_bv"
1765 case 'c': // 1 string to match.
1766 if (memcmp(RuleIdentifier.data()+1, "ombine_or_s64_with_s32_mask", 27) != 0)
1767 break;
1768 return 350; // "combine_or_s64_with_s32_mask"
1769 case 'd': // 1 string to match.
1770 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_and_combine", 27) != 0)
1771 break;
1772 return 127; // "double_icmp_zero_and_combine"
1773 case 'e': // 1 string to match.
1774 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_undef", 27) != 0)
1775 break;
1776 return 25; // "extract_vector_element_undef"
1777 case 'f': // 1 string to match.
1778 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_to_rotate_right", 27) != 0)
1779 break;
1780 return 196; // "funnel_shift_to_rotate_right"
1781 case 'i': // 1 string to match.
1782 if (memcmp(RuleIdentifier.data()+1, "nsert_vec_elt_out_of_bounds", 27) != 0)
1783 break;
1784 return 88; // "insert_vec_elt_out_of_bounds"
1785 case 'm': // 4 strings to match.
1786 if (memcmp(RuleIdentifier.data()+1, "atch_", 5) != 0)
1787 break;
1788 switch (RuleIdentifier[6]) {
1789 default: break;
1790 case 'a': // 2 strings to match.
1791 if (memcmp(RuleIdentifier.data()+7, "ddos_", 5) != 0)
1792 break;
1793 switch (RuleIdentifier[12]) {
1794 default: break;
1795 case 's': // 1 string to match.
1796 if (memcmp(RuleIdentifier.data()+13, "addo_dead_carry", 15) != 0)
1797 break;
1798 return 305; // "match_addos_saddo_dead_carry"
1799 case 'u': // 1 string to match.
1800 if (memcmp(RuleIdentifier.data()+13, "addo_dead_carry", 15) != 0)
1801 break;
1802 return 306; // "match_addos_uaddo_dead_carry"
1803 }
1804 break;
1805 case 's': // 2 strings to match.
1806 if (memcmp(RuleIdentifier.data()+7, "ubo_no_overflow_", 16) != 0)
1807 break;
1808 switch (RuleIdentifier[23]) {
1809 default: break;
1810 case 's': // 1 string to match.
1811 if (memcmp(RuleIdentifier.data()+24, "subo", 4) != 0)
1812 break;
1813 return 309; // "match_subo_no_overflow_ssubo"
1814 case 'u': // 1 string to match.
1815 if (memcmp(RuleIdentifier.data()+24, "subo", 4) != 0)
1816 break;
1817 return 310; // "match_subo_no_overflow_usubo"
1818 }
1819 break;
1820 }
1821 break;
1822 case 'o': // 1 string to match.
1823 if (memcmp(RuleIdentifier.data()+1, "pt_brcond_by_inverting_cond", 27) != 0)
1824 break;
1825 return 156; // "opt_brcond_by_inverting_cond"
1826 case 'p': // 1 string to match.
1827 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_shuffle_mask", 27) != 0)
1828 break;
1829 return 86; // "propagate_undef_shuffle_mask"
1830 case 's': // 1 string to match.
1831 if (memcmp(RuleIdentifier.data()+1, "hift_of_shifted_logic_chain", 27) != 0)
1832 break;
1833 return 191; // "shift_of_shifted_logic_chain"
1834 }
1835 break;
1836 case 29: // 13 strings to match.
1837 switch (RuleIdentifier[0]) {
1838 default: break;
1839 case 'G': // 4 strings to match.
1840 if (RuleIdentifier[1] != '_')
1841 break;
1842 switch (RuleIdentifier[2]) {
1843 default: break;
1844 case 'A': // 2 strings to match.
1845 switch (RuleIdentifier[3]) {
1846 default: break;
1847 case 'D': // 1 string to match.
1848 if (memcmp(RuleIdentifier.data()+4, "D_commute_constant_to_rhs", 25) != 0)
1849 break;
1850 return 249; // "G_ADD_commute_constant_to_rhs"
1851 case 'N': // 1 string to match.
1852 if (memcmp(RuleIdentifier.data()+4, "D_commute_constant_to_rhs", 25) != 0)
1853 break;
1854 return 251; // "G_AND_commute_constant_to_rhs"
1855 }
1856 break;
1857 case 'M': // 1 string to match.
1858 if (memcmp(RuleIdentifier.data()+3, "UL_commute_constant_to_rhs", 26) != 0)
1859 break;
1860 return 250; // "G_MUL_commute_constant_to_rhs"
1861 case 'X': // 1 string to match.
1862 if (memcmp(RuleIdentifier.data()+3, "OR_commute_constant_to_rhs", 26) != 0)
1863 break;
1864 return 253; // "G_XOR_commute_constant_to_rhs"
1865 }
1866 break;
1867 case 'b': // 2 strings to match.
1868 switch (RuleIdentifier[1]) {
1869 default: break;
1870 case 'i': // 1 string to match.
1871 if (memcmp(RuleIdentifier.data()+2, "tfield_extract_from_shr_and", 27) != 0)
1872 break;
1873 return 209; // "bitfield_extract_from_shr_and"
1874 case 'u': // 1 string to match.
1875 if (memcmp(RuleIdentifier.data()+2, "ildvector_identity_fold_bvt", 27) != 0)
1876 break;
1877 return 107; // "buildvector_identity_fold_bvt"
1878 }
1879 break;
1880 case 'c': // 5 strings to match.
1881 if (RuleIdentifier[1] != 'o')
1882 break;
1883 switch (RuleIdentifier[2]) {
1884 default: break;
1885 case 'm': // 3 strings to match.
1886 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1887 break;
1888 switch (RuleIdentifier[8]) {
1889 default: break;
1890 case 'a': // 1 string to match.
1891 if (memcmp(RuleIdentifier.data()+9, "nd_s64_with_s32_mask", 20) != 0)
1892 break;
1893 return 351; // "combine_and_s64_with_s32_mask"
1894 case 'e': // 1 string to match.
1895 if (memcmp(RuleIdentifier.data()+9, "xtracted_vector_load", 20) != 0)
1896 break;
1897 return 75; // "combine_extracted_vector_load"
1898 case 's': // 1 string to match.
1899 if (memcmp(RuleIdentifier.data()+9, "huffle_disjoint_mask", 20) != 0)
1900 break;
1901 return 293; // "combine_shuffle_disjoint_mask"
1902 }
1903 break;
1904 case 'n': // 2 strings to match.
1905 if (memcmp(RuleIdentifier.data()+3, "stant_fold_intrinsic_", 21) != 0)
1906 break;
1907 switch (RuleIdentifier[24]) {
1908 default: break;
1909 case 'r': // 1 string to match.
1910 if (memcmp(RuleIdentifier.data()+25, "ound", 4) != 0)
1911 break;
1912 return 166; // "constant_fold_intrinsic_round"
1913 case 't': // 1 string to match.
1914 if (memcmp(RuleIdentifier.data()+25, "runc", 4) != 0)
1915 break;
1916 return 165; // "constant_fold_intrinsic_trunc"
1917 }
1918 break;
1919 }
1920 break;
1921 case 'e': // 1 string to match.
1922 if (memcmp(RuleIdentifier.data()+1, "xtract_vec_elt_out_of_bounds", 28) != 0)
1923 break;
1924 return 89; // "extract_vec_elt_out_of_bounds"
1925 case 'i': // 1 string to match.
1926 if (memcmp(RuleIdentifier.data()+1, "cmp_to_true_false_known_bits", 28) != 0)
1927 break;
1928 return 125; // "icmp_to_true_false_known_bits"
1929 }
1930 break;
1931 case 30: // 6 strings to match.
1932 switch (RuleIdentifier[0]) {
1933 default: break;
1934 case 'G': // 4 strings to match.
1935 if (RuleIdentifier[1] != '_')
1936 break;
1937 switch (RuleIdentifier[2]) {
1938 default: break;
1939 case 'S': // 2 strings to match.
1940 if (RuleIdentifier[3] != 'M')
1941 break;
1942 switch (RuleIdentifier[4]) {
1943 default: break;
1944 case 'A': // 1 string to match.
1945 if (memcmp(RuleIdentifier.data()+5, "X_commute_constant_to_rhs", 25) != 0)
1946 break;
1947 return 255; // "G_SMAX_commute_constant_to_rhs"
1948 case 'I': // 1 string to match.
1949 if (memcmp(RuleIdentifier.data()+5, "N_commute_constant_to_rhs", 25) != 0)
1950 break;
1951 return 254; // "G_SMIN_commute_constant_to_rhs"
1952 }
1953 break;
1954 case 'U': // 2 strings to match.
1955 if (RuleIdentifier[3] != 'M')
1956 break;
1957 switch (RuleIdentifier[4]) {
1958 default: break;
1959 case 'A': // 1 string to match.
1960 if (memcmp(RuleIdentifier.data()+5, "X_commute_constant_to_rhs", 25) != 0)
1961 break;
1962 return 257; // "G_UMAX_commute_constant_to_rhs"
1963 case 'I': // 1 string to match.
1964 if (memcmp(RuleIdentifier.data()+5, "N_commute_constant_to_rhs", 25) != 0)
1965 break;
1966 return 256; // "G_UMIN_commute_constant_to_rhs"
1967 }
1968 break;
1969 }
1970 break;
1971 case 'f': // 1 string to match.
1972 if (memcmp(RuleIdentifier.data()+1, "reeze_of_non_undef_non_poison", 29) != 0)
1973 break;
1974 return 46; // "freeze_of_non_undef_non_poison"
1975 case 'r': // 1 string to match.
1976 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp_nsz", 29) != 0)
1977 break;
1978 return 114; // "right_identity_neg_zero_fp_nsz"
1979 }
1980 break;
1981 case 31: // 11 strings to match.
1982 switch (RuleIdentifier[0]) {
1983 default: break;
1984 case 'G': // 6 strings to match.
1985 if (RuleIdentifier[1] != '_')
1986 break;
1987 switch (RuleIdentifier[2]) {
1988 default: break;
1989 case 'S': // 3 strings to match.
1990 switch (RuleIdentifier[3]) {
1991 default: break;
1992 case 'A': // 1 string to match.
1993 if (memcmp(RuleIdentifier.data()+4, "DDO_commute_constant_to_rhs", 27) != 0)
1994 break;
1995 return 267; // "G_SADDO_commute_constant_to_rhs"
1996 case 'M': // 2 strings to match.
1997 if (memcmp(RuleIdentifier.data()+4, "UL", 2) != 0)
1998 break;
1999 switch (RuleIdentifier[6]) {
2000 default: break;
2001 case 'H': // 1 string to match.
2002 if (memcmp(RuleIdentifier.data()+7, "_commute_constant_to_rhs", 24) != 0)
2003 break;
2004 return 259; // "G_SMULH_commute_constant_to_rhs"
2005 case 'O': // 1 string to match.
2006 if (memcmp(RuleIdentifier.data()+7, "_commute_constant_to_rhs", 24) != 0)
2007 break;
2008 return 269; // "G_SMULO_commute_constant_to_rhs"
2009 }
2010 break;
2011 }
2012 break;
2013 case 'U': // 3 strings to match.
2014 switch (RuleIdentifier[3]) {
2015 default: break;
2016 case 'A': // 1 string to match.
2017 if (memcmp(RuleIdentifier.data()+4, "DDO_commute_constant_to_rhs", 27) != 0)
2018 break;
2019 return 266; // "G_UADDO_commute_constant_to_rhs"
2020 case 'M': // 2 strings to match.
2021 if (memcmp(RuleIdentifier.data()+4, "UL", 2) != 0)
2022 break;
2023 switch (RuleIdentifier[6]) {
2024 default: break;
2025 case 'H': // 1 string to match.
2026 if (memcmp(RuleIdentifier.data()+7, "_commute_constant_to_rhs", 24) != 0)
2027 break;
2028 return 258; // "G_UMULH_commute_constant_to_rhs"
2029 case 'O': // 1 string to match.
2030 if (memcmp(RuleIdentifier.data()+7, "_commute_constant_to_rhs", 24) != 0)
2031 break;
2032 return 268; // "G_UMULO_commute_constant_to_rhs"
2033 }
2034 break;
2035 }
2036 break;
2037 }
2038 break;
2039 case 'f': // 1 string to match.
2040 if (memcmp(RuleIdentifier.data()+1, "cmp_select_to_fmin_fmax_legacy", 30) != 0)
2041 break;
2042 return 332; // "fcmp_select_to_fmin_fmax_legacy"
2043 case 'i': // 2 strings to match.
2044 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_element_", 21) != 0)
2045 break;
2046 switch (RuleIdentifier[22]) {
2047 default: break;
2048 case 'e': // 1 string to match.
2049 if (memcmp(RuleIdentifier.data()+23, "lt_undef", 8) != 0)
2050 break;
2051 return 27; // "insert_vector_element_elt_undef"
2052 case 'i': // 1 string to match.
2053 if (memcmp(RuleIdentifier.data()+23, "dx_undef", 8) != 0)
2054 break;
2055 return 26; // "insert_vector_element_idx_undef"
2056 }
2057 break;
2058 case 'r': // 2 strings to match.
2059 if (memcmp(RuleIdentifier.data()+1, "edundant_neg_operands_fadd_", 27) != 0)
2060 break;
2061 switch (RuleIdentifier[28]) {
2062 default: break;
2063 case 'l': // 1 string to match.
2064 if (memcmp(RuleIdentifier.data()+29, "hs", 2) != 0)
2065 break;
2066 return 218; // "redundant_neg_operands_fadd_lhs"
2067 case 'r': // 1 string to match.
2068 if (memcmp(RuleIdentifier.data()+29, "hs", 2) != 0)
2069 break;
2070 return 217; // "redundant_neg_operands_fadd_rhs"
2071 }
2072 break;
2073 }
2074 break;
2075 case 32: // 5 strings to match.
2076 switch (RuleIdentifier[0]) {
2077 default: break;
2078 case 'b': // 1 string to match.
2079 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_sext_inreg", 31) != 0)
2080 break;
2081 return 206; // "bitfield_extract_from_sext_inreg"
2082 case 'c': // 2 strings to match.
2083 if (memcmp(RuleIdentifier.data()+1, "ombine_f", 8) != 0)
2084 break;
2085 switch (RuleIdentifier[9]) {
2086 default: break;
2087 case 'a': // 1 string to match.
2088 if (memcmp(RuleIdentifier.data()+10, "dd_fmul_to_fmad_or_fma", 22) != 0)
2089 break;
2090 return 225; // "combine_fadd_fmul_to_fmad_or_fma"
2091 case 's': // 1 string to match.
2092 if (memcmp(RuleIdentifier.data()+10, "ub_fmul_to_fmad_or_fma", 22) != 0)
2093 break;
2094 return 229; // "combine_fsub_fmul_to_fmad_or_fma"
2095 }
2096 break;
2097 case 'e': // 1 string to match.
2098 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_not_const", 31) != 0)
2099 break;
2100 return 30; // "extract_vector_element_not_const"
2101 case 's': // 1 string to match.
2102 if (memcmp(RuleIdentifier.data()+1, "elect_constant_cmp_general_true", 31) != 0)
2103 break;
2104 return 139; // "select_constant_cmp_general_true"
2105 }
2106 break;
2107 case 33: // 10 strings to match.
2108 switch (RuleIdentifier[0]) {
2109 default: break;
2110 case 'G': // 6 strings to match.
2111 if (RuleIdentifier[1] != '_')
2112 break;
2113 switch (RuleIdentifier[2]) {
2114 default: break;
2115 case 'F': // 2 strings to match.
2116 switch (RuleIdentifier[3]) {
2117 default: break;
2118 case 'A': // 1 string to match.
2119 if (memcmp(RuleIdentifier.data()+4, "DD_commute_fp_constant_to_rhs", 29) != 0)
2120 break;
2121 return 270; // "G_FADD_commute_fp_constant_to_rhs"
2122 case 'M': // 1 string to match.
2123 if (memcmp(RuleIdentifier.data()+4, "UL_commute_fp_constant_to_rhs", 29) != 0)
2124 break;
2125 return 271; // "G_FMUL_commute_fp_constant_to_rhs"
2126 }
2127 break;
2128 case 'S': // 2 strings to match.
2129 switch (RuleIdentifier[3]) {
2130 default: break;
2131 case 'A': // 1 string to match.
2132 if (memcmp(RuleIdentifier.data()+4, "DDSAT_commute_constant_to_rhs", 29) != 0)
2133 break;
2134 return 261; // "G_SADDSAT_commute_constant_to_rhs"
2135 case 'M': // 1 string to match.
2136 if (memcmp(RuleIdentifier.data()+4, "ULFIX_commute_constant_to_rhs", 29) != 0)
2137 break;
2138 return 262; // "G_SMULFIX_commute_constant_to_rhs"
2139 }
2140 break;
2141 case 'U': // 2 strings to match.
2142 switch (RuleIdentifier[3]) {
2143 default: break;
2144 case 'A': // 1 string to match.
2145 if (memcmp(RuleIdentifier.data()+4, "DDSAT_commute_constant_to_rhs", 29) != 0)
2146 break;
2147 return 260; // "G_UADDSAT_commute_constant_to_rhs"
2148 case 'M': // 1 string to match.
2149 if (memcmp(RuleIdentifier.data()+4, "ULFIX_commute_constant_to_rhs", 29) != 0)
2150 break;
2151 return 263; // "G_UMULFIX_commute_constant_to_rhs"
2152 }
2153 break;
2154 }
2155 break;
2156 case 'c': // 1 string to match.
2157 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_intrinsic_roundeven", 32) != 0)
2158 break;
2159 return 167; // "constant_fold_intrinsic_roundeven"
2160 case 'r': // 2 strings to match.
2161 if (memcmp(RuleIdentifier.data()+1, "edundant_", 9) != 0)
2162 break;
2163 switch (RuleIdentifier[10]) {
2164 default: break;
2165 case 'a': // 1 string to match.
2166 if (memcmp(RuleIdentifier.data()+11, "ext_unmerge_sext_inreg", 22) != 0)
2167 break;
2168 return 148; // "redundant_aext_unmerge_sext_inreg"
2169 case 'z': // 1 string to match.
2170 if (memcmp(RuleIdentifier.data()+11, "ext_unmerge_sext_inreg", 22) != 0)
2171 break;
2172 return 147; // "redundant_zext_unmerge_sext_inreg"
2173 }
2174 break;
2175 case 's': // 1 string to match.
2176 if (memcmp(RuleIdentifier.data()+1, "elect_constant_cmp_general_false", 32) != 0)
2177 break;
2178 return 138; // "select_constant_cmp_general_false"
2179 }
2180 break;
2181 case 34: // 2 strings to match.
2182 switch (RuleIdentifier[0]) {
2183 default: break;
2184 case 'c': // 1 string to match.
2185 if (memcmp(RuleIdentifier.data()+1, "ombine_fmul_with_select_to_fldexp", 33) != 0)
2186 break;
2187 return 334; // "combine_fmul_with_select_to_fldexp"
2188 case 'e': // 1 string to match.
2189 if (memcmp(RuleIdentifier.data()+1, "xtract_all_elts_from_build_vector", 33) != 0)
2190 break;
2191 return 72; // "extract_all_elts_from_build_vector"
2192 }
2193 break;
2194 case 35: // 1 string to match.
2195 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_build_vector", 35) != 0)
2196 break;
2197 return 32; // "extract_vector_element_build_vector"
2198 case 36: // 7 strings to match.
2199 switch (RuleIdentifier[0]) {
2200 default: break;
2201 case 'G': // 4 strings to match.
2202 if (RuleIdentifier[1] != '_')
2203 break;
2204 switch (RuleIdentifier[2]) {
2205 default: break;
2206 case 'F': // 2 strings to match.
2207 if (RuleIdentifier[3] != 'M')
2208 break;
2209 switch (RuleIdentifier[4]) {
2210 default: break;
2211 case 'A': // 1 string to match.
2212 if (memcmp(RuleIdentifier.data()+5, "XNUM_commute_fp_constant_to_rhs", 31) != 0)
2213 break;
2214 return 273; // "G_FMAXNUM_commute_fp_constant_to_rhs"
2215 case 'I': // 1 string to match.
2216 if (memcmp(RuleIdentifier.data()+5, "NNUM_commute_fp_constant_to_rhs", 31) != 0)
2217 break;
2218 return 272; // "G_FMINNUM_commute_fp_constant_to_rhs"
2219 }
2220 break;
2221 case 'S': // 1 string to match.
2222 if (memcmp(RuleIdentifier.data()+3, "MULFIXSAT_commute_constant_to_rhs", 33) != 0)
2223 break;
2224 return 264; // "G_SMULFIXSAT_commute_constant_to_rhs"
2225 case 'U': // 1 string to match.
2226 if (memcmp(RuleIdentifier.data()+3, "MULFIXSAT_commute_constant_to_rhs", 33) != 0)
2227 break;
2228 return 265; // "G_UMULFIXSAT_commute_constant_to_rhs"
2229 }
2230 break;
2231 case 'c': // 2 strings to match.
2232 if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
2233 break;
2234 switch (RuleIdentifier[8]) {
2235 default: break;
2236 case 'f': // 1 string to match.
2237 if (memcmp(RuleIdentifier.data()+9, "add_fma_fmul_to_fmad_or_fma", 27) != 0)
2238 break;
2239 return 227; // "combine_fadd_fma_fmul_to_fmad_or_fma"
2240 case 'i': // 1 string to match.
2241 if (memcmp(RuleIdentifier.data()+9, "nsert_vec_elts_build_vector", 27) != 0)
2242 break;
2243 return 70; // "combine_insert_vec_elts_build_vector"
2244 }
2245 break;
2246 case 'p': // 1 string to match.
2247 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_all_ops_build_vector", 35) != 0)
2248 break;
2249 return 85; // "propagate_undef_all_ops_build_vector"
2250 }
2251 break;
2252 case 37: // 5 strings to match.
2253 switch (RuleIdentifier[0]) {
2254 default: break;
2255 case 'G': // 2 strings to match.
2256 if (memcmp(RuleIdentifier.data()+1, "_FM", 3) != 0)
2257 break;
2258 switch (RuleIdentifier[4]) {
2259 default: break;
2260 case 'A': // 1 string to match.
2261 if (memcmp(RuleIdentifier.data()+5, "XIMUM_commute_fp_constant_to_rhs", 32) != 0)
2262 break;
2263 return 277; // "G_FMAXIMUM_commute_fp_constant_to_rhs"
2264 case 'I': // 1 string to match.
2265 if (memcmp(RuleIdentifier.data()+5, "NIMUM_commute_fp_constant_to_rhs", 32) != 0)
2266 break;
2267 return 276; // "G_FMINIMUM_commute_fp_constant_to_rhs"
2268 }
2269 break;
2270 case 'c': // 1 string to match.
2271 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fneg_fmul_to_fmad_or_fma", 36) != 0)
2272 break;
2273 return 230; // "combine_fsub_fneg_fmul_to_fmad_or_fma"
2274 case 'e': // 1 string to match.
2275 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_shuffle_vector", 36) != 0)
2276 break;
2277 return 40; // "extract_vector_element_shuffle_vector"
2278 case 'h': // 1 string to match.
2279 if (memcmp(RuleIdentifier.data()+1, "oist_logic_op_with_same_opcode_hands", 36) != 0)
2280 break;
2281 return 118; // "hoist_logic_op_with_same_opcode_hands"
2282 }
2283 break;
2284 case 38: // 3 strings to match.
2285 switch (RuleIdentifier[0]) {
2286 default: break;
2287 case 'c': // 2 strings to match.
2288 if (memcmp(RuleIdentifier.data()+1, "ombine_f", 8) != 0)
2289 break;
2290 switch (RuleIdentifier[9]) {
2291 default: break;
2292 case 'a': // 1 string to match.
2293 if (memcmp(RuleIdentifier.data()+10, "dd_fpext_fmul_to_fmad_or_fma", 28) != 0)
2294 break;
2295 return 226; // "combine_fadd_fpext_fmul_to_fmad_or_fma"
2296 case 's': // 1 string to match.
2297 if (memcmp(RuleIdentifier.data()+10, "ub_fpext_fmul_to_fmad_or_fma", 28) != 0)
2298 break;
2299 return 231; // "combine_fsub_fpext_fmul_to_fmad_or_fma"
2300 }
2301 break;
2302 case 'p': // 1 string to match.
2303 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_all_ops_shuffle_vector", 37) != 0)
2304 break;
2305 return 84; // "propagate_undef_all_ops_shuffle_vector"
2306 }
2307 break;
2308 case 40: // 1 string to match.
2309 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_different_indices", 40) != 0)
2310 break;
2311 return 31; // "extract_vector_element_different_indices"
2312 case 41: // 2 strings to match.
2313 if (memcmp(RuleIdentifier.data()+0, "G_FM", 4) != 0)
2314 break;
2315 switch (RuleIdentifier[4]) {
2316 default: break;
2317 case 'A': // 1 string to match.
2318 if (memcmp(RuleIdentifier.data()+5, "XNUM_IEEE_commute_fp_constant_to_rhs", 36) != 0)
2319 break;
2320 return 275; // "G_FMAXNUM_IEEE_commute_fp_constant_to_rhs"
2321 case 'I': // 1 string to match.
2322 if (memcmp(RuleIdentifier.data()+5, "NNUM_IEEE_commute_fp_constant_to_rhs", 36) != 0)
2323 break;
2324 return 274; // "G_FMINNUM_IEEE_commute_fp_constant_to_rhs"
2325 }
2326 break;
2327 case 42: // 9 strings to match.
2328 switch (RuleIdentifier[0]) {
2329 default: break;
2330 case 'c': // 1 string to match.
2331 if (memcmp(RuleIdentifier.data()+1, "ombine_fadd_fpext_fma_fmul_to_fmad_or_fma", 41) != 0)
2332 break;
2333 return 228; // "combine_fadd_fpext_fma_fmul_to_fmad_or_fma"
2334 case 'e': // 7 strings to match.
2335 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_build_vector_trunc", 40) != 0)
2336 break;
2337 switch (RuleIdentifier[41]) {
2338 default: break;
2339 case '2': // 1 string to match.
2340 return 33; // "extract_vector_element_build_vector_trunc2"
2341 case '3': // 1 string to match.
2342 return 34; // "extract_vector_element_build_vector_trunc3"
2343 case '4': // 1 string to match.
2344 return 35; // "extract_vector_element_build_vector_trunc4"
2345 case '5': // 1 string to match.
2346 return 36; // "extract_vector_element_build_vector_trunc5"
2347 case '6': // 1 string to match.
2348 return 37; // "extract_vector_element_build_vector_trunc6"
2349 case '7': // 1 string to match.
2350 return 38; // "extract_vector_element_build_vector_trunc7"
2351 case '8': // 1 string to match.
2352 return 39; // "extract_vector_element_build_vector_trunc8"
2353 }
2354 break;
2355 case 'f': // 1 string to match.
2356 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_left", 41) != 0)
2357 break;
2358 return 200; // "funnel_shift_or_shift_to_funnel_shift_left"
2359 }
2360 break;
2361 case 43: // 2 strings to match.
2362 switch (RuleIdentifier[0]) {
2363 default: break;
2364 case 'c': // 1 string to match.
2365 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fpext_fneg_fmul_to_fmad_or_fma", 42) != 0)
2366 break;
2367 return 232; // "combine_fsub_fpext_fneg_fmul_to_fmad_or_fma"
2368 case 'f': // 1 string to match.
2369 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_right", 42) != 0)
2370 break;
2371 return 201; // "funnel_shift_or_shift_to_funnel_shift_right"
2372 }
2373 break;
2374 case 44: // 1 string to match.
2375 if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_extract_vector_element", 44) != 0)
2376 break;
2377 return 41; // "insert_vector_element_extract_vector_element"
2378 case 46: // 1 string to match.
2379 if (memcmp(RuleIdentifier.data()+0, "push_freeze_to_prevent_poison_from_propagating", 46) != 0)
2380 break;
2381 return 47; // "push_freeze_to_prevent_poison_from_propagating"
2382 }
2383#endif // ifndef NDEBUG
2384
2385 return std::nullopt;
2386}
2387static std::optional<std::pair<uint64_t, uint64_t>> getRuleRangeForIdentifier(StringRef RuleIdentifier) {
2388 std::pair<StringRef, StringRef> RangePair = RuleIdentifier.split(Separator: '-');
2389 if (!RangePair.second.empty()) {
2390 const auto First = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
2391 const auto Last = getRuleIdxForIdentifier(RuleIdentifier: RangePair.second);
2392 if (!First || !Last)
2393 return std::nullopt;
2394 if (First >= Last)
2395 report_fatal_error(reason: "Beginning of range should be before end of range");
2396 return {{*First, *Last + 1}};
2397 }
2398 if (RangePair.first == "*") {
2399 return {{0, 356}};
2400 }
2401 const auto I = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
2402 if (!I)
2403 return std::nullopt;
2404 return {{*I, *I + 1}};
2405}
2406
2407bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleEnabled(StringRef RuleIdentifier) {
2408 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
2409 if (!MaybeRange)
2410 return false;
2411 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
2412 DisabledRules.reset(Idx: I);
2413 return true;
2414}
2415
2416bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleDisabled(StringRef RuleIdentifier) {
2417 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
2418 if (!MaybeRange)
2419 return false;
2420 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
2421 DisabledRules.set(I);
2422 return true;
2423}
2424
2425static std::vector<std::string> AMDGPUPostLegalizerCombinerOption;
2426static cl::list<std::string> AMDGPUPostLegalizerCombinerDisableOption(
2427 "amdgpupostlegalizercombiner-disable-rule",
2428 cl::desc("Disable one or more combiner rules temporarily in the AMDGPUPostLegalizerCombiner pass"),
2429 cl::CommaSeparated,
2430 cl::Hidden,
2431 cl::cat(GICombinerOptionCategory),
2432 cl::callback(CB: [](const std::string &Str) {
2433 AMDGPUPostLegalizerCombinerOption.push_back(x: Str);
2434 }));
2435static cl::list<std::string> AMDGPUPostLegalizerCombinerOnlyEnableOption(
2436 "amdgpupostlegalizercombiner-only-enable-rule",
2437 cl::desc("Disable all rules in the AMDGPUPostLegalizerCombiner pass then re-enable the specified ones"),
2438 cl::Hidden,
2439 cl::cat(GICombinerOptionCategory),
2440 cl::callback(CB: [](const std::string &CommaSeparatedArg) {
2441 StringRef Str = CommaSeparatedArg;
2442 AMDGPUPostLegalizerCombinerOption.push_back(x: "*");
2443 do {
2444 auto X = Str.split(Separator: ",");
2445 AMDGPUPostLegalizerCombinerOption.push_back(x: ("!" + X.first).str());
2446 Str = X.second;
2447 } while (!Str.empty());
2448 }));
2449
2450
2451bool AMDGPUPostLegalizerCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
2452 return !DisabledRules.test(Idx: RuleID);
2453}
2454bool AMDGPUPostLegalizerCombinerImplRuleConfig::parseCommandLineOption() {
2455 for (StringRef Identifier : AMDGPUPostLegalizerCombinerOption) {
2456 bool Enabled = Identifier.consume_front(Prefix: "!");
2457 if (Enabled && !setRuleEnabled(Identifier))
2458 return false;
2459 if (!Enabled && !setRuleDisabled(Identifier))
2460 return false;
2461 }
2462 return true;
2463}
2464
2465
2466#endif // GET_GICOMBINER_TYPES
2467
2468#ifdef GET_GICOMBINER_TYPES
2469
2470const unsigned MAX_SUBTARGET_PREDICATES = 3;
2471using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
2472
2473#endif // GET_GICOMBINER_TYPES
2474
2475#ifdef GET_GICOMBINER_CLASS_MEMBERS
2476
2477 bool canMatchOpcode(unsigned Opc) const override;
2478 uint32_t getRootFlagsToDrop() const override;
2479
2480#endif // GET_GICOMBINER_CLASS_MEMBERS
2481
2482#ifdef GET_GICOMBINER_CLASS_MEMBERS
2483
2484PredicateBitset AvailableModuleFeatures;
2485mutable PredicateBitset AvailableFunctionFeatures;
2486PredicateBitset getAvailableFeatures() const {
2487 return AvailableModuleFeatures | AvailableFunctionFeatures;
2488}
2489PredicateBitset
2490computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const;
2491PredicateBitset
2492computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget,
2493 const MachineFunction *MF) const;
2494void setupGeneratedPerFunctionState(MachineFunction &MF) override;
2495
2496#endif // GET_GICOMBINER_CLASS_MEMBERS
2497
2498#ifdef GET_GICOMBINER_CLASS_MEMBERS
2499
2500 mutable MatcherState State;
2501 typedef ComplexRendererFns(AMDGPUPostLegalizerCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
2502 typedef void(AMDGPUPostLegalizerCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
2503 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
2504 static AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
2505 static AMDGPUPostLegalizerCombinerImpl::CustomRendererFn CustomRenderers[];
2506 bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
2507 bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
2508 bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
2509 const uint8_t *getMatchTable() const override;
2510 bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
2511 bool testMOPredicate_MO(unsigned PredicateID, const MachineOperand &MO, const MatcherState &State) const override;
2512 bool testSimplePredicate(unsigned PredicateID) const override;
2513 bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
2514
2515#endif // GET_GICOMBINER_CLASS_MEMBERS
2516
2517#ifdef GET_GICOMBINER_IMPL
2518
2519// LLT Objects.
2520enum {
2521 GILLT_i1,
2522 GILLT_i16,
2523 GILLT_i32,
2524 GILLT_i64,
2525 GILLT_f16,
2526 GILLT_bf16,
2527 GILLT_f32,
2528};
2529const static size_t NumTypeObjects = 7;
2530const static LLT TypeObjects[] = {
2531 LLT(LLT::Kind::INTEGER, ElementCount::getFixed(0), 1),
2532 LLT(LLT::Kind::INTEGER, ElementCount::getFixed(0), 16),
2533 LLT(LLT::Kind::INTEGER, ElementCount::getFixed(0), 32),
2534 LLT(LLT::Kind::INTEGER, ElementCount::getFixed(0), 64),
2535 LLT(LLT::Kind::FLOAT, ElementCount::getFixed(0), 16, LLT::FpSemantics::S_IEEEhalf),
2536 LLT(LLT::Kind::FLOAT, ElementCount::getFixed(0), 16, LLT::FpSemantics::S_BFloat),
2537 LLT(LLT::Kind::FLOAT, ElementCount::getFixed(0), 32, LLT::FpSemantics::S_IEEEsingle),
2538};
2539
2540// Bits for subtarget features that participate in instruction matching.
2541enum SubtargetFeatureBits : uint8_t {
2542 Feature_Has16BitInstsBit = 1,
2543 Feature_NotHasMed3_16Bit = 2,
2544 Feature_HasFminFmaxLegacyBit = 0,
2545};
2546
2547PredicateBitset AMDGPUPostLegalizerCombinerImpl::
2548computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const {
2549 PredicateBitset Features{};
2550 if (Subtarget->has16BitInsts())
2551 Features.set(Feature_Has16BitInstsBit);
2552 if (!Subtarget->hasMed3_16())
2553 Features.set(Feature_NotHasMed3_16Bit);
2554 if (Subtarget->hasFminFmaxLegacy())
2555 Features.set(Feature_HasFminFmaxLegacyBit);
2556 return Features;
2557}
2558
2559void AMDGPUPostLegalizerCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) {
2560 AvailableFunctionFeatures = computeAvailableFunctionFeatures((const AMDGPUSubtarget *)&MF.getSubtarget(), &MF);
2561}
2562PredicateBitset AMDGPUPostLegalizerCombinerImpl::
2563computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget, const MachineFunction *MF) const {
2564 PredicateBitset Features{};
2565 return Features;
2566}
2567
2568// Feature bitsets.
2569enum {
2570 GIFBS_Invalid,
2571 GIFBS_HasFminFmaxLegacy,
2572 GIFBS_Has16BitInsts_NotHasMed3_16,
2573};
2574constexpr static PredicateBitset FeatureBitsets[] {
2575 {}, // GIFBS_Invalid
2576 {Feature_HasFminFmaxLegacyBit, },
2577 {Feature_Has16BitInstsBit, Feature_NotHasMed3_16Bit, },
2578};
2579
2580// ComplexPattern predicates.
2581enum {
2582 GICP_Invalid,
2583};
2584// See constructor for table contents
2585
2586AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn
2587AMDGPUPostLegalizerCombinerImpl::ComplexPredicateFns[] = {
2588 nullptr, // GICP_Invalid
2589};
2590
2591enum {
2592 GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
2593 GICXXPred_MI_Predicate_GICombiner1,
2594 GICXXPred_MI_Predicate_GICombiner2,
2595 GICXXPred_MI_Predicate_GICombiner3,
2596 GICXXPred_MI_Predicate_GICombiner4,
2597 GICXXPred_MI_Predicate_GICombiner5,
2598 GICXXPred_MI_Predicate_GICombiner6,
2599 GICXXPred_MI_Predicate_GICombiner7,
2600 GICXXPred_MI_Predicate_GICombiner8,
2601 GICXXPred_MI_Predicate_GICombiner9,
2602 GICXXPred_MI_Predicate_GICombiner10,
2603 GICXXPred_MI_Predicate_GICombiner11,
2604 GICXXPred_MI_Predicate_GICombiner12,
2605 GICXXPred_MI_Predicate_GICombiner13,
2606 GICXXPred_MI_Predicate_GICombiner14,
2607 GICXXPred_MI_Predicate_GICombiner15,
2608 GICXXPred_MI_Predicate_GICombiner16,
2609 GICXXPred_MI_Predicate_GICombiner17,
2610 GICXXPred_MI_Predicate_GICombiner18,
2611 GICXXPred_MI_Predicate_GICombiner19,
2612 GICXXPred_MI_Predicate_GICombiner20,
2613 GICXXPred_MI_Predicate_GICombiner21,
2614 GICXXPred_MI_Predicate_GICombiner22,
2615 GICXXPred_MI_Predicate_GICombiner23,
2616 GICXXPred_MI_Predicate_GICombiner24,
2617 GICXXPred_MI_Predicate_GICombiner25,
2618 GICXXPred_MI_Predicate_GICombiner26,
2619 GICXXPred_MI_Predicate_GICombiner27,
2620 GICXXPred_MI_Predicate_GICombiner28,
2621 GICXXPred_MI_Predicate_GICombiner29,
2622 GICXXPred_MI_Predicate_GICombiner30,
2623 GICXXPred_MI_Predicate_GICombiner31,
2624 GICXXPred_MI_Predicate_GICombiner32,
2625 GICXXPred_MI_Predicate_GICombiner33,
2626 GICXXPred_MI_Predicate_GICombiner34,
2627 GICXXPred_MI_Predicate_GICombiner35,
2628 GICXXPred_MI_Predicate_GICombiner36,
2629 GICXXPred_MI_Predicate_GICombiner37,
2630 GICXXPred_MI_Predicate_GICombiner38,
2631 GICXXPred_MI_Predicate_GICombiner39,
2632 GICXXPred_MI_Predicate_GICombiner40,
2633 GICXXPred_MI_Predicate_GICombiner41,
2634 GICXXPred_MI_Predicate_GICombiner42,
2635 GICXXPred_MI_Predicate_GICombiner43,
2636 GICXXPred_MI_Predicate_GICombiner44,
2637 GICXXPred_MI_Predicate_GICombiner45,
2638 GICXXPred_MI_Predicate_GICombiner46,
2639 GICXXPred_MI_Predicate_GICombiner47,
2640 GICXXPred_MI_Predicate_GICombiner48,
2641 GICXXPred_MI_Predicate_GICombiner49,
2642 GICXXPred_MI_Predicate_GICombiner50,
2643 GICXXPred_MI_Predicate_GICombiner51,
2644 GICXXPred_MI_Predicate_GICombiner52,
2645 GICXXPred_MI_Predicate_GICombiner53,
2646 GICXXPred_MI_Predicate_GICombiner54,
2647 GICXXPred_MI_Predicate_GICombiner55,
2648 GICXXPred_MI_Predicate_GICombiner56,
2649 GICXXPred_MI_Predicate_GICombiner57,
2650 GICXXPred_MI_Predicate_GICombiner58,
2651 GICXXPred_MI_Predicate_GICombiner59,
2652 GICXXPred_MI_Predicate_GICombiner60,
2653 GICXXPred_MI_Predicate_GICombiner61,
2654 GICXXPred_MI_Predicate_GICombiner62,
2655 GICXXPred_MI_Predicate_GICombiner63,
2656 GICXXPred_MI_Predicate_GICombiner64,
2657 GICXXPred_MI_Predicate_GICombiner65,
2658 GICXXPred_MI_Predicate_GICombiner66,
2659 GICXXPred_MI_Predicate_GICombiner67,
2660 GICXXPred_MI_Predicate_GICombiner68,
2661};
2662bool AMDGPUPostLegalizerCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
2663 switch (PredicateID) {
2664 case GICXXPred_MI_Predicate_GICombiner0: {
2665 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg());
2666 }
2667 case GICXXPred_MI_Predicate_GICombiner1: {
2668 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg());
2669 }
2670 case GICXXPred_MI_Predicate_GICombiner2: {
2671 return MRI.getType(State.MIs[1]->getOperand(1).getReg()).getScalarSizeInBits() ==
2672 MRI.getType(State.MIs[0]->getOperand(0).getReg()).getScalarSizeInBits();
2673 }
2674 case GICXXPred_MI_Predicate_GICombiner3: {
2675 return isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI);
2676 }
2677 case GICXXPred_MI_Predicate_GICombiner4: {
2678 return Helper.matchExtractVectorElement(*State.MIs[0]);
2679 }
2680 case GICXXPred_MI_Predicate_GICombiner5: {
2681 return Helper.matchInsertVectorElementOOB(*State.MIs[0]);
2682 }
2683 case GICXXPred_MI_Predicate_GICombiner6: {
2684 return isGuaranteedNotToBeUndefOrPoison(State.MIs[0]->getOperand(1).getReg(), MRI);
2685 }
2686 case GICXXPred_MI_Predicate_GICombiner7: {
2687 return Helper.matchAllExplicitUsesAreUndef(*State.MIs[0]);
2688 }
2689 case GICXXPred_MI_Predicate_GICombiner8: {
2690 return Helper.matchUndefShuffleVectorMask(*State.MIs[0]);
2691 }
2692 case GICXXPred_MI_Predicate_GICombiner9: {
2693 return cast<GStore>(State.MIs[0])->isUnordered();
2694 }
2695 case GICXXPred_MI_Predicate_GICombiner10: {
2696 return Helper.matchInsertExtractVecEltOutOfBounds(*State.MIs[0]);
2697 }
2698 case GICXXPred_MI_Predicate_GICombiner11: {
2699 return Helper.matchSelectSameVal(*State.MIs[0]);
2700 }
2701 case GICXXPred_MI_Predicate_GICombiner12: {
2702 return Helper.matchConstantOp(State.MIs[0]->getOperand(1), 0);
2703 }
2704 case GICXXPred_MI_Predicate_GICombiner13: {
2705 return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());
2706 }
2707 case GICXXPred_MI_Predicate_GICombiner14: {
2708 return MRI.getType(State.MIs[0]->getOperand(0).getReg()).getSizeInBits() ==
2709 MRI.getType(State.MIs[1]->getOperand(1).getReg()).getSizeInBits();
2710 }
2711 case GICXXPred_MI_Predicate_GICombiner15: {
2712 return MRI.getType(State.MIs[0]->getOperand(0).getReg()).getSizeInBits() >
2713 MRI.getType(State.MIs[1]->getOperand(1).getReg()).getSizeInBits();
2714 }
2715 case GICXXPred_MI_Predicate_GICombiner16: {
2716 return MRI.getType(State.MIs[0]->getOperand(0).getReg()).getSizeInBits() <
2717 MRI.getType(State.MIs[1]->getOperand(1).getReg()).getSizeInBits();
2718 }
2719 case GICXXPred_MI_Predicate_GICombiner17: {
2720 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
2721 }
2722 case GICXXPred_MI_Predicate_GICombiner18: {
2723 return MRI.getType(State.MIs[1]->getOperand(1).getReg()) != MRI.getType(State.MIs[0]->getOperand(0).getReg());
2724 }
2725 case GICXXPred_MI_Predicate_GICombiner19: {
2726 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
2727 }
2728 case GICXXPred_MI_Predicate_GICombiner20: {
2729 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 0.0);
2730 }
2731 case GICXXPred_MI_Predicate_GICombiner21: {
2732 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0);
2733 }
2734 case GICXXPred_MI_Predicate_GICombiner22: {
2735 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_EQ &&
2736 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
2737 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
2738 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
2739 }
2740 case GICXXPred_MI_Predicate_GICombiner23: {
2741 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_NE &&
2742 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
2743 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
2744 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
2745 }
2746 case GICXXPred_MI_Predicate_GICombiner24: {
2747 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
2748 Helper.isLegalOrBeforeLegalizer({
2749 TargetOpcode::G_SEXT_INREG,
2750 {MRI.getType(State.MIs[1]->getOperand(1).getReg())},
2751 {},
2752 {1}
2753 });
2754 }
2755 case GICXXPred_MI_Predicate_GICombiner25: {
2756 auto C = isConstantOrConstantSplatVector(State.MIs[0]->getOperand(1).getReg(), MRI);
2757 return C && C->isZero();
2758 llvm_unreachable("GICombiner25 should have returned");
2759 }
2760 case GICXXPred_MI_Predicate_GICombiner26: {
2761 auto C = isConstantOrConstantSplatVector(State.MIs[0]->getOperand(1).getReg(), MRI);
2762 return C && !C->isZero();
2763 llvm_unreachable("GICombiner26 should have returned");
2764 }
2765 case GICXXPred_MI_Predicate_GICombiner27: {
2766 return !isConstantOrConstantSplatVector(State.MIs[0]->getOperand(1).getReg(), MRI) &&
2767 MRI.getType(State.MIs[0]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg()) &&
2768 VT->computeNumSignBits(State.MIs[0]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg()).getScalarSizeInBits();
2769 }
2770 case GICXXPred_MI_Predicate_GICombiner28: {
2771 return Helper.matchRedundantSExtInReg(*State.MIs[0]);
2772 }
2773 case GICXXPred_MI_Predicate_GICombiner29: {
2774 LLT SrcTy = MRI.getType(State.MIs[1]->getOperand(1).getReg());
2775 return State.MIs[0]->getOperand(2).getImm() <= SrcTy.getScalarSizeInBits() &&
2776 VT->computeNumSignBits(State.MIs[1]->getOperand(1).getReg()) >=
2777 (SrcTy.getScalarSizeInBits() - State.MIs[0]->getOperand(2).getImm() + 1);
2778 llvm_unreachable("GICombiner29 should have returned");
2779 }
2780 case GICXXPred_MI_Predicate_GICombiner30: {
2781 return Helper.matchConstantOp(State.MIs[0]->getOperand(3), 2);
2782 }
2783 case GICXXPred_MI_Predicate_GICombiner31: {
2784 return Helper.matchConstantOp(State.MIs[0]->getOperand(4), 0);
2785 }
2786 case GICXXPred_MI_Predicate_GICombiner32: {
2787 return Helper.isConstantNaN(State.MIs[0]->getOperand(1).getReg());
2788 }
2789 case GICXXPred_MI_Predicate_GICombiner33: {
2790 return Helper.isConstantNaN(State.MIs[0]->getOperand(2).getReg()) &&
2791 !Helper.isConstantNaN(State.MIs[0]->getOperand(1).getReg());
2792 }
2793 case GICXXPred_MI_Predicate_GICombiner34: {
2794 LLT Ty = MRI.getType(State.MIs[0]->getOperand(0).getReg());
2795 return Ty.isPointer() &&
2796 !isConstantOrConstantSplatVector(State.MIs[0]->getOperand(2).getReg(), MRI) &&
2797 !State.MIs[0]->getMF()->getDataLayout().isNonIntegralAddressSpace(
2798 Ty.getAddressSpace());
2799 llvm_unreachable("GICombiner34 should have returned");
2800 }
2801 case GICXXPred_MI_Predicate_GICombiner35: {
2802 return Helper.matchPtrAddZeroVector(*State.MIs[0]);
2803 }
2804 case GICXXPred_MI_Predicate_GICombiner36: {
2805 return Helper.isLegalOrBeforeLegalizer(
2806 {TargetOpcode::G_ROTL,
2807 {MRI.getType(State.MIs[0]->getOperand(1).getReg()),
2808 MRI.getType(State.MIs[0]->getOperand(1).getReg())}});
2809 }
2810 case GICXXPred_MI_Predicate_GICombiner37: {
2811 return Helper.isLegalOrBeforeLegalizer(
2812 {TargetOpcode::G_ROTR,
2813 {MRI.getType(State.MIs[0]->getOperand(1).getReg()),
2814 MRI.getType(State.MIs[0]->getOperand(1).getReg())}});
2815 }
2816 case GICXXPred_MI_Predicate_GICombiner38: {
2817 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_LSHR,
2818 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
2819 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
2820 }
2821 case GICXXPred_MI_Predicate_GICombiner39: {
2822 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_SHL,
2823 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
2824 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
2825 }
2826 case GICXXPred_MI_Predicate_GICombiner40: {
2827 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
2828 isConstantOrConstantSplatVector(State.MIs[1]->getOperand(2).getReg(), MRI) &&
2829 isConstantOrConstantSplatVector(State.MIs[0]->getOperand(2).getReg(), MRI) &&
2830 Helper.isDesirableToCommuteWithShift(*State.MIs[0]);
2831 }
2832 case GICXXPred_MI_Predicate_GICombiner41: {
2833 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_FSUB,
2834 {MRI.getType(State.MIs[0]->getOperand(0).getReg())}});
2835 }
2836 case GICXXPred_MI_Predicate_GICombiner42: {
2837 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_FADD,
2838 {MRI.getType(State.MIs[0]->getOperand(0).getReg())}});
2839 }
2840 case GICXXPred_MI_Predicate_GICombiner43: {
2841 return Helper.matchSameRegOrICstOrSplat(State.MIs[1]->getOperand(2).getReg(),
2842 State.MIs[0]->getOperand(2).getReg());
2843 }
2844 case GICXXPred_MI_Predicate_GICombiner44: {
2845 return Helper.matchSameRegOrICstOrSplat(State.MIs[1]->getOperand(1).getReg(),
2846 State.MIs[0]->getOperand(2).getReg());
2847 }
2848 case GICXXPred_MI_Predicate_GICombiner45: {
2849 return Helper.matchSameRegOrICstOrSplat(State.MIs[0]->getOperand(1).getReg(),
2850 State.MIs[1]->getOperand(2).getReg());
2851 }
2852 case GICXXPred_MI_Predicate_GICombiner46: {
2853 return Helper.matchSameRegOrICstOrSplat(State.MIs[0]->getOperand(1).getReg(),
2854 State.MIs[1]->getOperand(1).getReg());
2855 }
2856 case GICXXPred_MI_Predicate_GICombiner47: {
2857 return Helper.matchFsubToFneg(*State.MIs[0]);
2858 }
2859 case GICXXPred_MI_Predicate_GICombiner48: {
2860 return Helper.matchCommuteConstantToRHS(*State.MIs[0]);
2861 }
2862 case GICXXPred_MI_Predicate_GICombiner49: {
2863 return Helper.matchCommuteFPConstantToRHS(*State.MIs[0]);
2864 }
2865 case GICXXPred_MI_Predicate_GICombiner50: {
2866 return Helper.isLegalOrBeforeLegalizer(
2867 {TargetOpcode::G_ANYEXT,
2868 {MRI.getType(State.MIs[0]->getOperand(0).getReg()),
2869 MRI.getType(State.MIs[0]->getOperand(1).getReg())}});
2870 }
2871 case GICXXPred_MI_Predicate_GICombiner51: {
2872 return Helper.isLegalOrBeforeLegalizer(
2873 {TargetOpcode::G_ZEXT,
2874 {MRI.getType(State.MIs[0]->getOperand(0).getReg()),
2875 MRI.getType(State.MIs[0]->getOperand(1).getReg())}});
2876 }
2877 case GICXXPred_MI_Predicate_GICombiner52: {
2878 return MRI.use_nodbg_empty(State.MIs[0]->getOperand(1).getReg()) &&
2879 Helper.isLegalOrBeforeLegalizer(
2880 {TargetOpcode::G_ADD,
2881 {MRI.getType(State.MIs[0]->getOperand(0).getReg())}});
2882 }
2883 case GICXXPred_MI_Predicate_GICombiner53: {
2884 return Helper.matchTruncUSatU(*State.MIs[0], *State.MIs[1]);
2885 }
2886 case GICXXPred_MI_Predicate_GICombiner54: {
2887 return Helper.matchTruncUSatUToFPTOUISat(*State.MIs[0], *State.MIs[1]);
2888 }
2889 case GICXXPred_MI_Predicate_GICombiner55: {
2890 return Helper.matchCountZeroToZeroPoison(*State.MIs[0],
2891 TargetOpcode::G_CTLZ, TargetOpcode::G_CTLZ_ZERO_POISON);
2892 }
2893 case GICXXPred_MI_Predicate_GICombiner56: {
2894 return Helper.matchCountZeroToZeroPoison(*State.MIs[0],
2895 TargetOpcode::G_CTTZ, TargetOpcode::G_CTTZ_ZERO_POISON);
2896 }
2897 case GICXXPred_MI_Predicate_GICombiner57: {
2898 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
2899 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
2900 }
2901 case GICXXPred_MI_Predicate_GICombiner58: {
2902 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
2903 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
2904 }
2905 case GICXXPred_MI_Predicate_GICombiner59: {
2906 return MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(2).getReg()) &&
2907 MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg());
2908 }
2909 case GICXXPred_MI_Predicate_GICombiner60: {
2910 return MRI.getType(State.MIs[2]->getOperand(1).getReg()) ==
2911 MRI.getType(State.MIs[3]->getOperand(1).getReg()) &&
2912 Helper.isLegal({TargetOpcode::G_UAVGFLOOR,
2913 {MRI.getType(State.MIs[2]->getOperand(1).getReg())}});
2914 }
2915 case GICXXPred_MI_Predicate_GICombiner61: {
2916 return MRI.getType(State.MIs[2]->getOperand(1).getReg()) ==
2917 MRI.getType(State.MIs[3]->getOperand(1).getReg()) &&
2918 Helper.isLegal({TargetOpcode::G_SAVGFLOOR,
2919 {MRI.getType(State.MIs[2]->getOperand(1).getReg())}});
2920 }
2921 case GICXXPred_MI_Predicate_GICombiner62: {
2922 return MRI.getType(State.MIs[3]->getOperand(1).getReg()) ==
2923 MRI.getType(State.MIs[4]->getOperand(1).getReg()) &&
2924 Helper.isLegal({TargetOpcode::G_UAVGCEIL,
2925 {MRI.getType(State.MIs[3]->getOperand(1).getReg())}});
2926 }
2927 case GICXXPred_MI_Predicate_GICombiner63: {
2928 return MRI.getType(State.MIs[3]->getOperand(1).getReg()) ==
2929 MRI.getType(State.MIs[4]->getOperand(1).getReg()) &&
2930 Helper.isLegal({TargetOpcode::G_SAVGCEIL,
2931 {MRI.getType(State.MIs[3]->getOperand(1).getReg())}});
2932 }
2933 case GICXXPred_MI_Predicate_GICombiner64: {
2934 return matchRemoveFcanonicalize(*State.MIs[0]);
2935 }
2936 case GICXXPred_MI_Predicate_GICombiner65: {
2937 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
2938 Helper.isLegalOrBeforeLegalizer(
2939 {TargetOpcode::G_UNMERGE_VALUES,
2940 {LLT::integer(16), LLT::integer(32)}});
2941 }
2942 case GICXXPred_MI_Predicate_GICombiner66: {
2943 return Helper.matchBinopWith32BitMask(State.MIs[0]->getOperand(1).getReg(), State.MIs[0]->getOperand(2).getReg());
2944 }
2945 case GICXXPred_MI_Predicate_GICombiner67: {
2946 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
2947 isCarryOut(State.MIs[1]->getOperand(1).getReg()) ;
2948 }
2949 case GICXXPred_MI_Predicate_GICombiner68: {
2950 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
2951 isCarryOut(State.MIs[1]->getOperand(1).getReg()) && shouldFoldCarryIntoAdd(State.MIs[0]->getOperand(2).getReg()) ;
2952 }
2953 }
2954 llvm_unreachable("Unknown predicate");
2955 return false;
2956}
2957bool AMDGPUPostLegalizerCombinerImpl::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
2958 llvm_unreachable("Unknown predicate");
2959 return false;
2960}
2961bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
2962 llvm_unreachable("Unknown predicate");
2963 return false;
2964}
2965bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
2966 llvm_unreachable("Unknown predicate");
2967 return false;
2968}
2969bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
2970 llvm_unreachable("Unknown predicate");
2971 return false;
2972}
2973enum {
2974 GICXXPred_Simple_IsRule0Enabled = GICXXPred_Invalid + 1,
2975 GICXXPred_Simple_IsRule1Enabled,
2976 GICXXPred_Simple_IsRule2Enabled,
2977 GICXXPred_Simple_IsRule3Enabled,
2978 GICXXPred_Simple_IsRule4Enabled,
2979 GICXXPred_Simple_IsRule5Enabled,
2980 GICXXPred_Simple_IsRule6Enabled,
2981 GICXXPred_Simple_IsRule7Enabled,
2982 GICXXPred_Simple_IsRule8Enabled,
2983 GICXXPred_Simple_IsRule9Enabled,
2984 GICXXPred_Simple_IsRule10Enabled,
2985 GICXXPred_Simple_IsRule11Enabled,
2986 GICXXPred_Simple_IsRule12Enabled,
2987 GICXXPred_Simple_IsRule13Enabled,
2988 GICXXPred_Simple_IsRule14Enabled,
2989 GICXXPred_Simple_IsRule15Enabled,
2990 GICXXPred_Simple_IsRule16Enabled,
2991 GICXXPred_Simple_IsRule17Enabled,
2992 GICXXPred_Simple_IsRule18Enabled,
2993 GICXXPred_Simple_IsRule19Enabled,
2994 GICXXPred_Simple_IsRule20Enabled,
2995 GICXXPred_Simple_IsRule21Enabled,
2996 GICXXPred_Simple_IsRule22Enabled,
2997 GICXXPred_Simple_IsRule23Enabled,
2998 GICXXPred_Simple_IsRule24Enabled,
2999 GICXXPred_Simple_IsRule25Enabled,
3000 GICXXPred_Simple_IsRule26Enabled,
3001 GICXXPred_Simple_IsRule27Enabled,
3002 GICXXPred_Simple_IsRule28Enabled,
3003 GICXXPred_Simple_IsRule29Enabled,
3004 GICXXPred_Simple_IsRule30Enabled,
3005 GICXXPred_Simple_IsRule31Enabled,
3006 GICXXPred_Simple_IsRule32Enabled,
3007 GICXXPred_Simple_IsRule33Enabled,
3008 GICXXPred_Simple_IsRule34Enabled,
3009 GICXXPred_Simple_IsRule35Enabled,
3010 GICXXPred_Simple_IsRule36Enabled,
3011 GICXXPred_Simple_IsRule37Enabled,
3012 GICXXPred_Simple_IsRule38Enabled,
3013 GICXXPred_Simple_IsRule39Enabled,
3014 GICXXPred_Simple_IsRule40Enabled,
3015 GICXXPred_Simple_IsRule41Enabled,
3016 GICXXPred_Simple_IsRule42Enabled,
3017 GICXXPred_Simple_IsRule43Enabled,
3018 GICXXPred_Simple_IsRule44Enabled,
3019 GICXXPred_Simple_IsRule45Enabled,
3020 GICXXPred_Simple_IsRule46Enabled,
3021 GICXXPred_Simple_IsRule47Enabled,
3022 GICXXPred_Simple_IsRule48Enabled,
3023 GICXXPred_Simple_IsRule49Enabled,
3024 GICXXPred_Simple_IsRule50Enabled,
3025 GICXXPred_Simple_IsRule51Enabled,
3026 GICXXPred_Simple_IsRule52Enabled,
3027 GICXXPred_Simple_IsRule53Enabled,
3028 GICXXPred_Simple_IsRule54Enabled,
3029 GICXXPred_Simple_IsRule55Enabled,
3030 GICXXPred_Simple_IsRule56Enabled,
3031 GICXXPred_Simple_IsRule57Enabled,
3032 GICXXPred_Simple_IsRule58Enabled,
3033 GICXXPred_Simple_IsRule59Enabled,
3034 GICXXPred_Simple_IsRule60Enabled,
3035 GICXXPred_Simple_IsRule61Enabled,
3036 GICXXPred_Simple_IsRule62Enabled,
3037 GICXXPred_Simple_IsRule63Enabled,
3038 GICXXPred_Simple_IsRule64Enabled,
3039 GICXXPred_Simple_IsRule65Enabled,
3040 GICXXPred_Simple_IsRule66Enabled,
3041 GICXXPred_Simple_IsRule67Enabled,
3042 GICXXPred_Simple_IsRule68Enabled,
3043 GICXXPred_Simple_IsRule69Enabled,
3044 GICXXPred_Simple_IsRule70Enabled,
3045 GICXXPred_Simple_IsRule71Enabled,
3046 GICXXPred_Simple_IsRule72Enabled,
3047 GICXXPred_Simple_IsRule73Enabled,
3048 GICXXPred_Simple_IsRule74Enabled,
3049 GICXXPred_Simple_IsRule75Enabled,
3050 GICXXPred_Simple_IsRule76Enabled,
3051 GICXXPred_Simple_IsRule77Enabled,
3052 GICXXPred_Simple_IsRule78Enabled,
3053 GICXXPred_Simple_IsRule79Enabled,
3054 GICXXPred_Simple_IsRule80Enabled,
3055 GICXXPred_Simple_IsRule81Enabled,
3056 GICXXPred_Simple_IsRule82Enabled,
3057 GICXXPred_Simple_IsRule83Enabled,
3058 GICXXPred_Simple_IsRule84Enabled,
3059 GICXXPred_Simple_IsRule85Enabled,
3060 GICXXPred_Simple_IsRule86Enabled,
3061 GICXXPred_Simple_IsRule87Enabled,
3062 GICXXPred_Simple_IsRule88Enabled,
3063 GICXXPred_Simple_IsRule89Enabled,
3064 GICXXPred_Simple_IsRule90Enabled,
3065 GICXXPred_Simple_IsRule91Enabled,
3066 GICXXPred_Simple_IsRule92Enabled,
3067 GICXXPred_Simple_IsRule93Enabled,
3068 GICXXPred_Simple_IsRule94Enabled,
3069 GICXXPred_Simple_IsRule95Enabled,
3070 GICXXPred_Simple_IsRule96Enabled,
3071 GICXXPred_Simple_IsRule97Enabled,
3072 GICXXPred_Simple_IsRule98Enabled,
3073 GICXXPred_Simple_IsRule99Enabled,
3074 GICXXPred_Simple_IsRule100Enabled,
3075 GICXXPred_Simple_IsRule101Enabled,
3076 GICXXPred_Simple_IsRule102Enabled,
3077 GICXXPred_Simple_IsRule103Enabled,
3078 GICXXPred_Simple_IsRule104Enabled,
3079 GICXXPred_Simple_IsRule105Enabled,
3080 GICXXPred_Simple_IsRule106Enabled,
3081 GICXXPred_Simple_IsRule107Enabled,
3082 GICXXPred_Simple_IsRule108Enabled,
3083 GICXXPred_Simple_IsRule109Enabled,
3084 GICXXPred_Simple_IsRule110Enabled,
3085 GICXXPred_Simple_IsRule111Enabled,
3086 GICXXPred_Simple_IsRule112Enabled,
3087 GICXXPred_Simple_IsRule113Enabled,
3088 GICXXPred_Simple_IsRule114Enabled,
3089 GICXXPred_Simple_IsRule115Enabled,
3090 GICXXPred_Simple_IsRule116Enabled,
3091 GICXXPred_Simple_IsRule117Enabled,
3092 GICXXPred_Simple_IsRule118Enabled,
3093 GICXXPred_Simple_IsRule119Enabled,
3094 GICXXPred_Simple_IsRule120Enabled,
3095 GICXXPred_Simple_IsRule121Enabled,
3096 GICXXPred_Simple_IsRule122Enabled,
3097 GICXXPred_Simple_IsRule123Enabled,
3098 GICXXPred_Simple_IsRule124Enabled,
3099 GICXXPred_Simple_IsRule125Enabled,
3100 GICXXPred_Simple_IsRule126Enabled,
3101 GICXXPred_Simple_IsRule127Enabled,
3102 GICXXPred_Simple_IsRule128Enabled,
3103 GICXXPred_Simple_IsRule129Enabled,
3104 GICXXPred_Simple_IsRule130Enabled,
3105 GICXXPred_Simple_IsRule131Enabled,
3106 GICXXPred_Simple_IsRule132Enabled,
3107 GICXXPred_Simple_IsRule133Enabled,
3108 GICXXPred_Simple_IsRule134Enabled,
3109 GICXXPred_Simple_IsRule135Enabled,
3110 GICXXPred_Simple_IsRule136Enabled,
3111 GICXXPred_Simple_IsRule137Enabled,
3112 GICXXPred_Simple_IsRule138Enabled,
3113 GICXXPred_Simple_IsRule139Enabled,
3114 GICXXPred_Simple_IsRule140Enabled,
3115 GICXXPred_Simple_IsRule141Enabled,
3116 GICXXPred_Simple_IsRule142Enabled,
3117 GICXXPred_Simple_IsRule143Enabled,
3118 GICXXPred_Simple_IsRule144Enabled,
3119 GICXXPred_Simple_IsRule145Enabled,
3120 GICXXPred_Simple_IsRule146Enabled,
3121 GICXXPred_Simple_IsRule147Enabled,
3122 GICXXPred_Simple_IsRule148Enabled,
3123 GICXXPred_Simple_IsRule149Enabled,
3124 GICXXPred_Simple_IsRule150Enabled,
3125 GICXXPred_Simple_IsRule151Enabled,
3126 GICXXPred_Simple_IsRule152Enabled,
3127 GICXXPred_Simple_IsRule153Enabled,
3128 GICXXPred_Simple_IsRule154Enabled,
3129 GICXXPred_Simple_IsRule155Enabled,
3130 GICXXPred_Simple_IsRule156Enabled,
3131 GICXXPred_Simple_IsRule157Enabled,
3132 GICXXPred_Simple_IsRule158Enabled,
3133 GICXXPred_Simple_IsRule159Enabled,
3134 GICXXPred_Simple_IsRule160Enabled,
3135 GICXXPred_Simple_IsRule161Enabled,
3136 GICXXPred_Simple_IsRule162Enabled,
3137 GICXXPred_Simple_IsRule163Enabled,
3138 GICXXPred_Simple_IsRule164Enabled,
3139 GICXXPred_Simple_IsRule165Enabled,
3140 GICXXPred_Simple_IsRule166Enabled,
3141 GICXXPred_Simple_IsRule167Enabled,
3142 GICXXPred_Simple_IsRule168Enabled,
3143 GICXXPred_Simple_IsRule169Enabled,
3144 GICXXPred_Simple_IsRule170Enabled,
3145 GICXXPred_Simple_IsRule171Enabled,
3146 GICXXPred_Simple_IsRule172Enabled,
3147 GICXXPred_Simple_IsRule173Enabled,
3148 GICXXPred_Simple_IsRule174Enabled,
3149 GICXXPred_Simple_IsRule175Enabled,
3150 GICXXPred_Simple_IsRule176Enabled,
3151 GICXXPred_Simple_IsRule177Enabled,
3152 GICXXPred_Simple_IsRule178Enabled,
3153 GICXXPred_Simple_IsRule179Enabled,
3154 GICXXPred_Simple_IsRule180Enabled,
3155 GICXXPred_Simple_IsRule181Enabled,
3156 GICXXPred_Simple_IsRule182Enabled,
3157 GICXXPred_Simple_IsRule183Enabled,
3158 GICXXPred_Simple_IsRule184Enabled,
3159 GICXXPred_Simple_IsRule185Enabled,
3160 GICXXPred_Simple_IsRule186Enabled,
3161 GICXXPred_Simple_IsRule187Enabled,
3162 GICXXPred_Simple_IsRule188Enabled,
3163 GICXXPred_Simple_IsRule189Enabled,
3164 GICXXPred_Simple_IsRule190Enabled,
3165 GICXXPred_Simple_IsRule191Enabled,
3166 GICXXPred_Simple_IsRule192Enabled,
3167 GICXXPred_Simple_IsRule193Enabled,
3168 GICXXPred_Simple_IsRule194Enabled,
3169 GICXXPred_Simple_IsRule195Enabled,
3170 GICXXPred_Simple_IsRule196Enabled,
3171 GICXXPred_Simple_IsRule197Enabled,
3172 GICXXPred_Simple_IsRule198Enabled,
3173 GICXXPred_Simple_IsRule199Enabled,
3174 GICXXPred_Simple_IsRule200Enabled,
3175 GICXXPred_Simple_IsRule201Enabled,
3176 GICXXPred_Simple_IsRule202Enabled,
3177 GICXXPred_Simple_IsRule203Enabled,
3178 GICXXPred_Simple_IsRule204Enabled,
3179 GICXXPred_Simple_IsRule205Enabled,
3180 GICXXPred_Simple_IsRule206Enabled,
3181 GICXXPred_Simple_IsRule207Enabled,
3182 GICXXPred_Simple_IsRule208Enabled,
3183 GICXXPred_Simple_IsRule209Enabled,
3184 GICXXPred_Simple_IsRule210Enabled,
3185 GICXXPred_Simple_IsRule211Enabled,
3186 GICXXPred_Simple_IsRule212Enabled,
3187 GICXXPred_Simple_IsRule213Enabled,
3188 GICXXPred_Simple_IsRule214Enabled,
3189 GICXXPred_Simple_IsRule215Enabled,
3190 GICXXPred_Simple_IsRule216Enabled,
3191 GICXXPred_Simple_IsRule217Enabled,
3192 GICXXPred_Simple_IsRule218Enabled,
3193 GICXXPred_Simple_IsRule219Enabled,
3194 GICXXPred_Simple_IsRule220Enabled,
3195 GICXXPred_Simple_IsRule221Enabled,
3196 GICXXPred_Simple_IsRule222Enabled,
3197 GICXXPred_Simple_IsRule223Enabled,
3198 GICXXPred_Simple_IsRule224Enabled,
3199 GICXXPred_Simple_IsRule225Enabled,
3200 GICXXPred_Simple_IsRule226Enabled,
3201 GICXXPred_Simple_IsRule227Enabled,
3202 GICXXPred_Simple_IsRule228Enabled,
3203 GICXXPred_Simple_IsRule229Enabled,
3204 GICXXPred_Simple_IsRule230Enabled,
3205 GICXXPred_Simple_IsRule231Enabled,
3206 GICXXPred_Simple_IsRule232Enabled,
3207 GICXXPred_Simple_IsRule233Enabled,
3208 GICXXPred_Simple_IsRule234Enabled,
3209 GICXXPred_Simple_IsRule235Enabled,
3210 GICXXPred_Simple_IsRule236Enabled,
3211 GICXXPred_Simple_IsRule237Enabled,
3212 GICXXPred_Simple_IsRule238Enabled,
3213 GICXXPred_Simple_IsRule239Enabled,
3214 GICXXPred_Simple_IsRule240Enabled,
3215 GICXXPred_Simple_IsRule241Enabled,
3216 GICXXPred_Simple_IsRule242Enabled,
3217 GICXXPred_Simple_IsRule243Enabled,
3218 GICXXPred_Simple_IsRule244Enabled,
3219 GICXXPred_Simple_IsRule245Enabled,
3220 GICXXPred_Simple_IsRule246Enabled,
3221 GICXXPred_Simple_IsRule247Enabled,
3222 GICXXPred_Simple_IsRule248Enabled,
3223 GICXXPred_Simple_IsRule249Enabled,
3224 GICXXPred_Simple_IsRule250Enabled,
3225 GICXXPred_Simple_IsRule251Enabled,
3226 GICXXPred_Simple_IsRule252Enabled,
3227 GICXXPred_Simple_IsRule253Enabled,
3228 GICXXPred_Simple_IsRule254Enabled,
3229 GICXXPred_Simple_IsRule255Enabled,
3230 GICXXPred_Simple_IsRule256Enabled,
3231 GICXXPred_Simple_IsRule257Enabled,
3232 GICXXPred_Simple_IsRule258Enabled,
3233 GICXXPred_Simple_IsRule259Enabled,
3234 GICXXPred_Simple_IsRule260Enabled,
3235 GICXXPred_Simple_IsRule261Enabled,
3236 GICXXPred_Simple_IsRule262Enabled,
3237 GICXXPred_Simple_IsRule263Enabled,
3238 GICXXPred_Simple_IsRule264Enabled,
3239 GICXXPred_Simple_IsRule265Enabled,
3240 GICXXPred_Simple_IsRule266Enabled,
3241 GICXXPred_Simple_IsRule267Enabled,
3242 GICXXPred_Simple_IsRule268Enabled,
3243 GICXXPred_Simple_IsRule269Enabled,
3244 GICXXPred_Simple_IsRule270Enabled,
3245 GICXXPred_Simple_IsRule271Enabled,
3246 GICXXPred_Simple_IsRule272Enabled,
3247 GICXXPred_Simple_IsRule273Enabled,
3248 GICXXPred_Simple_IsRule274Enabled,
3249 GICXXPred_Simple_IsRule275Enabled,
3250 GICXXPred_Simple_IsRule276Enabled,
3251 GICXXPred_Simple_IsRule277Enabled,
3252 GICXXPred_Simple_IsRule278Enabled,
3253 GICXXPred_Simple_IsRule279Enabled,
3254 GICXXPred_Simple_IsRule280Enabled,
3255 GICXXPred_Simple_IsRule281Enabled,
3256 GICXXPred_Simple_IsRule282Enabled,
3257 GICXXPred_Simple_IsRule283Enabled,
3258 GICXXPred_Simple_IsRule284Enabled,
3259 GICXXPred_Simple_IsRule285Enabled,
3260 GICXXPred_Simple_IsRule286Enabled,
3261 GICXXPred_Simple_IsRule287Enabled,
3262 GICXXPred_Simple_IsRule288Enabled,
3263 GICXXPred_Simple_IsRule289Enabled,
3264 GICXXPred_Simple_IsRule290Enabled,
3265 GICXXPred_Simple_IsRule291Enabled,
3266 GICXXPred_Simple_IsRule292Enabled,
3267 GICXXPred_Simple_IsRule293Enabled,
3268 GICXXPred_Simple_IsRule294Enabled,
3269 GICXXPred_Simple_IsRule295Enabled,
3270 GICXXPred_Simple_IsRule296Enabled,
3271 GICXXPred_Simple_IsRule297Enabled,
3272 GICXXPred_Simple_IsRule298Enabled,
3273 GICXXPred_Simple_IsRule299Enabled,
3274 GICXXPred_Simple_IsRule300Enabled,
3275 GICXXPred_Simple_IsRule301Enabled,
3276 GICXXPred_Simple_IsRule302Enabled,
3277 GICXXPred_Simple_IsRule303Enabled,
3278 GICXXPred_Simple_IsRule304Enabled,
3279 GICXXPred_Simple_IsRule305Enabled,
3280 GICXXPred_Simple_IsRule306Enabled,
3281 GICXXPred_Simple_IsRule307Enabled,
3282 GICXXPred_Simple_IsRule308Enabled,
3283 GICXXPred_Simple_IsRule309Enabled,
3284 GICXXPred_Simple_IsRule310Enabled,
3285 GICXXPred_Simple_IsRule311Enabled,
3286 GICXXPred_Simple_IsRule312Enabled,
3287 GICXXPred_Simple_IsRule313Enabled,
3288 GICXXPred_Simple_IsRule314Enabled,
3289 GICXXPred_Simple_IsRule315Enabled,
3290 GICXXPred_Simple_IsRule316Enabled,
3291 GICXXPred_Simple_IsRule317Enabled,
3292 GICXXPred_Simple_IsRule318Enabled,
3293 GICXXPred_Simple_IsRule319Enabled,
3294 GICXXPred_Simple_IsRule320Enabled,
3295 GICXXPred_Simple_IsRule321Enabled,
3296 GICXXPred_Simple_IsRule322Enabled,
3297 GICXXPred_Simple_IsRule323Enabled,
3298 GICXXPred_Simple_IsRule324Enabled,
3299 GICXXPred_Simple_IsRule325Enabled,
3300 GICXXPred_Simple_IsRule326Enabled,
3301 GICXXPred_Simple_IsRule327Enabled,
3302 GICXXPred_Simple_IsRule328Enabled,
3303 GICXXPred_Simple_IsRule329Enabled,
3304 GICXXPred_Simple_IsRule330Enabled,
3305 GICXXPred_Simple_IsRule331Enabled,
3306 GICXXPred_Simple_IsRule332Enabled,
3307 GICXXPred_Simple_IsRule333Enabled,
3308 GICXXPred_Simple_IsRule334Enabled,
3309 GICXXPred_Simple_IsRule335Enabled,
3310 GICXXPred_Simple_IsRule336Enabled,
3311 GICXXPred_Simple_IsRule337Enabled,
3312 GICXXPred_Simple_IsRule338Enabled,
3313 GICXXPred_Simple_IsRule339Enabled,
3314 GICXXPred_Simple_IsRule340Enabled,
3315 GICXXPred_Simple_IsRule341Enabled,
3316 GICXXPred_Simple_IsRule342Enabled,
3317 GICXXPred_Simple_IsRule343Enabled,
3318 GICXXPred_Simple_IsRule344Enabled,
3319 GICXXPred_Simple_IsRule345Enabled,
3320 GICXXPred_Simple_IsRule346Enabled,
3321 GICXXPred_Simple_IsRule347Enabled,
3322 GICXXPred_Simple_IsRule348Enabled,
3323 GICXXPred_Simple_IsRule349Enabled,
3324 GICXXPred_Simple_IsRule350Enabled,
3325 GICXXPred_Simple_IsRule351Enabled,
3326 GICXXPred_Simple_IsRule352Enabled,
3327 GICXXPred_Simple_IsRule353Enabled,
3328 GICXXPred_Simple_IsRule354Enabled,
3329 GICXXPred_Simple_IsRule355Enabled,
3330};
3331
3332bool AMDGPUPostLegalizerCombinerImpl::testSimplePredicate(unsigned Predicate) const {
3333 return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1);
3334}
3335// Custom renderers.
3336enum {
3337 GICR_Invalid,
3338};
3339AMDGPUPostLegalizerCombinerImpl::CustomRendererFn
3340AMDGPUPostLegalizerCombinerImpl::CustomRenderers[] = {
3341 nullptr, // GICR_Invalid
3342};
3343
3344bool AMDGPUPostLegalizerCombinerImpl::canMatchOpcode(unsigned Opc) const {
3345 switch (Opc) {
3346 case TargetOpcode::G_SADDE:
3347 case TargetOpcode::G_SSUBE:
3348 case TargetOpcode::G_UADDE:
3349 case TargetOpcode::G_USUBE:
3350 case TargetOpcode::G_FCMP:
3351 case TargetOpcode::G_FMA:
3352 case TargetOpcode::G_FMAD:
3353 case TargetOpcode::G_FSHL:
3354 case TargetOpcode::G_FSHR:
3355 case TargetOpcode::G_ICMP:
3356 case TargetOpcode::G_INSERT_VECTOR_ELT:
3357 case TargetOpcode::G_SADDO:
3358 case TargetOpcode::G_SELECT:
3359 case TargetOpcode::G_SHUFFLE_VECTOR:
3360 case TargetOpcode::G_SMULFIX:
3361 case TargetOpcode::G_SMULFIXSAT:
3362 case TargetOpcode::G_SMULO:
3363 case TargetOpcode::G_SSUBO:
3364 case TargetOpcode::G_UADDO:
3365 case TargetOpcode::G_UMULFIX:
3366 case TargetOpcode::G_UMULFIXSAT:
3367 case TargetOpcode::G_UMULO:
3368 case TargetOpcode::G_USUBO:
3369 case TargetOpcode::G_ADD:
3370 case TargetOpcode::G_AND:
3371 case TargetOpcode::G_ASHR:
3372 case TargetOpcode::G_EXTRACT_VECTOR_ELT:
3373 case TargetOpcode::G_FADD:
3374 case TargetOpcode::G_FCOPYSIGN:
3375 case TargetOpcode::G_FDIV:
3376 case TargetOpcode::G_FMAXIMUM:
3377 case TargetOpcode::G_FMAXIMUMNUM:
3378 case TargetOpcode::G_FMAXNUM:
3379 case TargetOpcode::G_FMAXNUM_IEEE:
3380 case TargetOpcode::G_FMINIMUM:
3381 case TargetOpcode::G_FMINIMUMNUM:
3382 case TargetOpcode::G_FMINNUM:
3383 case TargetOpcode::G_FMINNUM_IEEE:
3384 case TargetOpcode::G_FMUL:
3385 case TargetOpcode::G_FPOWI:
3386 case TargetOpcode::G_FREM:
3387 case TargetOpcode::G_FSUB:
3388 case TargetOpcode::G_INTRINSIC:
3389 case TargetOpcode::G_LSHR:
3390 case TargetOpcode::G_MERGE_VALUES:
3391 case TargetOpcode::G_MUL:
3392 case TargetOpcode::G_OR:
3393 case TargetOpcode::G_PTR_ADD:
3394 case TargetOpcode::G_ROTL:
3395 case TargetOpcode::G_ROTR:
3396 case TargetOpcode::G_SADDSAT:
3397 case TargetOpcode::G_SDIV:
3398 case TargetOpcode::G_SEXT_INREG:
3399 case TargetOpcode::G_SHL:
3400 case TargetOpcode::G_SMAX:
3401 case TargetOpcode::G_SMIN:
3402 case TargetOpcode::G_SMULH:
3403 case TargetOpcode::G_SREM:
3404 case TargetOpcode::G_SSHLSAT:
3405 case TargetOpcode::G_SUB:
3406 case TargetOpcode::G_UADDSAT:
3407 case TargetOpcode::G_UDIV:
3408 case TargetOpcode::G_UMAX:
3409 case TargetOpcode::G_UMIN:
3410 case TargetOpcode::G_UMULH:
3411 case TargetOpcode::G_UREM:
3412 case TargetOpcode::G_USHLSAT:
3413 case TargetOpcode::G_XOR:
3414 case TargetOpcode::COPY:
3415 case TargetOpcode::G_ABS:
3416 case AMDGPU::G_AMDGPU_CVT_F32_UBYTE0:
3417 case AMDGPU::G_AMDGPU_CVT_F32_UBYTE1:
3418 case AMDGPU::G_AMDGPU_CVT_F32_UBYTE2:
3419 case AMDGPU::G_AMDGPU_CVT_F32_UBYTE3:
3420 case TargetOpcode::G_ANYEXT:
3421 case TargetOpcode::G_BITCAST:
3422 case TargetOpcode::G_BITREVERSE:
3423 case TargetOpcode::G_BSWAP:
3424 case TargetOpcode::G_BUILD_VECTOR:
3425 case TargetOpcode::G_BUILD_VECTOR_TRUNC:
3426 case TargetOpcode::G_CONCAT_VECTORS:
3427 case TargetOpcode::G_CTLZ:
3428 case TargetOpcode::G_CTLZ_ZERO_POISON:
3429 case TargetOpcode::G_CTPOP:
3430 case TargetOpcode::G_CTTZ:
3431 case TargetOpcode::G_CTTZ_ZERO_POISON:
3432 case TargetOpcode::G_FABS:
3433 case TargetOpcode::G_FCANONICALIZE:
3434 case TargetOpcode::G_FCEIL:
3435 case TargetOpcode::G_FFLOOR:
3436 case TargetOpcode::G_FLOG2:
3437 case TargetOpcode::G_FNEARBYINT:
3438 case TargetOpcode::G_FNEG:
3439 case TargetOpcode::G_FPEXT:
3440 case TargetOpcode::G_FPTOSI:
3441 case TargetOpcode::G_FPTOUI:
3442 case TargetOpcode::G_FPTRUNC:
3443 case TargetOpcode::G_FREEZE:
3444 case TargetOpcode::G_FRINT:
3445 case TargetOpcode::G_FSQRT:
3446 case TargetOpcode::G_INTRINSIC_ROUND:
3447 case TargetOpcode::G_INTRINSIC_ROUNDEVEN:
3448 case TargetOpcode::G_INTRINSIC_TRUNC:
3449 case TargetOpcode::G_INTTOPTR:
3450 case TargetOpcode::G_LOAD:
3451 case TargetOpcode::G_PHI:
3452 case TargetOpcode::G_PTRTOINT:
3453 case TargetOpcode::G_SEXT:
3454 case TargetOpcode::G_SEXTLOAD:
3455 case TargetOpcode::G_SITOFP:
3456 case TargetOpcode::G_STORE:
3457 case TargetOpcode::G_TRUNC:
3458 case TargetOpcode::G_TRUNC_USAT_U:
3459 case TargetOpcode::G_UITOFP:
3460 case TargetOpcode::G_ZEXT:
3461 case TargetOpcode::G_ZEXTLOAD:
3462 case TargetOpcode::G_BR:
3463 case TargetOpcode::G_UNMERGE_VALUES:
3464 return true;
3465 default:
3466 return false;
3467 }
3468}
3469
3470uint32_t AMDGPUPostLegalizerCombinerImpl::getRootFlagsToDrop() const {
3471 return MachineInstr::getPoisonGeneratingFlags();
3472}
3473
3474bool AMDGPUPostLegalizerCombinerImpl::tryCombineAllImpl(MachineInstr &I) const {
3475 const PredicateBitset AvailableFeatures = getAvailableFeatures();
3476 State.MIs.clear();
3477 State.MIs.push_back(&I);
3478 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), Helper.getTII(), MRI, Helper.getTRI(), Helper.getRBI(), AvailableFeatures, /*CoverageInfo*/ nullptr)) {
3479 return true;
3480 }
3481
3482 return false;
3483}
3484
3485enum {
3486 GICXXCustomAction_GICombiner0 = GICXXCustomAction_Invalid + 1,
3487 GICXXCustomAction_GICombiner1,
3488 GICXXCustomAction_GICombiner2,
3489 GICXXCustomAction_GICombiner3,
3490 GICXXCustomAction_GICombiner4,
3491 GICXXCustomAction_GICombiner5,
3492 GICXXCustomAction_GICombiner6,
3493 GICXXCustomAction_GICombiner7,
3494 GICXXCustomAction_GICombiner8,
3495 GICXXCustomAction_GICombiner9,
3496 GICXXCustomAction_GICombiner10,
3497 GICXXCustomAction_GICombiner11,
3498 GICXXCustomAction_GICombiner12,
3499 GICXXCustomAction_GICombiner13,
3500 GICXXCustomAction_GICombiner14,
3501 GICXXCustomAction_GICombiner15,
3502 GICXXCustomAction_GICombiner16,
3503 GICXXCustomAction_GICombiner17,
3504 GICXXCustomAction_GICombiner18,
3505 GICXXCustomAction_GICombiner19,
3506 GICXXCustomAction_GICombiner20,
3507 GICXXCustomAction_GICombiner21,
3508 GICXXCustomAction_GICombiner22,
3509 GICXXCustomAction_GICombiner23,
3510 GICXXCustomAction_GICombiner24,
3511 GICXXCustomAction_GICombiner25,
3512 GICXXCustomAction_GICombiner26,
3513 GICXXCustomAction_GICombiner27,
3514 GICXXCustomAction_GICombiner28,
3515 GICXXCustomAction_GICombiner29,
3516 GICXXCustomAction_GICombiner30,
3517 GICXXCustomAction_GICombiner31,
3518 GICXXCustomAction_GICombiner32,
3519 GICXXCustomAction_GICombiner33,
3520 GICXXCustomAction_GICombiner34,
3521 GICXXCustomAction_GICombiner35,
3522 GICXXCustomAction_GICombiner36,
3523 GICXXCustomAction_GICombiner37,
3524 GICXXCustomAction_GICombiner38,
3525 GICXXCustomAction_GICombiner39,
3526 GICXXCustomAction_GICombiner40,
3527 GICXXCustomAction_GICombiner41,
3528 GICXXCustomAction_GICombiner42,
3529 GICXXCustomAction_GICombiner43,
3530 GICXXCustomAction_GICombiner44,
3531 GICXXCustomAction_GICombiner45,
3532 GICXXCustomAction_GICombiner46,
3533 GICXXCustomAction_GICombiner47,
3534 GICXXCustomAction_GICombiner48,
3535 GICXXCustomAction_GICombiner49,
3536 GICXXCustomAction_GICombiner50,
3537 GICXXCustomAction_GICombiner51,
3538 GICXXCustomAction_GICombiner52,
3539 GICXXCustomAction_GICombiner53,
3540 GICXXCustomAction_GICombiner54,
3541 GICXXCustomAction_GICombiner55,
3542 GICXXCustomAction_GICombiner56,
3543 GICXXCustomAction_GICombiner57,
3544 GICXXCustomAction_GICombiner58,
3545 GICXXCustomAction_GICombiner59,
3546 GICXXCustomAction_GICombiner60,
3547 GICXXCustomAction_GICombiner61,
3548 GICXXCustomAction_GICombiner62,
3549 GICXXCustomAction_GICombiner63,
3550 GICXXCustomAction_GICombiner64,
3551 GICXXCustomAction_GICombiner65,
3552 GICXXCustomAction_GICombiner66,
3553 GICXXCustomAction_GICombiner67,
3554 GICXXCustomAction_GICombiner68,
3555 GICXXCustomAction_GICombiner69,
3556 GICXXCustomAction_GICombiner70,
3557 GICXXCustomAction_GICombiner71,
3558 GICXXCustomAction_GICombiner72,
3559 GICXXCustomAction_GICombiner73,
3560 GICXXCustomAction_GICombiner74,
3561 GICXXCustomAction_GICombiner75,
3562 GICXXCustomAction_GICombiner76,
3563 GICXXCustomAction_GICombiner77,
3564 GICXXCustomAction_GICombiner78,
3565 GICXXCustomAction_GICombiner79,
3566 GICXXCustomAction_GICombiner80,
3567 GICXXCustomAction_GICombiner81,
3568 GICXXCustomAction_GICombiner82,
3569 GICXXCustomAction_GICombiner83,
3570 GICXXCustomAction_GICombiner84,
3571 GICXXCustomAction_GICombiner85,
3572 GICXXCustomAction_GICombiner86,
3573 GICXXCustomAction_GICombiner87,
3574 GICXXCustomAction_GICombiner88,
3575 GICXXCustomAction_GICombiner89,
3576 GICXXCustomAction_GICombiner90,
3577 GICXXCustomAction_GICombiner91,
3578 GICXXCustomAction_GICombiner92,
3579 GICXXCustomAction_GICombiner93,
3580 GICXXCustomAction_GICombiner94,
3581 GICXXCustomAction_GICombiner95,
3582 GICXXCustomAction_GICombiner96,
3583 GICXXCustomAction_GICombiner97,
3584 GICXXCustomAction_GICombiner98,
3585 GICXXCustomAction_GICombiner99,
3586 GICXXCustomAction_GICombiner100,
3587 GICXXCustomAction_GICombiner101,
3588 GICXXCustomAction_GICombiner102,
3589 GICXXCustomAction_GICombiner103,
3590 GICXXCustomAction_GICombiner104,
3591 GICXXCustomAction_GICombiner105,
3592 GICXXCustomAction_GICombiner106,
3593 GICXXCustomAction_GICombiner107,
3594 GICXXCustomAction_GICombiner108,
3595 GICXXCustomAction_GICombiner109,
3596 GICXXCustomAction_GICombiner110,
3597 GICXXCustomAction_GICombiner111,
3598 GICXXCustomAction_GICombiner112,
3599 GICXXCustomAction_GICombiner113,
3600 GICXXCustomAction_GICombiner114,
3601 GICXXCustomAction_GICombiner115,
3602 GICXXCustomAction_GICombiner116,
3603 GICXXCustomAction_GICombiner117,
3604 GICXXCustomAction_GICombiner118,
3605 GICXXCustomAction_GICombiner119,
3606 GICXXCustomAction_GICombiner120,
3607 GICXXCustomAction_GICombiner121,
3608 GICXXCustomAction_GICombiner122,
3609 GICXXCustomAction_GICombiner123,
3610 GICXXCustomAction_GICombiner124,
3611 GICXXCustomAction_GICombiner125,
3612 GICXXCustomAction_GICombiner126,
3613 GICXXCustomAction_GICombiner127,
3614 GICXXCustomAction_GICombiner128,
3615 GICXXCustomAction_GICombiner129,
3616 GICXXCustomAction_GICombiner130,
3617 GICXXCustomAction_GICombiner131,
3618 GICXXCustomAction_GICombiner132,
3619 GICXXCustomAction_GICombiner133,
3620 GICXXCustomAction_GICombiner134,
3621 GICXXCustomAction_GICombiner135,
3622 GICXXCustomAction_GICombiner136,
3623 GICXXCustomAction_GICombiner137,
3624};
3625bool AMDGPUPostLegalizerCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const {
3626 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
3627 switch(ApplyID) {
3628 case GICXXCustomAction_GICombiner0:{
3629 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3630 // Match Patterns
3631 if(![&](){return Helper.matchFoldAPlusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3632 return false;
3633 }
3634 // Apply Patterns
3635 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3636 return true;
3637 }
3638 case GICXXCustomAction_GICombiner1:{
3639 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3640 // Match Patterns
3641 if(![&](){return Helper.matchFoldC2MinusAPlusC1(*State.MIs[0], GIMatchData_matchinfo);}()) {
3642 return false;
3643 }
3644 // Apply Patterns
3645 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3646 return true;
3647 }
3648 case GICXXCustomAction_GICombiner2:{
3649 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3650 // Match Patterns
3651 if(![&](){return Helper.matchFoldAMinusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3652 return false;
3653 }
3654 // Apply Patterns
3655 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3656 return true;
3657 }
3658 case GICXXCustomAction_GICombiner3:{
3659 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3660 // Match Patterns
3661 if(![&](){return Helper.matchFoldC1Minus2MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3662 return false;
3663 }
3664 // Apply Patterns
3665 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3666 return true;
3667 }
3668 case GICXXCustomAction_GICombiner4:{
3669 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3670 // Match Patterns
3671 if(![&](){return Helper.matchFoldAMinusC1PlusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3672 return false;
3673 }
3674 // Apply Patterns
3675 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3676 return true;
3677 }
3678 case GICXXCustomAction_GICombiner5:{
3679 // Match Patterns
3680 if(![&](){return Helper.matchCombineCopy(*State.MIs[0]);}()) {
3681 return false;
3682 }
3683 // Apply Patterns
3684 Helper.applyCombineCopy(*State.MIs[0]);
3685 return true;
3686 }
3687 case GICXXCustomAction_GICombiner6:{
3688 unsigned GIMatchData_matchinfo;
3689 // Match Patterns
3690 if(![&](){return Helper.matchCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);}()) {
3691 return false;
3692 }
3693 // Apply Patterns
3694 Helper.applyCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);
3695 return true;
3696 }
3697 case GICXXCustomAction_GICombiner7:{
3698 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3699 // Match Patterns
3700 if(![&](){return Helper.matchCombineSubToAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3701 return false;
3702 }
3703 // Apply Patterns
3704 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3705 return true;
3706 }
3707 case GICXXCustomAction_GICombiner8:{
3708 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3709 // Match Patterns
3710 if(![&](){return Helper.matchExtractVectorElementWithDifferentIndices(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3711 return false;
3712 }
3713 // Apply Patterns
3714 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3715 return true;
3716 }
3717 case GICXXCustomAction_GICombiner9:{
3718 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3719 // Match Patterns
3720 if(![&](){return Helper.matchExtractVectorElementWithBuildVector(*State.MIs[0], *State.MIs[1],
3721 GIMatchData_matchinfo);}()) {
3722 return false;
3723 }
3724 // Apply Patterns
3725 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3726 return true;
3727 }
3728 case GICXXCustomAction_GICombiner10:{
3729 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3730 // Match Patterns
3731 if(![&](){return Helper.matchExtractVectorElementWithBuildVectorTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3732 return false;
3733 }
3734 // Apply Patterns
3735 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3736 return true;
3737 }
3738 case GICXXCustomAction_GICombiner11:{
3739 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3740 // Match Patterns
3741 if(![&](){return Helper.matchExtractVectorElementWithShuffleVector(*State.MIs[0], *State.MIs[1],
3742 GIMatchData_matchinfo);}()) {
3743 return false;
3744 }
3745 // Apply Patterns
3746 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3747 return true;
3748 }
3749 case GICXXCustomAction_GICombiner12:{
3750 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3751 // Match Patterns
3752 if(![&](){return Helper.matchAddOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3753 return false;
3754 }
3755 // Apply Patterns
3756 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3757 return true;
3758 }
3759 case GICXXCustomAction_GICombiner13:{
3760 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3761 // Match Patterns
3762 if(![&](){return Helper.matchMulOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3763 return false;
3764 }
3765 // Apply Patterns
3766 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3767 return true;
3768 }
3769 case GICXXCustomAction_GICombiner14:{
3770 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3771 // Match Patterns
3772 if(![&](){return Helper.matchShlOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3773 return false;
3774 }
3775 // Apply Patterns
3776 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3777 return true;
3778 }
3779 case GICXXCustomAction_GICombiner15:{
3780 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3781 // Match Patterns
3782 if(![&](){return Helper.matchSubOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3783 return false;
3784 }
3785 // Apply Patterns
3786 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3787 return true;
3788 }
3789 case GICXXCustomAction_GICombiner16:{
3790 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3791 // Match Patterns
3792 if(![&](){return !isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI) && Helper.matchFreezeOfSingleMaybePoisonOperand(*State.MIs[0], GIMatchData_matchinfo);}()) {
3793 return false;
3794 }
3795 // Apply Patterns
3796 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3797 return true;
3798 }
3799 case GICXXCustomAction_GICombiner17:{
3800 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3801 // Match Patterns
3802 if(![&](){return Helper.matchTruncateOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3803 return false;
3804 }
3805 // Apply Patterns
3806 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3807 return true;
3808 }
3809 case GICXXCustomAction_GICombiner18:{
3810 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3811 // Match Patterns
3812 if(![&](){return Helper.matchExtOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3813 return false;
3814 }
3815 // Apply Patterns
3816 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3817 return true;
3818 }
3819 case GICXXCustomAction_GICombiner19:{
3820 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3821 // Match Patterns
3822 if(![&](){return Helper.matchRedundantSextInReg(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3823 return false;
3824 }
3825 // Apply Patterns
3826 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3827 return true;
3828 }
3829 case GICXXCustomAction_GICombiner20:{
3830 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3831 // Match Patterns
3832 if(![&](){return Helper.matchCastOfSelect(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3833 return false;
3834 }
3835 // Apply Patterns
3836 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3837 return true;
3838 }
3839 case GICXXCustomAction_GICombiner21:{
3840 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3841 // Match Patterns
3842 if(![&](){return Helper.matchCastOfBuildVector(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3843 return false;
3844 }
3845 // Apply Patterns
3846 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3847 return true;
3848 }
3849 case GICXXCustomAction_GICombiner22:{
3850 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3851 // Match Patterns
3852 if(![&](){return Helper.matchNarrowBinop(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3853 return false;
3854 }
3855 // Apply Patterns
3856 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3857 return true;
3858 }
3859 case GICXXCustomAction_GICombiner23:{
3860 APInt GIMatchData_matchinfo;
3861 // Match Patterns
3862 if(![&](){return Helper.matchCastOfInteger(*State.MIs[0], GIMatchData_matchinfo);}()) {
3863 return false;
3864 }
3865 // Apply Patterns
3866 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3867 return true;
3868 }
3869 case GICXXCustomAction_GICombiner24:{
3870 SmallVector<Register> GIMatchData_info;
3871 // Match Patterns
3872 if(![&](){return Helper.matchCombineInsertVecElts(*State.MIs[0], GIMatchData_info);}()) {
3873 return false;
3874 }
3875 // Apply Patterns
3876 Helper.applyCombineInsertVecElts(*State.MIs[0], GIMatchData_info);
3877 return true;
3878 }
3879 case GICXXCustomAction_GICombiner25:{
3880 Register GIMatchData_matchinfo;
3881 // Match Patterns
3882 if(![&](){return Helper.matchExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);}()) {
3883 return false;
3884 }
3885 // Apply Patterns
3886 Helper.applyExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);
3887 return true;
3888 }
3889 case GICXXCustomAction_GICombiner26:{
3890 SmallVector<std::pair<Register, MachineInstr*>> GIMatchData_matchinfo;
3891 // Match Patterns
3892 if(![&](){return Helper.matchExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
3893 return false;
3894 }
3895 // Apply Patterns
3896 Helper.applyExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);
3897 return true;
3898 }
3899 case GICXXCustomAction_GICombiner27:{
3900 PreferredTuple GIMatchData_matchinfo;
3901 // Match Patterns
3902 if(![&](){return Helper.matchCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);}()) {
3903 return false;
3904 }
3905 // Apply Patterns
3906 Helper.applyCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);
3907 return true;
3908 }
3909 case GICXXCustomAction_GICombiner28:{
3910 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3911 // Match Patterns
3912 if(![&](){return Helper.matchCombineLoadWithAndMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
3913 return false;
3914 }
3915 // Apply Patterns
3916 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3917 return true;
3918 }
3919 case GICXXCustomAction_GICombiner29:{
3920 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3921 // Match Patterns
3922 if(![&](){return Helper.matchCombineExtractedVectorLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
3923 return false;
3924 }
3925 // Apply Patterns
3926 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3927 return true;
3928 }
3929 case GICXXCustomAction_GICombiner30:{
3930 // Apply Patterns
3931 Helper.replaceInstWithFConstant(*State.MIs[0]->getOperand(0).getParent(), 0.0);
3932 return true;
3933 }
3934 case GICXXCustomAction_GICombiner31:{
3935 // Apply Patterns
3936 Helper.replaceInstWithConstant(*State.MIs[0]->getOperand(0).getParent(), 0);
3937 return true;
3938 }
3939 case GICXXCustomAction_GICombiner32:{
3940 // Apply Patterns
3941 Helper.replaceInstWithConstant(*State.MIs[0]->getOperand(0).getParent(), -1);
3942 return true;
3943 }
3944 case GICXXCustomAction_GICombiner33:{
3945 Register GIMatchData_matchinfo;
3946 // Match Patterns
3947 if(![&](){return Helper.matchCombineAnyExtTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
3948 return false;
3949 }
3950 // Apply Patterns
3951 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3952 return true;
3953 }
3954 case GICXXCustomAction_GICombiner34:{
3955 Register GIMatchData_matchinfo;
3956 // Match Patterns
3957 if(![&](){return Helper.matchBuildVectorIdentityFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3958 return false;
3959 }
3960 // Apply Patterns
3961 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3962 return true;
3963 }
3964 case GICXXCustomAction_GICombiner35:{
3965 Register GIMatchData_matchinfo;
3966 // Match Patterns
3967 if(![&](){return Helper.matchTruncBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3968 return false;
3969 }
3970 // Apply Patterns
3971 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3972 return true;
3973 }
3974 case GICXXCustomAction_GICombiner36:{
3975 Register GIMatchData_matchinfo;
3976 // Match Patterns
3977 if(![&](){return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3978 return false;
3979 }
3980 // Apply Patterns
3981 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3982 return true;
3983 }
3984 case GICXXCustomAction_GICombiner37:{
3985 MachineInstr* GIMatchData_matchinfo;
3986 // Match Patterns
3987 if(![&](){return Helper.matchExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);}()) {
3988 return false;
3989 }
3990 // Apply Patterns
3991 Helper.applyExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);
3992 return true;
3993 }
3994 case GICXXCustomAction_GICombiner38:{
3995 InstructionStepsMatchInfo GIMatchData_info;
3996 // Match Patterns
3997 if(![&](){return Helper.matchHoistLogicOpWithSameOpcodeHands(*State.MIs[0], GIMatchData_info);}()) {
3998 return false;
3999 }
4000 // Apply Patterns
4001 Helper.applyBuildInstructionSteps(*State.MIs[0], GIMatchData_info);
4002 return true;
4003 }
4004 case GICXXCustomAction_GICombiner39:{
4005 std::optional<int64_t> GIMatchData_matchinfo;
4006 // Match Patterns
4007 if(![&](){return Helper.matchShiftsTooBig(*State.MIs[0], GIMatchData_matchinfo);}()) {
4008 return false;
4009 }
4010 // Apply Patterns
4011 if (GIMatchData_matchinfo) {
4012 Helper.replaceInstWithConstant(*State.MIs[0], *GIMatchData_matchinfo);
4013 } else {
4014 Helper.replaceInstWithUndef(*State.MIs[0]);
4015 }
4016 return true;
4017 }
4018 case GICXXCustomAction_GICombiner40:{
4019 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4020 // Match Patterns
4021 if(![&](){return Helper.matchReassocPtrAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
4022 return false;
4023 }
4024 // Apply Patterns
4025 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
4026 return true;
4027 }
4028 case GICXXCustomAction_GICombiner41:{
4029 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4030 // Match Patterns
4031 if(![&](){return Helper.matchReassocCommBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
4032 return false;
4033 }
4034 // Apply Patterns
4035 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4036 return true;
4037 }
4038 case GICXXCustomAction_GICombiner42:{
4039 PtrAddChain GIMatchData_matchinfo;
4040 // Match Patterns
4041 if(![&](){return Helper.matchPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
4042 return false;
4043 }
4044 // Apply Patterns
4045 Helper.applyPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);
4046 return true;
4047 }
4048 case GICXXCustomAction_GICombiner43:{
4049 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4050 // Match Patterns
4051 if(![&](){return Helper.matchCanonicalizeICmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
4052 return false;
4053 }
4054 // Apply Patterns
4055 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4056 return true;
4057 }
4058 case GICXXCustomAction_GICombiner44:{
4059 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4060 // Match Patterns
4061 if(![&](){return Helper.matchCanonicalizeFCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
4062 return false;
4063 }
4064 // Apply Patterns
4065 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4066 return true;
4067 }
4068 case GICXXCustomAction_GICombiner45:{
4069 int64_t GIMatchData_matchinfo;
4070 // Match Patterns
4071 if(![&](){return Helper.matchICmpToTrueFalseKnownBits(*State.MIs[0], GIMatchData_matchinfo);}()) {
4072 return false;
4073 }
4074 // Apply Patterns
4075 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
4076 return true;
4077 }
4078 case GICXXCustomAction_GICombiner46:{
4079 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4080 // Match Patterns
4081 if(![&](){return Helper.matchICmpToLHSKnownBits(*State.MIs[0], GIMatchData_info);}()) {
4082 return false;
4083 }
4084 // Apply Patterns
4085 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4086 return true;
4087 }
4088 case GICXXCustomAction_GICombiner47:{
4089 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4090 // Match Patterns
4091 if(![&](){return Helper.matchRedundantBinOpInEquality(*State.MIs[0], GIMatchData_info);}()) {
4092 return false;
4093 }
4094 // Apply Patterns
4095 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4096 return true;
4097 }
4098 case GICXXCustomAction_GICombiner48:{
4099 std::tuple<Register, int64_t> GIMatchData_info;
4100 // Match Patterns
4101 if(![&](){return Helper.matchAshrShlToSextInreg(*State.MIs[0], GIMatchData_info);}()) {
4102 return false;
4103 }
4104 // Apply Patterns
4105 Helper.applyAshShlToSextInreg(*State.MIs[0], GIMatchData_info);
4106 return true;
4107 }
4108 case GICXXCustomAction_GICombiner49:{
4109 std::tuple<Register, unsigned> GIMatchData_matchinfo;
4110 // Match Patterns
4111 if(![&](){return Helper.matchSextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
4112 return false;
4113 }
4114 // Apply Patterns
4115 Helper.applySextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);
4116 return true;
4117 }
4118 case GICXXCustomAction_GICombiner50:{
4119 RegisterImmPair GIMatchData_matchinfo;
4120 // Match Patterns
4121 if(![&](){return Helper.matchCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);}()) {
4122 return false;
4123 }
4124 // Apply Patterns
4125 Helper.applyCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);
4126 return true;
4127 }
4128 case GICXXCustomAction_GICombiner51:{
4129 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4130 // Match Patterns
4131 if(![&](){return Helper.matchNarrowBinopFeedingAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
4132 return false;
4133 }
4134 // Apply Patterns
4135 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
4136 return true;
4137 }
4138 case GICXXCustomAction_GICombiner52:{
4139 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4140 // Match Patterns
4141 if(![&](){return Helper.matchSelectIMinMax(State.MIs[0]->getOperand(0), GIMatchData_info);}()) {
4142 return false;
4143 }
4144 // Apply Patterns
4145 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_info);
4146 return true;
4147 }
4148 case GICXXCustomAction_GICombiner53:{
4149 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4150 // Match Patterns
4151 if(![&](){return Helper.matchSelect(*State.MIs[0], GIMatchData_matchinfo);}()) {
4152 return false;
4153 }
4154 // Apply Patterns
4155 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4156 return true;
4157 }
4158 case GICXXCustomAction_GICombiner54:{
4159 // Match Patterns
4160 if(![&](){LLT SrcTy = MRI.getType(State.MIs[3]->getOperand(1).getReg());
4161 return State.MIs[0]->getOperand(2).getImm() <= SrcTy.getScalarSizeInBits() &&
4162 MRI.getType(State.MIs[1]->getOperand(1).getReg()).getScalarType() ==
4163 MRI.getType(State.MIs[2]->getOperand(2).getReg()).getScalarType() &&
4164 VT->computeNumSignBits(State.MIs[3]->getOperand(1).getReg()) >=
4165 (SrcTy.getScalarSizeInBits() - State.MIs[0]->getOperand(2).getImm() + 1);}()) {
4166 return false;
4167 }
4168 // Apply Patterns
4169 auto SExt1 = Helper.getBuilder().buildSExt(MRI.getType(State.MIs[2]->getOperand(2).getReg()), State.MIs[3]->getOperand(1).getReg());
4170 auto Unmerge = Helper.getBuilder().buildUnmerge(MRI.getType(State.MIs[1]->getOperand(1).getReg()), SExt1);
4171 unsigned UnmergeDef = State.MIs[1]->getOperand(1).getReg() == State.MIs[2]->getOperand(0).getReg() ? 0 : 1;
4172 Helper.getBuilder().buildSExt(State.MIs[0]->getOperand(0).getReg(), Unmerge.getReg(UnmergeDef));
4173 State.MIs[0]->eraseFromParent();
4174 return true;
4175 }
4176 case GICXXCustomAction_GICombiner55:{
4177 Register GIMatchData_matchinfo;
4178 // Match Patterns
4179 if(![&](){return Helper.matchRedundantAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
4180 return false;
4181 }
4182 // Apply Patterns
4183 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
4184 return true;
4185 }
4186 case GICXXCustomAction_GICombiner56:{
4187 Register GIMatchData_matchinfo;
4188 // Match Patterns
4189 if(![&](){return Helper.matchRedundantOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
4190 return false;
4191 }
4192 // Apply Patterns
4193 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
4194 return true;
4195 }
4196 case GICXXCustomAction_GICombiner57:{
4197 // Match Patterns
4198 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(State.MIs[0]->getOperand(2));}()) {
4199 return false;
4200 }
4201 // Apply Patterns
4202 Helper.applySimplifyURemByPow2(*State.MIs[0]);
4203 return true;
4204 }
4205 case GICXXCustomAction_GICombiner58:{
4206 Register GIMatchData_matchinfo;
4207 // Match Patterns
4208 if(![&](){return Helper.matchCombineZextTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
4209 return false;
4210 }
4211 // Apply Patterns
4212 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
4213 return true;
4214 }
4215 case GICXXCustomAction_GICombiner59:{
4216 // Match Patterns
4217 if(![&](){unsigned BitWidth = MRI.getType(State.MIs[0]->getOperand(1).getReg()).getScalarSizeInBits();
4218 return Helper.getValueTracking()->maskedValueIsZero(State.MIs[0]->getOperand(1).getReg(),
4219 APInt::getOneBitSet(BitWidth, State.MIs[0]->getOperand(2).getImm() - 1));}()) {
4220 return false;
4221 }
4222 // Apply Patterns
4223 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
4224 Helper.getBuilder().buildZExtInReg(State.MIs[0]->getOperand(0), State.MIs[0]->getOperand(1), State.MIs[0]->getOperand(2).getImm());
4225 State.MIs[0]->eraseFromParent();
4226 return true;
4227 }
4228 case GICXXCustomAction_GICombiner60:{
4229 std::pair<MachineInstr*, LLT> GIMatchData_matchinfo;
4230 // Match Patterns
4231 if(![&](){return Helper.matchCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
4232 return false;
4233 }
4234 // Apply Patterns
4235 Helper.applyCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);
4236 return true;
4237 }
4238 case GICXXCustomAction_GICombiner61:{
4239 SmallVector<Register> GIMatchData_info;
4240 // Match Patterns
4241 if(![&](){return Helper.matchNotCmp(*State.MIs[0], GIMatchData_info);}()) {
4242 return false;
4243 }
4244 // Apply Patterns
4245 Helper.applyNotCmp(*State.MIs[0], GIMatchData_info);
4246 return true;
4247 }
4248 case GICXXCustomAction_GICombiner62:{
4249 MachineInstr * GIMatchData_matchinfo;
4250 // Match Patterns
4251 if(![&](){return Helper.matchOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);}()) {
4252 return false;
4253 }
4254 // Apply Patterns
4255 Helper.applyOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);
4256 return true;
4257 }
4258 case GICXXCustomAction_GICombiner63:{
4259 // Apply Patterns
4260 Helper.applyCombineConstantFoldFpUnary(*State.MIs[0], State.MIs[1]->getOperand(1).getFPImm());
4261 return true;
4262 }
4263 case GICXXCustomAction_GICombiner64:{
4264 APInt GIMatchData_info;
4265 // Match Patterns
4266 if(![&](){LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
4267 APInt NewCst = State.MIs[2]->getOperand(1).getCImm()->getValue().zextOrTrunc(
4268 DstTy.getSizeInBits());
4269 NewCst += State.MIs[3]->getOperand(1).getCImm()->getValue().sextOrTrunc(
4270 DstTy.getSizeInBits());
4271 GIMatchData_info = NewCst;
4272 return true;}()) {
4273 return false;
4274 }
4275 // Apply Patterns
4276 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
4277 Helper.getBuilder().buildConstant(State.MIs[0]->getOperand(0), GIMatchData_info);
4278 State.MIs[0]->eraseFromParent();
4279 return true;
4280 }
4281 case GICXXCustomAction_GICombiner65:{
4282 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4283 // Match Patterns
4284 if(![&](){return Helper.matchOverlappingAnd(*State.MIs[0], GIMatchData_info);}()) {
4285 return false;
4286 }
4287 // Apply Patterns
4288 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4289 return true;
4290 }
4291 case GICXXCustomAction_GICombiner66:{
4292 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4293 // Match Patterns
4294 if(![&](){return Helper.matchMulOBy0(*State.MIs[0], GIMatchData_matchinfo);}()) {
4295 return false;
4296 }
4297 // Apply Patterns
4298 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4299 return true;
4300 }
4301 case GICXXCustomAction_GICombiner67:{
4302 // Match Patterns
4303 if(![&](){return Helper.matchFPowIExpansion(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());}()) {
4304 return false;
4305 }
4306 // Apply Patterns
4307 Helper.applyExpandFPowI(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());
4308 return true;
4309 }
4310 case GICXXCustomAction_GICombiner68:{
4311 std::pair<Register, Register> GIMatchData_matchinfo;
4312 // Match Patterns
4313 if(![&](){return Helper.matchXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4314 return false;
4315 }
4316 // Apply Patterns
4317 Helper.applyXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);
4318 return true;
4319 }
4320 case GICXXCustomAction_GICombiner69:{
4321 RegisterImmPair GIMatchData_matchinfo;
4322 // Match Patterns
4323 if(![&](){return Helper.matchShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
4324 return false;
4325 }
4326 // Apply Patterns
4327 Helper.applyShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);
4328 return true;
4329 }
4330 case GICXXCustomAction_GICombiner70:{
4331 ShiftOfShiftedLogic GIMatchData_matchinfo;
4332 // Match Patterns
4333 if(![&](){return Helper.matchShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);}()) {
4334 return false;
4335 }
4336 // Apply Patterns
4337 Helper.applyShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);
4338 return true;
4339 }
4340 case GICXXCustomAction_GICombiner71:{
4341 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4342 // Match Patterns
4343 if(![&](){return Helper.matchLoadOrCombine(*State.MIs[0], GIMatchData_info);}()) {
4344 return false;
4345 }
4346 // Apply Patterns
4347 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4348 return true;
4349 }
4350 case GICXXCustomAction_GICombiner72:{
4351 MachineInstr * GIMatchData_matchinfo;
4352 // Match Patterns
4353 if(![&](){return Helper.matchCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);}()) {
4354 return false;
4355 }
4356 // Apply Patterns
4357 Helper.applyCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);
4358 return true;
4359 }
4360 case GICXXCustomAction_GICombiner73:{
4361 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4362 // Match Patterns
4363 if(![&](){return Helper.matchOrShiftToFunnelShift(*State.MIs[0], false, GIMatchData_info);}()) {
4364 return false;
4365 }
4366 // Apply Patterns
4367 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4368 return true;
4369 }
4370 case GICXXCustomAction_GICombiner74:{
4371 // Match Patterns
4372 if(![&](){return Helper.matchConstantLargerBitWidth(*State.MIs[0], 3);}()) {
4373 return false;
4374 }
4375 // Apply Patterns
4376 Helper.applyFunnelShiftConstantModulo(*State.MIs[0]);
4377 return true;
4378 }
4379 case GICXXCustomAction_GICombiner75:{
4380 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4381 // Match Patterns
4382 if(![&](){return Helper.matchBitfieldExtractFromSExtInReg(*State.MIs[0], GIMatchData_info);}()) {
4383 return false;
4384 }
4385 // Apply Patterns
4386 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4387 return true;
4388 }
4389 case GICXXCustomAction_GICombiner76:{
4390 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4391 // Match Patterns
4392 if(![&](){return Helper.matchBitfieldExtractFromAnd(*State.MIs[0], GIMatchData_info);}()) {
4393 return false;
4394 }
4395 // Apply Patterns
4396 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4397 return true;
4398 }
4399 case GICXXCustomAction_GICombiner77:{
4400 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4401 // Match Patterns
4402 if(![&](){return Helper.matchBitfieldExtractFromShr(*State.MIs[0], GIMatchData_info);}()) {
4403 return false;
4404 }
4405 // Apply Patterns
4406 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4407 return true;
4408 }
4409 case GICXXCustomAction_GICombiner78:{
4410 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4411 // Match Patterns
4412 if(![&](){return Helper.matchBitfieldExtractFromShrAnd(*State.MIs[0], GIMatchData_info);}()) {
4413 return false;
4414 }
4415 // Apply Patterns
4416 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4417 return true;
4418 }
4419 case GICXXCustomAction_GICombiner79:{
4420 APInt GIMatchData_matchinfo;
4421 // Match Patterns
4422 if(![&](){return Helper.matchConstantFoldBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
4423 return false;
4424 }
4425 // Apply Patterns
4426 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
4427 return true;
4428 }
4429 case GICXXCustomAction_GICombiner80:{
4430 ConstantFP* GIMatchData_matchinfo;
4431 // Match Patterns
4432 if(![&](){return Helper.matchConstantFoldFPBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
4433 return false;
4434 }
4435 // Apply Patterns
4436 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
4437 return true;
4438 }
4439 case GICXXCustomAction_GICombiner81:{
4440 ConstantFP* GIMatchData_matchinfo;
4441 // Match Patterns
4442 if(![&](){return Helper.matchConstantFoldFMA(*State.MIs[0], GIMatchData_matchinfo);}()) {
4443 return false;
4444 }
4445 // Apply Patterns
4446 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
4447 return true;
4448 }
4449 case GICXXCustomAction_GICombiner82:{
4450 APInt GIMatchData_matchinfo;
4451 // Match Patterns
4452 if(![&](){return Helper.matchConstantFoldCastOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
4453 return false;
4454 }
4455 // Apply Patterns
4456 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
4457 return true;
4458 }
4459 case GICXXCustomAction_GICombiner83:{
4460 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4461 // Match Patterns
4462 if(![&](){return Helper.matchConstantFoldUnaryIntOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
4463 return false;
4464 }
4465 // Apply Patterns
4466 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4467 return true;
4468 }
4469 case GICXXCustomAction_GICombiner84:{
4470 // Match Patterns
4471 if(![&](){return Helper.matchUMulHToLShr(*State.MIs[0]);}()) {
4472 return false;
4473 }
4474 // Apply Patterns
4475 Helper.applyUMulHToLShr(*State.MIs[0]);
4476 return true;
4477 }
4478 case GICXXCustomAction_GICombiner85:{
4479 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4480 // Match Patterns
4481 if(![&](){return Helper.matchAndOrDisjointMask(*State.MIs[0], GIMatchData_info);}()) {
4482 return false;
4483 }
4484 // Apply Patterns
4485 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_info);
4486 return true;
4487 }
4488 case GICXXCustomAction_GICombiner86:{
4489 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4490 // Match Patterns
4491 if(![&](){return Helper.matchCombineFAddFMulToFMadOrFMA(*State.MIs[0],
4492 GIMatchData_info);}()) {
4493 return false;
4494 }
4495 // Apply Patterns
4496 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4497 return true;
4498 }
4499 case GICXXCustomAction_GICombiner87:{
4500 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4501 // Match Patterns
4502 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMA(*State.MIs[0],
4503 GIMatchData_info);}()) {
4504 return false;
4505 }
4506 // Apply Patterns
4507 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4508 return true;
4509 }
4510 case GICXXCustomAction_GICombiner88:{
4511 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4512 // Match Patterns
4513 if(![&](){return Helper.matchCombineFAddFMAFMulToFMadOrFMA(*State.MIs[0],
4514 GIMatchData_info);}()) {
4515 return false;
4516 }
4517 // Apply Patterns
4518 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4519 return true;
4520 }
4521 case GICXXCustomAction_GICombiner89:{
4522 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4523 // Match Patterns
4524 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMAAggressive(
4525 *State.MIs[0], GIMatchData_info);}()) {
4526 return false;
4527 }
4528 // Apply Patterns
4529 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4530 return true;
4531 }
4532 case GICXXCustomAction_GICombiner90:{
4533 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4534 // Match Patterns
4535 if(![&](){return Helper.matchCombineFSubFMulToFMadOrFMA(*State.MIs[0],
4536 GIMatchData_info);}()) {
4537 return false;
4538 }
4539 // Apply Patterns
4540 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4541 return true;
4542 }
4543 case GICXXCustomAction_GICombiner91:{
4544 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4545 // Match Patterns
4546 if(![&](){return Helper.matchCombineFSubFNegFMulToFMadOrFMA(*State.MIs[0],
4547 GIMatchData_info);}()) {
4548 return false;
4549 }
4550 // Apply Patterns
4551 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4552 return true;
4553 }
4554 case GICXXCustomAction_GICombiner92:{
4555 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4556 // Match Patterns
4557 if(![&](){return Helper.matchCombineFSubFpExtFMulToFMadOrFMA(*State.MIs[0],
4558 GIMatchData_info);}()) {
4559 return false;
4560 }
4561 // Apply Patterns
4562 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4563 return true;
4564 }
4565 case GICXXCustomAction_GICombiner93:{
4566 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4567 // Match Patterns
4568 if(![&](){return Helper.matchCombineFSubFpExtFNegFMulToFMadOrFMA(
4569 *State.MIs[0], GIMatchData_info);}()) {
4570 return false;
4571 }
4572 // Apply Patterns
4573 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4574 return true;
4575 }
4576 case GICXXCustomAction_GICombiner94:{
4577 unsigned GIMatchData_select_op_no;
4578 // Match Patterns
4579 if(![&](){return Helper.matchFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);}()) {
4580 return false;
4581 }
4582 // Apply Patterns
4583 Helper.applyFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);
4584 return true;
4585 }
4586 case GICXXCustomAction_GICombiner95:{
4587 // Match Patterns
4588 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(State.MIs[0]->getOperand(2),
4589 /*OrNegative=*/true);}()) {
4590 return false;
4591 }
4592 // Apply Patterns
4593 Helper.applySimplifySRemByPow2(*State.MIs[0]);
4594 return true;
4595 }
4596 case GICXXCustomAction_GICombiner96:{
4597 // Match Patterns
4598 if(![&](){return Helper.matchUDivOrURemByConst(*State.MIs[0]);}()) {
4599 return false;
4600 }
4601 // Apply Patterns
4602 Helper.applyUDivOrURemByConst(*State.MIs[0]);
4603 return true;
4604 }
4605 case GICXXCustomAction_GICombiner97:{
4606 // Match Patterns
4607 if(![&](){return Helper.matchSDivOrSRemByConst(*State.MIs[0]);}()) {
4608 return false;
4609 }
4610 // Apply Patterns
4611 Helper.applySDivOrSRemByConst(*State.MIs[0]);
4612 return true;
4613 }
4614 case GICXXCustomAction_GICombiner98:{
4615 // Match Patterns
4616 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/false);}()) {
4617 return false;
4618 }
4619 // Apply Patterns
4620 Helper.applyUDivByPow2(*State.MIs[0]);
4621 return true;
4622 }
4623 case GICXXCustomAction_GICombiner99:{
4624 // Match Patterns
4625 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/true);}()) {
4626 return false;
4627 }
4628 // Apply Patterns
4629 Helper.applySDivByPow2(*State.MIs[0]);
4630 return true;
4631 }
4632 case GICXXCustomAction_GICombiner100:{
4633 SmallVector<MachineInstr *> GIMatchData_matchinfo;
4634 // Match Patterns
4635 if(![&](){return Helper.matchRepeatedFPDivisor(*State.MIs[0], GIMatchData_matchinfo);}()) {
4636 return false;
4637 }
4638 // Apply Patterns
4639 Helper.applyRepeatedFPDivisor(GIMatchData_matchinfo);
4640 return true;
4641 }
4642 case GICXXCustomAction_GICombiner101:{
4643 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4644 // Match Patterns
4645 if(![&](){return Helper.matchSimplifySelectToMinMax(*State.MIs[0], GIMatchData_info);}()) {
4646 return false;
4647 }
4648 // Apply Patterns
4649 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4650 return true;
4651 }
4652 case GICXXCustomAction_GICombiner102:{
4653 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4654 // Match Patterns
4655 if(![&](){return Helper.matchAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
4656 return false;
4657 }
4658 // Apply Patterns
4659 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4660 return true;
4661 }
4662 case GICXXCustomAction_GICombiner103:{
4663 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4664 // Match Patterns
4665 if(![&](){return Helper.matchOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
4666 return false;
4667 }
4668 // Apply Patterns
4669 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4670 return true;
4671 }
4672 case GICXXCustomAction_GICombiner104:{
4673 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4674 // Match Patterns
4675 if(![&](){return Helper.matchSimplifyNegMinMax(*State.MIs[0], GIMatchData_matchinfo);}()) {
4676 return false;
4677 }
4678 // Apply Patterns
4679 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4680 return true;
4681 }
4682 case GICXXCustomAction_GICombiner105:{
4683 SmallVector<Register> GIMatchData_matchinfo;
4684 // Match Patterns
4685 if(![&](){return Helper.matchCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);}()) {
4686 return false;
4687 }
4688 // Apply Patterns
4689 Helper.applyCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);
4690 return true;
4691 }
4692 case GICXXCustomAction_GICombiner106:{
4693 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4694 // Match Patterns
4695 if(![&](){return Helper.matchSextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4696 return false;
4697 }
4698 // Apply Patterns
4699 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4700 return true;
4701 }
4702 case GICXXCustomAction_GICombiner107:{
4703 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4704 // Match Patterns
4705 if(![&](){return Helper.matchZextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4706 return false;
4707 }
4708 // Apply Patterns
4709 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4710 return true;
4711 }
4712 case GICXXCustomAction_GICombiner108:{
4713 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4714 // Match Patterns
4715 if(![&](){return Helper.matchNonNegZext(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4716 return false;
4717 }
4718 // Apply Patterns
4719 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4720 return true;
4721 }
4722 case GICXXCustomAction_GICombiner109:{
4723 SmallVector<Register> GIMatchData_matchinfo;
4724 // Match Patterns
4725 if(![&](){return Helper.matchCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);}()) {
4726 return false;
4727 }
4728 // Apply Patterns
4729 Helper.applyCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);
4730 return true;
4731 }
4732 case GICXXCustomAction_GICombiner110:{
4733 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4734 // Match Patterns
4735 if(![&](){return Helper.matchShuffleUndefRHS(*State.MIs[0], GIMatchData_matchinfo);}()) {
4736 return false;
4737 }
4738 // Apply Patterns
4739 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4740 return true;
4741 }
4742 case GICXXCustomAction_GICombiner111:{
4743 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4744 // Match Patterns
4745 if(![&](){return Helper.matchShuffleDisjointMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
4746 return false;
4747 }
4748 // Apply Patterns
4749 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4750 return true;
4751 }
4752 case GICXXCustomAction_GICombiner112:{
4753 Register GIMatchData_matchinfo;
4754 // Match Patterns
4755 if(![&](){return Helper.matchUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);}()) {
4756 return false;
4757 }
4758 // Apply Patterns
4759 Helper.applyUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);
4760 return true;
4761 }
4762 case GICXXCustomAction_GICombiner113:{
4763 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4764 // Match Patterns
4765 if(![&](){return Helper.matchUnmergeValuesAnyExtBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
4766 return false;
4767 }
4768 // Apply Patterns
4769 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4770 return true;
4771 }
4772 case GICXXCustomAction_GICombiner114:{
4773 SmallVector<Register> GIMatchData_info;
4774 // Match Patterns
4775 if(![&](){return Helper.matchCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);}()) {
4776 return false;
4777 }
4778 // Apply Patterns
4779 Helper.applyCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);
4780 return true;
4781 }
4782 case GICXXCustomAction_GICombiner115:{
4783 Register GIMatchData_src;
4784 // Match Patterns
4785 if(![&](){// Check if first source comes from G_UNMERGE_VALUES.
4786 Register FirstMergeSrc = getRemainingOperands(*State.MIs[0], 1)[0].getReg();
4787 MachineInstr *UnmergeMI = MRI.getVRegDef(FirstMergeSrc);
4788 if (!UnmergeMI || UnmergeMI->getOpcode() != TargetOpcode::G_UNMERGE_VALUES)
4789 return false;
4790
4791 // Check counts match.
4792 unsigned NumMergeSrcs = getRemainingOperands(*State.MIs[0], 1).size();
4793 unsigned NumUnmergeDefs = UnmergeMI->getNumDefs();
4794 if (NumMergeSrcs != NumUnmergeDefs)
4795 return false;
4796
4797 // Verify all merge sources match unmerge defs in order.
4798 for (unsigned I = 0; I < NumMergeSrcs; ++I) {
4799 Register MergeSrc = getRemainingOperands(*State.MIs[0], 1)[I].getReg();
4800 Register UnmergeDef = UnmergeMI->getOperand(I).getReg();
4801
4802 if (MergeSrc != UnmergeDef)
4803 return false;
4804
4805 if (!MRI.hasOneNonDBGUse(MergeSrc))
4806 return false;
4807 }
4808
4809 // Check size compatibility.
4810 GIMatchData_src = UnmergeMI->getOperand(NumUnmergeDefs).getReg();
4811 LLT SrcTy = MRI.getType(GIMatchData_src);
4812 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
4813 if (SrcTy.getSizeInBits() != DstTy.getSizeInBits())
4814 return false;
4815
4816 // Check bitcast legality.
4817 if (SrcTy != DstTy) {
4818 std::array<LLT, 2> Types = {{DstTy, SrcTy}};
4819 LegalityQuery Query(TargetOpcode::G_BITCAST, Types);
4820 if (!Helper.isLegalOrBeforeLegalizer(Query))
4821 return false;
4822 }
4823
4824 return true;}()) {
4825 return false;
4826 }
4827 // Apply Patterns
4828 LLT SrcTy = MRI.getType(GIMatchData_src);
4829 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
4830
4831 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
4832
4833 if (SrcTy == DstTy) {
4834 Helper.replaceRegWith(MRI, State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
4835 } else {
4836 Helper.getBuilder().buildBitcast(State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
4837 }
4838
4839 State.MIs[0]->eraseFromParent();
4840 return true;
4841 }
4842 case GICXXCustomAction_GICombiner116:{
4843 SmallVector<APInt, 8> GIMatchData_info;
4844 // Match Patterns
4845 if(![&](){return Helper.matchCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);}()) {
4846 return false;
4847 }
4848 // Apply Patterns
4849 Helper.applyCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);
4850 return true;
4851 }
4852 case GICXXCustomAction_GICombiner117:{
4853 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4854 // Match Patterns
4855 if(![&](){return Helper.matchCombineUnmergeUndef(*State.MIs[0], GIMatchData_info);}()) {
4856 return false;
4857 }
4858 // Apply Patterns
4859 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4860 return true;
4861 }
4862 case GICXXCustomAction_GICombiner118:{
4863 // Match Patterns
4864 if(![&](){return Helper.matchCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);}()) {
4865 return false;
4866 }
4867 // Apply Patterns
4868 Helper.applyCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);
4869 return true;
4870 }
4871 case GICXXCustomAction_GICombiner119:{
4872 // Match Patterns
4873 if(![&](){return Helper.matchCombineUnmergeZExtToZExt(*State.MIs[0]);}()) {
4874 return false;
4875 }
4876 // Apply Patterns
4877 Helper.applyCombineUnmergeZExtToZExt(*State.MIs[0]);
4878 return true;
4879 }
4880 case GICXXCustomAction_GICombiner120:{
4881 Register GIMatchData_unmergeSrc;
4882 // Match Patterns
4883 if(![&](){return Helper.matchCombineBuildUnmerge(*State.MIs[0], MRI, GIMatchData_unmergeSrc);}()) {
4884 return false;
4885 }
4886 // Apply Patterns
4887 Helper.applyCombineBuildUnmerge(*State.MIs[0], MRI, B, GIMatchData_unmergeSrc);
4888 return true;
4889 }
4890 case GICXXCustomAction_GICombiner121:{
4891 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4892 // Match Patterns
4893 if(![&](){return Helper.matchAddOverflow(*State.MIs[0], GIMatchData_matchinfo);}()) {
4894 return false;
4895 }
4896 // Apply Patterns
4897 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4898 return true;
4899 }
4900 case GICXXCustomAction_GICombiner122:{
4901 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4902 // Match Patterns
4903 if(![&](){return Helper.matchSuboCarryOut(*State.MIs[0], GIMatchData_matchinfo);}()) {
4904 return false;
4905 }
4906 // Apply Patterns
4907 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4908 return true;
4909 }
4910 case GICXXCustomAction_GICombiner123:{
4911 Register GIMatchData_matchinfo;
4912 // Match Patterns
4913 if(![&](){return Helper.matchTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);}()) {
4914 return false;
4915 }
4916 // Apply Patterns
4917 Helper.applyTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);
4918 return true;
4919 }
4920 case GICXXCustomAction_GICombiner124:{
4921 Register GIMatchData_matchinfo;
4922 // Match Patterns
4923 if(![&](){return Helper.matchTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);}()) {
4924 return false;
4925 }
4926 // Apply Patterns
4927 Helper.applyTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);
4928 return true;
4929 }
4930 case GICXXCustomAction_GICombiner125:{
4931 LshrOfTruncOfLshr GIMatchData_matchinfo;
4932 // Match Patterns
4933 if(![&](){return Helper.matchLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo, *State.MIs[2]);}()) {
4934 return false;
4935 }
4936 // Apply Patterns
4937 Helper.applyLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo);
4938 return true;
4939 }
4940 case GICXXCustomAction_GICombiner126:{
4941 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4942 // Match Patterns
4943 if(![&](){return Helper.matchCtls(*State.MIs[0], GIMatchData_matchinfo);}()) {
4944 return false;
4945 }
4946 // Apply Patterns
4947 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4948 return true;
4949 }
4950 case GICXXCustomAction_GICombiner127:{
4951 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4952 // Match Patterns
4953 if(![&](){return Helper.matchBinopWithNeg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4954 return false;
4955 }
4956 // Apply Patterns
4957 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4958 return true;
4959 }
4960 case GICXXCustomAction_GICombiner128:{
4961 FMinFMaxLegacyInfo GIMatchData_matchinfo;
4962 // Match Patterns
4963 if(![&](){return matchFMinFMaxLegacy(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
4964 return false;
4965 }
4966 // Apply Patterns
4967 applySelectFCmpToFMinFMaxLegacy(*State.MIs[0], GIMatchData_matchinfo);
4968 return true;
4969 }
4970 case GICXXCustomAction_GICombiner129:{
4971 // Match Patterns
4972 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());}()) {
4973 return false;
4974 }
4975 // Apply Patterns
4976 Helper.applyExpandPromotedF16FMed3(*State.MIs[0], State.MIs[1]->getOperand(1).getReg(), State.MIs[1]->getOperand(2).getReg(), State.MIs[1]->getOperand(3).getReg());
4977 return true;
4978 }
4979 case GICXXCustomAction_GICombiner130:{
4980 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4981 // Match Patterns
4982 if(![&](){return Helper.matchCombineFmulWithSelectToFldexp(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
4983 return false;
4984 }
4985 // Apply Patterns
4986 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4987 return true;
4988 }
4989 case GICXXCustomAction_GICombiner131:{
4990 // Match Patterns
4991 if(![&](){return matchUCharToFloat(*State.MIs[0]);}()) {
4992 return false;
4993 }
4994 // Apply Patterns
4995 applyUCharToFloat(*State.MIs[0]);
4996 return true;
4997 }
4998 case GICXXCustomAction_GICombiner132:{
4999 CvtF32UByteMatchInfo GIMatchData_matchinfo;
5000 // Match Patterns
5001 if(![&](){return matchCvtF32UByteN(*State.MIs[0], GIMatchData_matchinfo);}()) {
5002 return false;
5003 }
5004 // Apply Patterns
5005 applyCvtF32UByteN(*State.MIs[0], GIMatchData_matchinfo);
5006 return true;
5007 }
5008 case GICXXCustomAction_GICombiner133:{
5009 MachineInstr * GIMatchData_matchinfo;
5010 // Match Patterns
5011 if(![&](){return Helper.matchFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
5012 return false;
5013 }
5014 // Apply Patterns
5015 Helper.applyFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);
5016 return true;
5017 }
5018 case GICXXCustomAction_GICombiner134:{
5019 // Match Patterns
5020 if(![&](){return Helper.matchFoldFAbsFptrunc(*State.MIs[0], *State.MIs[1]);}()) {
5021 return false;
5022 }
5023 // Apply Patterns
5024 Helper.applyFoldFAbsFptrunc(*State.MIs[0], *State.MIs[1]);
5025 return true;
5026 }
5027 case GICXXCustomAction_GICombiner135:{
5028 // Match Patterns
5029 if(![&](){return matchFDivSqrtToRsqF16(*State.MIs[0]);}()) {
5030 return false;
5031 }
5032 // Apply Patterns
5033 applyFDivSqrtToRsqF16(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
5034 return true;
5035 }
5036 case GICXXCustomAction_GICombiner136:{
5037 std::pair<MachineInstr *, unsigned> GIMatchData_matchinfo;
5038 // Match Patterns
5039 if(![&](){return matchCombineSignExtendInReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
5040 return false;
5041 }
5042 // Apply Patterns
5043 applyCombineSignExtendInReg(*State.MIs[0], GIMatchData_matchinfo);
5044 return true;
5045 }
5046 case GICXXCustomAction_GICombiner137:{
5047 unsigned GIMatchData_matchinfo;
5048 // Match Patterns
5049 if(![&](){return matchCombine_s_mul_u64(*State.MIs[0], GIMatchData_matchinfo);}()) {
5050 return false;
5051 }
5052 // Apply Patterns
5053 Helper.replaceOpcodeWith(*State.MIs[0], GIMatchData_matchinfo);
5054 return true;
5055 }
5056 }
5057 llvm_unreachable("Unknown Apply Action");
5058}
5059#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
5060#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((Val) >> 8)
5061#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24)
5062#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)
5063#else
5064#define GIMT_Encode2(Val) uint8_t((Val) >> 8), uint8_t(Val)
5065#define GIMT_Encode4(Val) uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
5066#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)
5067#endif
5068const uint8_t *AMDGPUPostLegalizerCombinerImpl::getMatchTable() const {
5069 constexpr static uint8_t MatchTable0[] = {
5070 /* 0 */ GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(20), GIMT_Encode2(5512), /*)*//*default:*//*Label 118*/ GIMT_Encode4(34675),
5071 /* 10 */ /*TargetOpcode::COPY*//*Label 0*/ GIMT_Encode4(21978), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5072 /* 150 */ /*TargetOpcode::G_ADD*//*Label 1*/ GIMT_Encode4(21990),
5073 /* 154 */ /*TargetOpcode::G_SUB*//*Label 2*/ GIMT_Encode4(23115),
5074 /* 158 */ /*TargetOpcode::G_MUL*//*Label 3*/ GIMT_Encode4(24369),
5075 /* 162 */ /*TargetOpcode::G_SDIV*//*Label 4*/ GIMT_Encode4(24614),
5076 /* 166 */ /*TargetOpcode::G_UDIV*//*Label 5*/ GIMT_Encode4(24699),
5077 /* 170 */ /*TargetOpcode::G_SREM*//*Label 6*/ GIMT_Encode4(24805),
5078 /* 174 */ /*TargetOpcode::G_UREM*//*Label 7*/ GIMT_Encode4(24884), GIMT_Encode4(0), GIMT_Encode4(0),
5079 /* 186 */ /*TargetOpcode::G_AND*//*Label 8*/ GIMT_Encode4(24984),
5080 /* 190 */ /*TargetOpcode::G_OR*//*Label 9*/ GIMT_Encode4(25570),
5081 /* 194 */ /*TargetOpcode::G_XOR*//*Label 10*/ GIMT_Encode4(26718), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5082 /* 226 */ /*TargetOpcode::G_PHI*//*Label 11*/ GIMT_Encode4(26980), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5083 /* 250 */ /*TargetOpcode::G_UNMERGE_VALUES*//*Label 12*/ GIMT_Encode4(26995), GIMT_Encode4(0),
5084 /* 258 */ /*TargetOpcode::G_MERGE_VALUES*//*Label 13*/ GIMT_Encode4(27062),
5085 /* 262 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 14*/ GIMT_Encode4(27157),
5086 /* 266 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 15*/ GIMT_Encode4(27229),
5087 /* 270 */ /*TargetOpcode::G_CONCAT_VECTORS*//*Label 16*/ GIMT_Encode4(27244),
5088 /* 274 */ /*TargetOpcode::G_PTRTOINT*//*Label 17*/ GIMT_Encode4(27259),
5089 /* 278 */ /*TargetOpcode::G_INTTOPTR*//*Label 18*/ GIMT_Encode4(27380),
5090 /* 282 */ /*TargetOpcode::G_BITCAST*//*Label 19*/ GIMT_Encode4(27438),
5091 /* 286 */ /*TargetOpcode::G_FREEZE*//*Label 20*/ GIMT_Encode4(27528), GIMT_Encode4(0), GIMT_Encode4(0),
5092 /* 298 */ /*TargetOpcode::G_INTRINSIC_TRUNC*//*Label 21*/ GIMT_Encode4(27592),
5093 /* 302 */ /*TargetOpcode::G_INTRINSIC_ROUND*//*Label 22*/ GIMT_Encode4(27614), GIMT_Encode4(0), GIMT_Encode4(0),
5094 /* 314 */ /*TargetOpcode::G_INTRINSIC_ROUNDEVEN*//*Label 23*/ GIMT_Encode4(27636), GIMT_Encode4(0), GIMT_Encode4(0),
5095 /* 326 */ /*TargetOpcode::G_LOAD*//*Label 24*/ GIMT_Encode4(27658),
5096 /* 330 */ /*TargetOpcode::G_SEXTLOAD*//*Label 25*/ GIMT_Encode4(27670),
5097 /* 334 */ /*TargetOpcode::G_ZEXTLOAD*//*Label 26*/ GIMT_Encode4(27682), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5098 /* 354 */ /*TargetOpcode::G_STORE*//*Label 27*/ GIMT_Encode4(27694), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5099 /* 486 */ /*TargetOpcode::G_INTRINSIC*//*Label 28*/ GIMT_Encode4(27718), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5100 /* 502 */ /*TargetOpcode::G_ANYEXT*//*Label 29*/ GIMT_Encode4(27900),
5101 /* 506 */ /*TargetOpcode::G_TRUNC*//*Label 30*/ GIMT_Encode4(28031), GIMT_Encode4(0), GIMT_Encode4(0),
5102 /* 518 */ /*TargetOpcode::G_TRUNC_USAT_U*//*Label 31*/ GIMT_Encode4(28712), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5103 /* 538 */ /*TargetOpcode::G_SEXT*//*Label 32*/ GIMT_Encode4(28745),
5104 /* 542 */ /*TargetOpcode::G_SEXT_INREG*//*Label 33*/ GIMT_Encode4(28820),
5105 /* 546 */ /*TargetOpcode::G_ZEXT*//*Label 34*/ GIMT_Encode4(29053),
5106 /* 550 */ /*TargetOpcode::G_SHL*//*Label 35*/ GIMT_Encode4(29183),
5107 /* 554 */ /*TargetOpcode::G_LSHR*//*Label 36*/ GIMT_Encode4(29532),
5108 /* 558 */ /*TargetOpcode::G_ASHR*//*Label 37*/ GIMT_Encode4(29875),
5109 /* 562 */ /*TargetOpcode::G_FSHL*//*Label 38*/ GIMT_Encode4(30200),
5110 /* 566 */ /*TargetOpcode::G_FSHR*//*Label 39*/ GIMT_Encode4(30259),
5111 /* 570 */ /*TargetOpcode::G_ROTR*//*Label 40*/ GIMT_Encode4(30318),
5112 /* 574 */ /*TargetOpcode::G_ROTL*//*Label 41*/ GIMT_Encode4(30342),
5113 /* 578 */ /*TargetOpcode::G_ICMP*//*Label 42*/ GIMT_Encode4(30366),
5114 /* 582 */ /*TargetOpcode::G_FCMP*//*Label 43*/ GIMT_Encode4(30411), GIMT_Encode4(0), GIMT_Encode4(0),
5115 /* 594 */ /*TargetOpcode::G_SELECT*//*Label 44*/ GIMT_Encode4(30423),
5116 /* 598 */ /*TargetOpcode::G_UADDO*//*Label 45*/ GIMT_Encode4(30780),
5117 /* 602 */ /*TargetOpcode::G_UADDE*//*Label 46*/ GIMT_Encode4(30849),
5118 /* 606 */ /*TargetOpcode::G_USUBO*//*Label 47*/ GIMT_Encode4(30877),
5119 /* 610 */ /*TargetOpcode::G_USUBE*//*Label 48*/ GIMT_Encode4(30889),
5120 /* 614 */ /*TargetOpcode::G_SADDO*//*Label 49*/ GIMT_Encode4(30917),
5121 /* 618 */ /*TargetOpcode::G_SADDE*//*Label 50*/ GIMT_Encode4(30986),
5122 /* 622 */ /*TargetOpcode::G_SSUBO*//*Label 51*/ GIMT_Encode4(31014),
5123 /* 626 */ /*TargetOpcode::G_SSUBE*//*Label 52*/ GIMT_Encode4(31026),
5124 /* 630 */ /*TargetOpcode::G_UMULO*//*Label 53*/ GIMT_Encode4(31054),
5125 /* 634 */ /*TargetOpcode::G_SMULO*//*Label 54*/ GIMT_Encode4(31120),
5126 /* 638 */ /*TargetOpcode::G_UMULH*//*Label 55*/ GIMT_Encode4(31186),
5127 /* 642 */ /*TargetOpcode::G_SMULH*//*Label 56*/ GIMT_Encode4(31223),
5128 /* 646 */ /*TargetOpcode::G_UADDSAT*//*Label 57*/ GIMT_Encode4(31249),
5129 /* 650 */ /*TargetOpcode::G_SADDSAT*//*Label 58*/ GIMT_Encode4(31275), GIMT_Encode4(0), GIMT_Encode4(0),
5130 /* 662 */ /*TargetOpcode::G_USHLSAT*//*Label 59*/ GIMT_Encode4(31301),
5131 /* 666 */ /*TargetOpcode::G_SSHLSAT*//*Label 60*/ GIMT_Encode4(31324),
5132 /* 670 */ /*TargetOpcode::G_SMULFIX*//*Label 61*/ GIMT_Encode4(31347),
5133 /* 674 */ /*TargetOpcode::G_UMULFIX*//*Label 62*/ GIMT_Encode4(31375),
5134 /* 678 */ /*TargetOpcode::G_SMULFIXSAT*//*Label 63*/ GIMT_Encode4(31403),
5135 /* 682 */ /*TargetOpcode::G_UMULFIXSAT*//*Label 64*/ GIMT_Encode4(31431), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5136 /* 702 */ /*TargetOpcode::G_FADD*//*Label 65*/ GIMT_Encode4(31459),
5137 /* 706 */ /*TargetOpcode::G_FSUB*//*Label 66*/ GIMT_Encode4(31677),
5138 /* 710 */ /*TargetOpcode::G_FMUL*//*Label 67*/ GIMT_Encode4(31822),
5139 /* 714 */ /*TargetOpcode::G_FMA*//*Label 68*/ GIMT_Encode4(31977),
5140 /* 718 */ /*TargetOpcode::G_FMAD*//*Label 69*/ GIMT_Encode4(32034),
5141 /* 722 */ /*TargetOpcode::G_FDIV*//*Label 70*/ GIMT_Encode4(32091),
5142 /* 726 */ /*TargetOpcode::G_FREM*//*Label 71*/ GIMT_Encode4(32207), GIMT_Encode4(0), GIMT_Encode4(0),
5143 /* 738 */ /*TargetOpcode::G_FPOWI*//*Label 72*/ GIMT_Encode4(32230), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5144 /* 758 */ /*TargetOpcode::G_FLOG2*//*Label 73*/ GIMT_Encode4(32252), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5145 /* 774 */ /*TargetOpcode::G_FNEG*//*Label 74*/ GIMT_Encode4(32274),
5146 /* 778 */ /*TargetOpcode::G_FPEXT*//*Label 75*/ GIMT_Encode4(32336),
5147 /* 782 */ /*TargetOpcode::G_FPTRUNC*//*Label 76*/ GIMT_Encode4(32358),
5148 /* 786 */ /*TargetOpcode::G_FPTOSI*//*Label 77*/ GIMT_Encode4(32436),
5149 /* 790 */ /*TargetOpcode::G_FPTOUI*//*Label 78*/ GIMT_Encode4(32461),
5150 /* 794 */ /*TargetOpcode::G_SITOFP*//*Label 79*/ GIMT_Encode4(32486),
5151 /* 798 */ /*TargetOpcode::G_UITOFP*//*Label 80*/ GIMT_Encode4(32534), GIMT_Encode4(0), GIMT_Encode4(0),
5152 /* 810 */ /*TargetOpcode::G_FABS*//*Label 81*/ GIMT_Encode4(32582),
5153 /* 814 */ /*TargetOpcode::G_FCOPYSIGN*//*Label 82*/ GIMT_Encode4(32682), GIMT_Encode4(0),
5154 /* 822 */ /*TargetOpcode::G_FCANONICALIZE*//*Label 83*/ GIMT_Encode4(32694),
5155 /* 826 */ /*TargetOpcode::G_FMINNUM*//*Label 84*/ GIMT_Encode4(32747),
5156 /* 830 */ /*TargetOpcode::G_FMAXNUM*//*Label 85*/ GIMT_Encode4(32841),
5157 /* 834 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 86*/ GIMT_Encode4(32935),
5158 /* 838 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 87*/ GIMT_Encode4(32961),
5159 /* 842 */ /*TargetOpcode::G_FMINIMUM*//*Label 88*/ GIMT_Encode4(32987),
5160 /* 846 */ /*TargetOpcode::G_FMAXIMUM*//*Label 89*/ GIMT_Encode4(33081),
5161 /* 850 */ /*TargetOpcode::G_FMINIMUMNUM*//*Label 90*/ GIMT_Encode4(33175),
5162 /* 854 */ /*TargetOpcode::G_FMAXIMUMNUM*//*Label 91*/ GIMT_Encode4(33187), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5163 /* 890 */ /*TargetOpcode::G_PTR_ADD*//*Label 92*/ GIMT_Encode4(33199), GIMT_Encode4(0),
5164 /* 898 */ /*TargetOpcode::G_SMIN*//*Label 93*/ GIMT_Encode4(33365),
5165 /* 902 */ /*TargetOpcode::G_SMAX*//*Label 94*/ GIMT_Encode4(33413),
5166 /* 906 */ /*TargetOpcode::G_UMIN*//*Label 95*/ GIMT_Encode4(33461),
5167 /* 910 */ /*TargetOpcode::G_UMAX*//*Label 96*/ GIMT_Encode4(33509),
5168 /* 914 */ /*TargetOpcode::G_ABS*//*Label 97*/ GIMT_Encode4(33557), GIMT_Encode4(0), GIMT_Encode4(0),
5169 /* 926 */ /*TargetOpcode::G_BR*//*Label 98*/ GIMT_Encode4(33590), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5170 /* 946 */ /*TargetOpcode::G_INSERT_VECTOR_ELT*//*Label 99*/ GIMT_Encode4(33602),
5171 /* 950 */ /*TargetOpcode::G_EXTRACT_VECTOR_ELT*//*Label 100*/ GIMT_Encode4(33746),
5172 /* 954 */ /*TargetOpcode::G_SHUFFLE_VECTOR*//*Label 101*/ GIMT_Encode4(34137), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5173 /* 970 */ /*TargetOpcode::G_CTTZ*//*Label 102*/ GIMT_Encode4(34217),
5174 /* 974 */ /*TargetOpcode::G_CTTZ_ZERO_POISON*//*Label 103*/ GIMT_Encode4(34252),
5175 /* 978 */ /*TargetOpcode::G_CTLZ*//*Label 104*/ GIMT_Encode4(34264),
5176 /* 982 */ /*TargetOpcode::G_CTLZ_ZERO_POISON*//*Label 105*/ GIMT_Encode4(34310), GIMT_Encode4(0),
5177 /* 990 */ /*TargetOpcode::G_CTPOP*//*Label 106*/ GIMT_Encode4(34333),
5178 /* 994 */ /*TargetOpcode::G_BSWAP*//*Label 107*/ GIMT_Encode4(34345),
5179 /* 998 */ /*TargetOpcode::G_BITREVERSE*//*Label 108*/ GIMT_Encode4(34357), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5180 /* 1014 */ /*TargetOpcode::G_FCEIL*//*Label 109*/ GIMT_Encode4(34457), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5181 /* 1062 */ /*TargetOpcode::G_FSQRT*//*Label 110*/ GIMT_Encode4(34479),
5182 /* 1066 */ /*TargetOpcode::G_FFLOOR*//*Label 111*/ GIMT_Encode4(34561),
5183 /* 1070 */ /*TargetOpcode::G_FRINT*//*Label 112*/ GIMT_Encode4(34583),
5184 /* 1074 */ /*TargetOpcode::G_FNEARBYINT*//*Label 113*/ GIMT_Encode4(34605), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5185 /* 21962 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE0*//*Label 114*/ GIMT_Encode4(34627),
5186 /* 21966 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE1*//*Label 115*/ GIMT_Encode4(34639),
5187 /* 21970 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE2*//*Label 116*/ GIMT_Encode4(34651),
5188 /* 21974 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE3*//*Label 117*/ GIMT_Encode4(34663),
5189 /* 21978 */ // Label 0: @21978
5190 /* 21978 */ GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(21989), // Rule ID 19 //
5191 /* 21983 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
5192 /* 21986 */ // MIs[0] d
5193 /* 21986 */ // No operand predicates
5194 /* 21986 */ // MIs[0] s
5195 /* 21986 */ // No operand predicates
5196 /* 21986 */ // Combiner Rule #19: copy_prop
5197 /* 21986 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
5198 /* 21989 */ // Label 119: @21989
5199 /* 21989 */ GIM_Reject,
5200 /* 21990 */ // Label 1: @21990
5201 /* 21990 */ GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(22145),
5202 /* 21995 */ GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_i32,
5203 /* 21998 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i32,
5204 /* 22001 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_i32,
5205 /* 22004 */ GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(22074), // Rule ID 497 //
5206 /* 22009 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule354Enabled),
5207 /* 22012 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/254,
5208 /* 22016 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5209 /* 22020 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
5210 /* 22024 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_i1,
5211 /* 22028 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
5212 /* 22032 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner68),
5213 /* 22036 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5214 /* 22038 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/254,
5215 /* 22041 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5216 /* 22051 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5217 /* 22054 */ // Combiner Rule #354: anonymous_55728
5218 /* 22054 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UADDE),
5219 /* 22057 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5220 /* 22059 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5221 /* 22064 */ GIR_RootToRootCopy, /*OpIdx*/2, // src
5222 /* 22066 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5223 /* 22069 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // carry
5224 /* 22073 */ GIR_EraseRootFromParent_Done,
5225 /* 22074 */ // Label 121: @22074
5226 /* 22074 */ GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(22144), // Rule ID 496 //
5227 /* 22079 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule353Enabled),
5228 /* 22082 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/254,
5229 /* 22086 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5230 /* 22090 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
5231 /* 22094 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_i1,
5232 /* 22098 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
5233 /* 22102 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner67),
5234 /* 22106 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5235 /* 22108 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/254,
5236 /* 22111 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5237 /* 22121 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5238 /* 22124 */ // Combiner Rule #353: anonymous_55727
5239 /* 22124 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UADDE),
5240 /* 22127 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5241 /* 22129 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5242 /* 22134 */ GIR_RootToRootCopy, /*OpIdx*/1, // src
5243 /* 22136 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5244 /* 22139 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // carry
5245 /* 22143 */ GIR_EraseRootFromParent_Done,
5246 /* 22144 */ // Label 122: @22144
5247 /* 22144 */ GIM_Reject,
5248 /* 22145 */ // Label 120: @22145
5249 /* 22145 */ GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(22233), // Rule ID 453 //
5250 /* 22150 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule320Enabled),
5251 /* 22153 */ // MIs[0] dst
5252 /* 22153 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5253 /* 22157 */ // MIs[0] __add_shift_match_0.shl_neg
5254 /* 22157 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5255 /* 22161 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
5256 /* 22165 */ // MIs[1] __add_shift_match_0.neg_y
5257 /* 22165 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5258 /* 22169 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5259 /* 22173 */ // MIs[2] __add_shift_match_0.zero
5260 /* 22173 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
5261 /* 22177 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5262 /* 22181 */ // MIs[3] Operand 1
5263 /* 22181 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
5264 /* 22192 */ // MIs[2] y
5265 /* 22192 */ // No operand predicates
5266 /* 22192 */ // MIs[1] n
5267 /* 22192 */ // No operand predicates
5268 /* 22192 */ // MIs[0] x
5269 /* 22192 */ // No operand predicates
5270 /* 22192 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner58),
5271 /* 22196 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5272 /* 22198 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5273 /* 22201 */ // Combiner Rule #320: add_shift @ [__add_shift_match_0[1]]
5274 /* 22201 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
5275 /* 22204 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5276 /* 22209 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
5277 /* 22213 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
5278 /* 22217 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5279 /* 22221 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
5280 /* 22225 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // x
5281 /* 22229 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5282 /* 22232 */ GIR_EraseRootFromParent_Done,
5283 /* 22233 */ // Label 123: @22233
5284 /* 22233 */ GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(22321), // Rule ID 452 //
5285 /* 22238 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule320Enabled),
5286 /* 22241 */ // MIs[0] dst
5287 /* 22241 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5288 /* 22245 */ // MIs[0] x
5289 /* 22245 */ // No operand predicates
5290 /* 22245 */ // MIs[0] __add_shift_match_0.shl_neg
5291 /* 22245 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5292 /* 22249 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
5293 /* 22253 */ // MIs[1] __add_shift_match_0.neg_y
5294 /* 22253 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5295 /* 22257 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5296 /* 22261 */ // MIs[2] __add_shift_match_0.zero
5297 /* 22261 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
5298 /* 22265 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5299 /* 22269 */ // MIs[3] Operand 1
5300 /* 22269 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
5301 /* 22280 */ // MIs[2] y
5302 /* 22280 */ // No operand predicates
5303 /* 22280 */ // MIs[1] n
5304 /* 22280 */ // No operand predicates
5305 /* 22280 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner57),
5306 /* 22284 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5307 /* 22286 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5308 /* 22289 */ // Combiner Rule #320: add_shift @ [__add_shift_match_0[0]]
5309 /* 22289 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
5310 /* 22292 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5311 /* 22297 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
5312 /* 22301 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
5313 /* 22305 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5314 /* 22309 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
5315 /* 22313 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // x
5316 /* 22317 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5317 /* 22320 */ GIR_EraseRootFromParent_Done,
5318 /* 22321 */ // Label 124: @22321
5319 /* 22321 */ GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(22355), // Rule ID 2 //
5320 /* 22326 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
5321 /* 22329 */ // MIs[0] root
5322 /* 22329 */ // No operand predicates
5323 /* 22329 */ // MIs[0] sub
5324 /* 22329 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5325 /* 22333 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5326 /* 22337 */ // MIs[1] Operand 1
5327 /* 22337 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
5328 /* 22341 */ // MIs[1] A
5329 /* 22341 */ // No operand predicates
5330 /* 22341 */ // MIs[0] B
5331 /* 22341 */ // No operand predicates
5332 /* 22341 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5333 /* 22343 */ // Combiner Rule #2: ZeroMinusAPlusB
5334 /* 22343 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5335 /* 22346 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5336 /* 22348 */ GIR_RootToRootCopy, /*OpIdx*/2, // B
5337 /* 22350 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // A
5338 /* 22354 */ GIR_EraseRootFromParent_Done,
5339 /* 22355 */ // Label 125: @22355
5340 /* 22355 */ GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(22404), // Rule ID 162 //
5341 /* 22360 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled),
5342 /* 22363 */ // MIs[0] dst
5343 /* 22363 */ // No operand predicates
5344 /* 22363 */ // MIs[0] __simplify_add_to_sub_match_0.neg
5345 /* 22363 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5346 /* 22367 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5347 /* 22371 */ // MIs[1] __simplify_add_to_sub_match_0.zero
5348 /* 22371 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5349 /* 22375 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5350 /* 22379 */ // MIs[2] Operand 1
5351 /* 22379 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(0),
5352 /* 22390 */ // MIs[1] newrhs
5353 /* 22390 */ // No operand predicates
5354 /* 22390 */ // MIs[0] newlhs
5355 /* 22390 */ // No operand predicates
5356 /* 22390 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5357 /* 22392 */ // Combiner Rule #117: simplify_add_to_sub @ [__simplify_add_to_sub_match_0[0]]
5358 /* 22392 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5359 /* 22395 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5360 /* 22397 */ GIR_RootToRootCopy, /*OpIdx*/2, // newlhs
5361 /* 22399 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // newrhs
5362 /* 22403 */ GIR_EraseRootFromParent_Done,
5363 /* 22404 */ // Label 126: @22404
5364 /* 22404 */ GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(22441), // Rule ID 18 //
5365 /* 22409 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
5366 /* 22412 */ // MIs[0] root
5367 /* 22412 */ // No operand predicates
5368 /* 22412 */ // MIs[0] sub
5369 /* 22412 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5370 /* 22416 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5371 /* 22420 */ // MIs[1] A
5372 /* 22420 */ // No operand predicates
5373 /* 22420 */ // MIs[1] c1
5374 /* 22420 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5375 /* 22424 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5376 /* 22428 */ // MIs[2] imm1
5377 /* 22428 */ // No operand predicates
5378 /* 22428 */ // MIs[0] c2
5379 /* 22428 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5380 /* 22432 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5381 /* 22436 */ // MIs[3] imm2
5382 /* 22436 */ // No operand predicates
5383 /* 22436 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5384 /* 22438 */ // Combiner Rule #18: AMinusC1PlusC2
5385 /* 22438 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
5386 /* 22441 */ // Label 127: @22441
5387 /* 22441 */ GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(22475), // Rule ID 5 //
5388 /* 22446 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
5389 /* 22449 */ // MIs[0] root
5390 /* 22449 */ // No operand predicates
5391 /* 22449 */ // MIs[0] sub
5392 /* 22449 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5393 /* 22453 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5394 /* 22457 */ // MIs[1] B
5395 /* 22457 */ // No operand predicates
5396 /* 22457 */ // MIs[1] A
5397 /* 22457 */ // No operand predicates
5398 /* 22457 */ // MIs[0] A
5399 /* 22457 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
5400 /* 22462 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5401 /* 22467 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5402 /* 22469 */ // Combiner Rule #5: BMinusAPlusA
5403 /* 22469 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5404 /* 22474 */ GIR_EraseRootFromParent_Done,
5405 /* 22475 */ // Label 128: @22475
5406 /* 22475 */ GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(22509), // Rule ID 150 //
5407 /* 22480 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
5408 /* 22483 */ // MIs[0] dst
5409 /* 22483 */ // No operand predicates
5410 /* 22483 */ // MIs[0] __add_sub_reg_match_0.tmp
5411 /* 22483 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5412 /* 22487 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5413 /* 22491 */ // MIs[1] src
5414 /* 22491 */ // No operand predicates
5415 /* 22491 */ // MIs[1] __add_sub_reg_match_0.x
5416 /* 22491 */ // No operand predicates
5417 /* 22491 */ // MIs[0] __add_sub_reg_match_0.x
5418 /* 22491 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
5419 /* 22496 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5420 /* 22501 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5421 /* 22503 */ // Combiner Rule #105: add_sub_reg @ [__add_sub_reg_match_0[1]]
5422 /* 22503 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5423 /* 22508 */ GIR_EraseRootFromParent_Done,
5424 /* 22509 */ // Label 129: @22509
5425 /* 22509 */ GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(22554), // Rule ID 7 //
5426 /* 22514 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
5427 /* 22517 */ // MIs[0] root
5428 /* 22517 */ // No operand predicates
5429 /* 22517 */ // MIs[0] sub1
5430 /* 22517 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5431 /* 22521 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5432 /* 22525 */ // MIs[1] A
5433 /* 22525 */ // No operand predicates
5434 /* 22525 */ // MIs[1] B
5435 /* 22525 */ // No operand predicates
5436 /* 22525 */ // MIs[0] sub2
5437 /* 22525 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5438 /* 22529 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5439 /* 22533 */ // MIs[2] B
5440 /* 22533 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
5441 /* 22538 */ // MIs[2] C
5442 /* 22538 */ // No operand predicates
5443 /* 22538 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5444 /* 22540 */ // Combiner Rule #7: AMinusBPlusBMinusC
5445 /* 22540 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5446 /* 22543 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5447 /* 22545 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5448 /* 22549 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
5449 /* 22553 */ GIR_EraseRootFromParent_Done,
5450 /* 22554 */ // Label 130: @22554
5451 /* 22554 */ GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(22599), // Rule ID 6 //
5452 /* 22559 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
5453 /* 22562 */ // MIs[0] root
5454 /* 22562 */ // No operand predicates
5455 /* 22562 */ // MIs[0] sub1
5456 /* 22562 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5457 /* 22566 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5458 /* 22570 */ // MIs[1] A
5459 /* 22570 */ // No operand predicates
5460 /* 22570 */ // MIs[1] B
5461 /* 22570 */ // No operand predicates
5462 /* 22570 */ // MIs[0] sub2
5463 /* 22570 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5464 /* 22574 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5465 /* 22578 */ // MIs[2] C
5466 /* 22578 */ // No operand predicates
5467 /* 22578 */ // MIs[2] A
5468 /* 22578 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5469 /* 22583 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5470 /* 22585 */ // Combiner Rule #6: AMinusBPlusCMinusA
5471 /* 22585 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5472 /* 22588 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5473 /* 22590 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
5474 /* 22594 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
5475 /* 22598 */ GIR_EraseRootFromParent_Done,
5476 /* 22599 */ // Label 131: @22599
5477 /* 22599 */ GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(22654), // Rule ID 22 //
5478 /* 22604 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
5479 /* 22607 */ // MIs[0] dst
5480 /* 22607 */ // No operand predicates
5481 /* 22607 */ // MIs[0] __add_p2i_to_ptradd_match_0.x
5482 /* 22607 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5483 /* 22611 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_PTRTOINT),
5484 /* 22615 */ // MIs[1] ptr
5485 /* 22615 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
5486 /* 22619 */ // MIs[0] other
5487 /* 22619 */ // No operand predicates
5488 /* 22619 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
5489 /* 22623 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5490 /* 22625 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5491 /* 22628 */ // Combiner Rule #22: add_p2i_to_ptradd @ [__add_p2i_to_ptradd_match_0[0]]
5492 /* 22628 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTR_ADD),
5493 /* 22631 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5494 /* 22636 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
5495 /* 22640 */ GIR_RootToRootCopy, /*OpIdx*/2, // other
5496 /* 22642 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTRTOINT),
5497 /* 22646 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
5498 /* 22650 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5499 /* 22653 */ GIR_EraseRootFromParent_Done,
5500 /* 22654 */ // Label 132: @22654
5501 /* 22654 */ GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(22689), // Rule ID 46 //
5502 /* 22659 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
5503 /* 22662 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
5504 /* 22668 */ // MIs[0] root
5505 /* 22668 */ // No operand predicates
5506 /* 22668 */ // MIs[0] left
5507 /* 22668 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5508 /* 22672 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
5509 /* 22676 */ // MIs[1] imm1
5510 /* 22676 */ // No operand predicates
5511 /* 22676 */ // MIs[0] right
5512 /* 22676 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5513 /* 22680 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_VSCALE),
5514 /* 22684 */ // MIs[2] imm2
5515 /* 22684 */ // No operand predicates
5516 /* 22684 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5517 /* 22686 */ // Combiner Rule #42: add_of_vscale
5518 /* 22686 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
5519 /* 22689 */ // Label 133: @22689
5520 /* 22689 */ GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(22713), // Rule ID 104 //
5521 /* 22694 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5522 /* 22697 */ // MIs[0] dst
5523 /* 22697 */ // No operand predicates
5524 /* 22697 */ // MIs[0] __propagate_undef_any_op_match_0.x
5525 /* 22697 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5526 /* 22701 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5527 /* 22705 */ // MIs[0] __propagate_undef_any_op_match_0.y
5528 /* 22705 */ // No operand predicates
5529 /* 22705 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5530 /* 22707 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[0]]
5531 /* 22707 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5532 /* 22710 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5533 /* 22712 */ GIR_EraseRootFromParent_Done,
5534 /* 22713 */ // Label 134: @22713
5535 /* 22713 */ GIM_Try, /*On fail goto*//*Label 135*/ GIMT_Encode4(22747), // Rule ID 3 //
5536 /* 22718 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
5537 /* 22721 */ // MIs[0] root
5538 /* 22721 */ // No operand predicates
5539 /* 22721 */ // MIs[0] A
5540 /* 22721 */ // No operand predicates
5541 /* 22721 */ // MIs[0] sub
5542 /* 22721 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5543 /* 22725 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5544 /* 22729 */ // MIs[1] Operand 1
5545 /* 22729 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
5546 /* 22733 */ // MIs[1] B
5547 /* 22733 */ // No operand predicates
5548 /* 22733 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5549 /* 22735 */ // Combiner Rule #3: APlusZeroMinusB
5550 /* 22735 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5551 /* 22738 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5552 /* 22740 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
5553 /* 22742 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
5554 /* 22746 */ GIR_EraseRootFromParent_Done,
5555 /* 22747 */ // Label 135: @22747
5556 /* 22747 */ GIM_Try, /*On fail goto*//*Label 136*/ GIMT_Encode4(22796), // Rule ID 163 //
5557 /* 22752 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled),
5558 /* 22755 */ // MIs[0] dst
5559 /* 22755 */ // No operand predicates
5560 /* 22755 */ // MIs[0] newlhs
5561 /* 22755 */ // No operand predicates
5562 /* 22755 */ // MIs[0] __simplify_add_to_sub_match_0.neg
5563 /* 22755 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5564 /* 22759 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5565 /* 22763 */ // MIs[1] __simplify_add_to_sub_match_0.zero
5566 /* 22763 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5567 /* 22767 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5568 /* 22771 */ // MIs[2] Operand 1
5569 /* 22771 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(0),
5570 /* 22782 */ // MIs[1] newrhs
5571 /* 22782 */ // No operand predicates
5572 /* 22782 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5573 /* 22784 */ // Combiner Rule #117: simplify_add_to_sub @ [__simplify_add_to_sub_match_0[1]]
5574 /* 22784 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5575 /* 22787 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5576 /* 22789 */ GIR_RootToRootCopy, /*OpIdx*/1, // newlhs
5577 /* 22791 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // newrhs
5578 /* 22795 */ GIR_EraseRootFromParent_Done,
5579 /* 22796 */ // Label 136: @22796
5580 /* 22796 */ GIM_Try, /*On fail goto*//*Label 137*/ GIMT_Encode4(22830), // Rule ID 4 //
5581 /* 22801 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
5582 /* 22804 */ // MIs[0] root
5583 /* 22804 */ // No operand predicates
5584 /* 22804 */ // MIs[0] A
5585 /* 22804 */ // No operand predicates
5586 /* 22804 */ // MIs[0] sub
5587 /* 22804 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5588 /* 22808 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5589 /* 22812 */ // MIs[1] B
5590 /* 22812 */ // No operand predicates
5591 /* 22812 */ // MIs[1] A
5592 /* 22812 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5593 /* 22817 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5594 /* 22822 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5595 /* 22824 */ // Combiner Rule #4: APlusBMinusB
5596 /* 22824 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5597 /* 22829 */ GIR_EraseRootFromParent_Done,
5598 /* 22830 */ // Label 137: @22830
5599 /* 22830 */ GIM_Try, /*On fail goto*//*Label 138*/ GIMT_Encode4(22864), // Rule ID 149 //
5600 /* 22835 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
5601 /* 22838 */ // MIs[0] dst
5602 /* 22838 */ // No operand predicates
5603 /* 22838 */ // MIs[0] __add_sub_reg_match_0.x
5604 /* 22838 */ // No operand predicates
5605 /* 22838 */ // MIs[0] __add_sub_reg_match_0.tmp
5606 /* 22838 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5607 /* 22842 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5608 /* 22846 */ // MIs[1] src
5609 /* 22846 */ // No operand predicates
5610 /* 22846 */ // MIs[1] __add_sub_reg_match_0.x
5611 /* 22846 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5612 /* 22851 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5613 /* 22856 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5614 /* 22858 */ // Combiner Rule #105: add_sub_reg @ [__add_sub_reg_match_0[0]]
5615 /* 22858 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5616 /* 22863 */ GIR_EraseRootFromParent_Done,
5617 /* 22864 */ // Label 138: @22864
5618 /* 22864 */ GIM_Try, /*On fail goto*//*Label 139*/ GIMT_Encode4(22909), // Rule ID 8 //
5619 /* 22869 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
5620 /* 22872 */ // MIs[0] root
5621 /* 22872 */ // No operand predicates
5622 /* 22872 */ // MIs[0] A
5623 /* 22872 */ // No operand predicates
5624 /* 22872 */ // MIs[0] sub1
5625 /* 22872 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5626 /* 22876 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5627 /* 22880 */ // MIs[1] B
5628 /* 22880 */ // No operand predicates
5629 /* 22880 */ // MIs[1] add1
5630 /* 22880 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5631 /* 22884 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
5632 /* 22888 */ // MIs[2] A
5633 /* 22888 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
5634 /* 22893 */ // MIs[2] C
5635 /* 22893 */ // No operand predicates
5636 /* 22893 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5637 /* 22895 */ // Combiner Rule #8: APlusBMinusAplusC
5638 /* 22895 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5639 /* 22898 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5640 /* 22900 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
5641 /* 22904 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
5642 /* 22908 */ GIR_EraseRootFromParent_Done,
5643 /* 22909 */ // Label 139: @22909
5644 /* 22909 */ GIM_Try, /*On fail goto*//*Label 140*/ GIMT_Encode4(22954), // Rule ID 10 //
5645 /* 22914 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
5646 /* 22917 */ // MIs[0] root
5647 /* 22917 */ // No operand predicates
5648 /* 22917 */ // MIs[0] A
5649 /* 22917 */ // No operand predicates
5650 /* 22917 */ // MIs[0] sub1
5651 /* 22917 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5652 /* 22921 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5653 /* 22925 */ // MIs[1] B
5654 /* 22925 */ // No operand predicates
5655 /* 22925 */ // MIs[1] add1
5656 /* 22925 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5657 /* 22929 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
5658 /* 22933 */ // MIs[2] C
5659 /* 22933 */ // No operand predicates
5660 /* 22933 */ // MIs[2] A
5661 /* 22933 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5662 /* 22938 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5663 /* 22940 */ // Combiner Rule #10: APlusBMinusCPlusA
5664 /* 22940 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5665 /* 22943 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5666 /* 22945 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
5667 /* 22949 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
5668 /* 22953 */ GIR_EraseRootFromParent_Done,
5669 /* 22954 */ // Label 140: @22954
5670 /* 22954 */ GIM_Try, /*On fail goto*//*Label 141*/ GIMT_Encode4(23009), // Rule ID 23 //
5671 /* 22959 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
5672 /* 22962 */ // MIs[0] dst
5673 /* 22962 */ // No operand predicates
5674 /* 22962 */ // MIs[0] other
5675 /* 22962 */ // No operand predicates
5676 /* 22962 */ // MIs[0] __add_p2i_to_ptradd_match_0.x
5677 /* 22962 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5678 /* 22966 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_PTRTOINT),
5679 /* 22970 */ // MIs[1] ptr
5680 /* 22970 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
5681 /* 22974 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
5682 /* 22978 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5683 /* 22980 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5684 /* 22983 */ // Combiner Rule #22: add_p2i_to_ptradd @ [__add_p2i_to_ptradd_match_0[1]]
5685 /* 22983 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTR_ADD),
5686 /* 22986 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5687 /* 22991 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
5688 /* 22995 */ GIR_RootToRootCopy, /*OpIdx*/1, // other
5689 /* 22997 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTRTOINT),
5690 /* 23001 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
5691 /* 23005 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5692 /* 23008 */ GIR_EraseRootFromParent_Done,
5693 /* 23009 */ // Label 141: @23009
5694 /* 23009 */ GIM_Try, /*On fail goto*//*Label 142*/ GIMT_Encode4(23033), // Rule ID 107 //
5695 /* 23014 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5696 /* 23017 */ // MIs[0] dst
5697 /* 23017 */ // No operand predicates
5698 /* 23017 */ // MIs[0] __propagate_undef_any_op_match_0.x
5699 /* 23017 */ // No operand predicates
5700 /* 23017 */ // MIs[0] __propagate_undef_any_op_match_0.y
5701 /* 23017 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5702 /* 23021 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5703 /* 23025 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5704 /* 23027 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[3]]
5705 /* 23027 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5706 /* 23030 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5707 /* 23032 */ GIR_EraseRootFromParent_Done,
5708 /* 23033 */ // Label 142: @23033
5709 /* 23033 */ GIM_Try, /*On fail goto*//*Label 143*/ GIMT_Encode4(23056), // Rule ID 119 //
5710 /* 23038 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
5711 /* 23041 */ // MIs[0] dst
5712 /* 23041 */ // No operand predicates
5713 /* 23041 */ // MIs[0] lhs
5714 /* 23041 */ // No operand predicates
5715 /* 23041 */ // MIs[0] Operand 2
5716 /* 23041 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5717 /* 23045 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5718 /* 23050 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[1]]
5719 /* 23050 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5720 /* 23055 */ GIR_EraseRootFromParent_Done,
5721 /* 23056 */ // Label 143: @23056
5722 /* 23056 */ GIM_Try, /*On fail goto*//*Label 144*/ GIMT_Encode4(23081), // Rule ID 381 //
5723 /* 23061 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule249Enabled),
5724 /* 23064 */ // MIs[0] dst
5725 /* 23064 */ // No operand predicates
5726 /* 23064 */ // MIs[0] lhs
5727 /* 23064 */ // No operand predicates
5728 /* 23064 */ // MIs[0] rhs
5729 /* 23064 */ // No operand predicates
5730 /* 23064 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
5731 /* 23068 */ // Combiner Rule #249: G_ADD_commute_constant_to_rhs
5732 /* 23068 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5733 /* 23071 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5734 /* 23073 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
5735 /* 23075 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
5736 /* 23077 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
5737 /* 23080 */ GIR_EraseRootFromParent_Done,
5738 /* 23081 */ // Label 144: @23081
5739 /* 23081 */ GIM_Try, /*On fail goto*//*Label 145*/ GIMT_Encode4(23092), // Rule ID 171 //
5740 /* 23086 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
5741 /* 23089 */ // MIs[0] root
5742 /* 23089 */ // No operand predicates
5743 /* 23089 */ // MIs[0] src1
5744 /* 23089 */ // No operand predicates
5745 /* 23089 */ // MIs[0] src2
5746 /* 23089 */ // No operand predicates
5747 /* 23089 */ // Combiner Rule #121: reassoc_comm_binops
5748 /* 23089 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner41),
5749 /* 23092 */ // Label 145: @23092
5750 /* 23092 */ GIM_Try, /*On fail goto*//*Label 146*/ GIMT_Encode4(23103), // Rule ID 280 //
5751 /* 23097 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
5752 /* 23100 */ // MIs[0] d
5753 /* 23100 */ // No operand predicates
5754 /* 23100 */ // MIs[0] mi.src0
5755 /* 23100 */ // No operand predicates
5756 /* 23100 */ // MIs[0] mi.src1
5757 /* 23100 */ // No operand predicates
5758 /* 23100 */ // Combiner Rule #210: constant_fold_binop @ [mi[0]]
5759 /* 23100 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
5760 /* 23103 */ // Label 146: @23103
5761 /* 23103 */ GIM_Try, /*On fail goto*//*Label 147*/ GIMT_Encode4(23114), // Rule ID 341 //
5762 /* 23108 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
5763 /* 23111 */ // MIs[0] root
5764 /* 23111 */ // No operand predicates
5765 /* 23111 */ // MIs[0] mi.x
5766 /* 23111 */ // No operand predicates
5767 /* 23111 */ // MIs[0] mi.y
5768 /* 23111 */ // No operand predicates
5769 /* 23111 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[0]]
5770 /* 23111 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
5771 /* 23114 */ // Label 147: @23114
5772 /* 23114 */ GIM_Reject,
5773 /* 23115 */ // Label 2: @23115
5774 /* 23115 */ GIM_Try, /*On fail goto*//*Label 148*/ GIMT_Encode4(23194), // Rule ID 498 //
5775 /* 23120 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule355Enabled),
5776 /* 23123 */ GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_i32,
5777 /* 23126 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i32,
5778 /* 23129 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_i32,
5779 /* 23132 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/254,
5780 /* 23136 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5781 /* 23140 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
5782 /* 23144 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_i1,
5783 /* 23148 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
5784 /* 23152 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner67),
5785 /* 23156 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5786 /* 23158 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/254,
5787 /* 23161 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5788 /* 23171 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5789 /* 23174 */ // Combiner Rule #355: anonymous_55729
5790 /* 23174 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_USUBE),
5791 /* 23177 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5792 /* 23179 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5793 /* 23184 */ GIR_RootToRootCopy, /*OpIdx*/1, // src
5794 /* 23186 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5795 /* 23189 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // carry
5796 /* 23193 */ GIR_EraseRootFromParent_Done,
5797 /* 23194 */ // Label 148: @23194
5798 /* 23194 */ GIM_Try, /*On fail goto*//*Label 149*/ GIMT_Encode4(23271), // Rule ID 454 //
5799 /* 23199 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule321Enabled),
5800 /* 23202 */ // MIs[0] dst
5801 /* 23202 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5802 /* 23206 */ // MIs[0] sub1
5803 /* 23206 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5804 /* 23210 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5805 /* 23214 */ // MIs[1] a
5806 /* 23214 */ // No operand predicates
5807 /* 23214 */ // MIs[1] b
5808 /* 23214 */ // No operand predicates
5809 /* 23214 */ // MIs[0] Operand 2
5810 /* 23214 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
5811 /* 23218 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
5812 /* 23222 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5813 /* 23224 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5814 /* 23227 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
5815 /* 23237 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5816 /* 23240 */ // Combiner Rule #321: sub_one_from_sub
5817 /* 23240 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
5818 /* 23243 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5819 /* 23248 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // b
5820 /* 23252 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5821 /* 23255 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5822 /* 23259 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
5823 /* 23263 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5824 /* 23266 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
5825 /* 23270 */ GIR_EraseRootFromParent_Done,
5826 /* 23271 */ // Label 149: @23271
5827 /* 23271 */ GIM_Try, /*On fail goto*//*Label 150*/ GIMT_Encode4(23365), // Rule ID 460 //
5828 /* 23276 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule325Enabled),
5829 /* 23279 */ // MIs[0] root
5830 /* 23279 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5831 /* 23283 */ // MIs[0] Operand 1
5832 /* 23283 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5833 /* 23287 */ // MIs[0] max
5834 /* 23287 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5835 /* 23291 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SMAX),
5836 /* 23295 */ // MIs[1] A
5837 /* 23295 */ // No operand predicates
5838 /* 23295 */ // MIs[1] sub
5839 /* 23295 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5840 /* 23299 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5841 /* 23303 */ // MIs[2] Operand 1
5842 /* 23303 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/1, 0,
5843 /* 23307 */ // MIs[2] A
5844 /* 23307 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5845 /* 23312 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner59),
5846 /* 23316 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5847 /* 23318 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5848 /* 23321 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5849 /* 23331 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5850 /* 23334 */ // Combiner Rule #325: SubSmaxSub
5851 /* 23334 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5852 /* 23337 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5853 /* 23342 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5854 /* 23345 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5855 /* 23349 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMIN),
5856 /* 23353 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5857 /* 23357 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // A
5858 /* 23361 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5859 /* 23364 */ GIR_EraseRootFromParent_Done,
5860 /* 23365 */ // Label 150: @23365
5861 /* 23365 */ GIM_Try, /*On fail goto*//*Label 151*/ GIMT_Encode4(23459), // Rule ID 461 //
5862 /* 23370 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule326Enabled),
5863 /* 23373 */ // MIs[0] root
5864 /* 23373 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5865 /* 23377 */ // MIs[0] Operand 1
5866 /* 23377 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5867 /* 23381 */ // MIs[0] max
5868 /* 23381 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5869 /* 23385 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMAX),
5870 /* 23389 */ // MIs[1] A
5871 /* 23389 */ // No operand predicates
5872 /* 23389 */ // MIs[1] sub
5873 /* 23389 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5874 /* 23393 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5875 /* 23397 */ // MIs[2] Operand 1
5876 /* 23397 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/1, 0,
5877 /* 23401 */ // MIs[2] A
5878 /* 23401 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5879 /* 23406 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner59),
5880 /* 23410 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5881 /* 23412 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5882 /* 23415 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5883 /* 23425 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5884 /* 23428 */ // Combiner Rule #326: SubUmaxSub
5885 /* 23428 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5886 /* 23431 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5887 /* 23436 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5888 /* 23439 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5889 /* 23443 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMIN),
5890 /* 23447 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5891 /* 23451 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // A
5892 /* 23455 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5893 /* 23458 */ GIR_EraseRootFromParent_Done,
5894 /* 23459 */ // Label 151: @23459
5895 /* 23459 */ GIM_Try, /*On fail goto*//*Label 152*/ GIMT_Encode4(23499), // Rule ID 458 //
5896 /* 23464 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule323Enabled),
5897 /* 23467 */ // MIs[0] root
5898 /* 23467 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5899 /* 23471 */ // MIs[0] Operand 1
5900 /* 23471 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 255,
5901 /* 23475 */ // MIs[0] op1
5902 /* 23475 */ // No operand predicates
5903 /* 23475 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5904 /* 23478 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(18446744073709551615u),
5905 /* 23488 */ // Combiner Rule #323: sub_minus_one
5906 /* 23488 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
5907 /* 23491 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5908 /* 23493 */ GIR_RootToRootCopy, /*OpIdx*/2, // op1
5909 /* 23495 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5910 /* 23498 */ GIR_EraseRootFromParent_Done,
5911 /* 23499 */ // Label 152: @23499
5912 /* 23499 */ GIM_Try, /*On fail goto*//*Label 153*/ GIMT_Encode4(23551), // Rule ID 377 //
5913 /* 23504 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule245Enabled),
5914 /* 23507 */ // MIs[0] dst
5915 /* 23507 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5916 /* 23511 */ // MIs[0] x
5917 /* 23511 */ // No operand predicates
5918 /* 23511 */ // MIs[0] sum
5919 /* 23511 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5920 /* 23515 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5921 /* 23519 */ // MIs[1] y
5922 /* 23519 */ // No operand predicates
5923 /* 23519 */ // MIs[1] z
5924 /* 23519 */ // No operand predicates
5925 /* 23519 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner45),
5926 /* 23523 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5927 /* 23525 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5928 /* 23528 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5929 /* 23538 */ // Combiner Rule #245: sub_add_neg_rhs
5930 /* 23538 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5931 /* 23541 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5932 /* 23543 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5933 /* 23546 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // y
5934 /* 23550 */ GIR_EraseRootFromParent_Done,
5935 /* 23551 */ // Label 153: @23551
5936 /* 23551 */ GIM_Try, /*On fail goto*//*Label 154*/ GIMT_Encode4(23603), // Rule ID 378 //
5937 /* 23556 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule246Enabled),
5938 /* 23559 */ // MIs[0] dst
5939 /* 23559 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5940 /* 23563 */ // MIs[0] x
5941 /* 23563 */ // No operand predicates
5942 /* 23563 */ // MIs[0] sum
5943 /* 23563 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5944 /* 23567 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5945 /* 23571 */ // MIs[1] y
5946 /* 23571 */ // No operand predicates
5947 /* 23571 */ // MIs[1] z
5948 /* 23571 */ // No operand predicates
5949 /* 23571 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner46),
5950 /* 23575 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5951 /* 23577 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5952 /* 23580 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5953 /* 23590 */ // Combiner Rule #246: sub_add_neg_lhs
5954 /* 23590 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5955 /* 23593 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5956 /* 23595 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5957 /* 23598 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // z
5958 /* 23602 */ GIR_EraseRootFromParent_Done,
5959 /* 23603 */ // Label 154: @23603
5960 /* 23603 */ GIM_Try, /*On fail goto*//*Label 155*/ GIMT_Encode4(23701), // Rule ID 459 //
5961 /* 23608 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule324Enabled),
5962 /* 23611 */ // MIs[0] d
5963 /* 23611 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5964 /* 23615 */ // MIs[0] a
5965 /* 23615 */ // No operand predicates
5966 /* 23615 */ // MIs[0] mul
5967 /* 23615 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5968 /* 23619 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
5969 /* 23623 */ GIM_CheckHasOneUse, /*MI*/1,
5970 /* 23625 */ // MIs[1] x
5971 /* 23625 */ // No operand predicates
5972 /* 23625 */ // MIs[1] c
5973 /* 23625 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5974 /* 23629 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5975 /* 23633 */ // MIs[2] imm
5976 /* 23633 */ // No operand predicates
5977 /* 23633 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5978 /* 23635 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
5979 /* 23638 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5980 /* 23641 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5981 /* 23651 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5982 /* 23654 */ // Combiner Rule #324: sub_of_mul_const
5983 /* 23654 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5984 /* 23657 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5985 /* 23662 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5986 /* 23665 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // c
5987 /* 23669 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MUL),
5988 /* 23673 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5989 /* 23678 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
5990 /* 23682 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5991 /* 23685 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5992 /* 23689 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // d
5993 /* 23693 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // a
5994 /* 23697 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5995 /* 23700 */ GIR_EraseRootFromParent_Done,
5996 /* 23701 */ // Label 155: @23701
5997 /* 23701 */ GIM_Try, /*On fail goto*//*Label 156*/ GIMT_Encode4(23762), // Rule ID 9 //
5998 /* 23706 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
5999 /* 23709 */ // MIs[0] root
6000 /* 23709 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
6001 /* 23713 */ // MIs[0] A
6002 /* 23713 */ // No operand predicates
6003 /* 23713 */ // MIs[0] sub1
6004 /* 23713 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6005 /* 23717 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
6006 /* 23721 */ // MIs[1] B
6007 /* 23721 */ // No operand predicates
6008 /* 23721 */ // MIs[1] C
6009 /* 23721 */ // No operand predicates
6010 /* 23721 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
6011 /* 23725 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6012 /* 23727 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6013 /* 23730 */ // Combiner Rule #9: AMinusBMinusC
6014 /* 23730 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
6015 /* 23733 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6016 /* 23738 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // C
6017 /* 23742 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
6018 /* 23746 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
6019 /* 23750 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6020 /* 23754 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // A
6021 /* 23758 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6022 /* 23761 */ GIR_EraseRootFromParent_Done,
6023 /* 23762 */ // Label 156: @23762
6024 /* 23762 */ GIM_Try, /*On fail goto*//*Label 157*/ GIMT_Encode4(23807), // Rule ID 0 //
6025 /* 23767 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
6026 /* 23770 */ // MIs[0] root
6027 /* 23770 */ // No operand predicates
6028 /* 23770 */ // MIs[0] add1
6029 /* 23770 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6030 /* 23774 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
6031 /* 23778 */ // MIs[1] A
6032 /* 23778 */ // No operand predicates
6033 /* 23778 */ // MIs[1] sub1
6034 /* 23778 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6035 /* 23782 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
6036 /* 23786 */ // MIs[2] B
6037 /* 23786 */ // No operand predicates
6038 /* 23786 */ // MIs[2] C
6039 /* 23786 */ // No operand predicates
6040 /* 23786 */ // MIs[0] B
6041 /* 23786 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
6042 /* 23791 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6043 /* 23793 */ // Combiner Rule #0: APlusBMinusCMinusB
6044 /* 23793 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
6045 /* 23796 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6046 /* 23798 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
6047 /* 23802 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
6048 /* 23806 */ GIR_EraseRootFromParent_Done,
6049 /* 23807 */ // Label 157: @23807
6050 /* 23807 */ GIM_Try, /*On fail goto*//*Label 158*/ GIMT_Encode4(23844), // Rule ID 14 //
6051 /* 23812 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
6052 /* 23815 */ // MIs[0] root
6053 /* 23815 */ // No operand predicates
6054 /* 23815 */ // MIs[0] add
6055 /* 23815 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6056 /* 23819 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
6057 /* 23823 */ // MIs[1] A
6058 /* 23823 */ // No operand predicates
6059 /* 23823 */ // MIs[1] c1
6060 /* 23823 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6061 /* 23827 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6062 /* 23831 */ // MIs[2] imm1
6063 /* 23831 */ // No operand predicates
6064 /* 23831 */ // MIs[0] c2
6065 /* 23831 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6066 /* 23835 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6067 /* 23839 */ // MIs[3] imm2
6068 /* 23839 */ // No operand predicates
6069 /* 23839 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
6070 /* 23841 */ // Combiner Rule #14: APlusC1MinusC2
6071 /* 23841 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
6072 /* 23844 */ // Label 158: @23844
6073 /* 23844 */ GIM_Try, /*On fail goto*//*Label 159*/ GIMT_Encode4(23877), // Rule ID 375 //
6074 /* 23849 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule243Enabled),
6075 /* 23852 */ // MIs[0] dst
6076 /* 23852 */ // No operand predicates
6077 /* 23852 */ // MIs[0] sum
6078 /* 23852 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6079 /* 23856 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
6080 /* 23860 */ // MIs[1] x
6081 /* 23860 */ // No operand predicates
6082 /* 23860 */ // MIs[1] y
6083 /* 23860 */ // No operand predicates
6084 /* 23860 */ // MIs[0] z
6085 /* 23860 */ // No operand predicates
6086 /* 23860 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner43),
6087 /* 23864 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
6088 /* 23869 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6089 /* 23871 */ // Combiner Rule #243: sub_add_reg_rhs
6090 /* 23871 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
6091 /* 23876 */ GIR_EraseRootFromParent_Done,
6092 /* 23877 */ // Label 159: @23877
6093 /* 23877 */ GIM_Try, /*On fail goto*//*Label 160*/ GIMT_Encode4(23910), // Rule ID 376 //
6094 /* 23882 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule244Enabled),
6095 /* 23885 */ // MIs[0] dst
6096 /* 23885 */ // No operand predicates
6097 /* 23885 */ // MIs[0] sum
6098 /* 23885 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6099 /* 23889 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
6100 /* 23893 */ // MIs[1] x
6101 /* 23893 */ // No operand predicates
6102 /* 23893 */ // MIs[1] y
6103 /* 23893 */ // No operand predicates
6104 /* 23893 */ // MIs[0] z
6105 /* 23893 */ // No operand predicates
6106 /* 23893 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner44),
6107 /* 23897 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6108 /* 23902 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6109 /* 23904 */ // Combiner Rule #244: sub_add_reg_lhs
6110 /* 23904 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6111 /* 23909 */ GIR_EraseRootFromParent_Done,
6112 /* 23910 */ // Label 160: @23910
6113 /* 23910 */ GIM_Try, /*On fail goto*//*Label 161*/ GIMT_Encode4(23947), // Rule ID 17 //
6114 /* 23915 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
6115 /* 23918 */ // MIs[0] root
6116 /* 23918 */ // No operand predicates
6117 /* 23918 */ // MIs[0] sub1
6118 /* 23918 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6119 /* 23922 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
6120 /* 23926 */ // MIs[1] c1
6121 /* 23926 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
6122 /* 23930 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6123 /* 23934 */ // MIs[2] imm1
6124 /* 23934 */ // No operand predicates
6125 /* 23934 */ // MIs[1] A
6126 /* 23934 */ // No operand predicates
6127 /* 23934 */ // MIs[0] c2
6128 /* 23934 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6129 /* 23938 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6130 /* 23942 */ // MIs[3] imm2
6131 /* 23942 */ // No operand predicates
6132 /* 23942 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
6133 /* 23944 */ // Combiner Rule #17: C1Minus2MinusC2
6134 /* 23944 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
6135 /* 23947 */ // Label 161: @23947
6136 /* 23947 */ GIM_Try, /*On fail goto*//*Label 162*/ GIMT_Encode4(23992), // Rule ID 1 //
6137 /* 23952 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
6138 /* 23955 */ // MIs[0] root
6139 /* 23955 */ // No operand predicates
6140 /* 23955 */ // MIs[0] sub2
6141 /* 23955 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6142 /* 23959 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
6143 /* 23963 */ // MIs[1] A
6144 /* 23963 */ // No operand predicates
6145 /* 23963 */ // MIs[1] sub1
6146 /* 23963 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6147 /* 23967 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
6148 /* 23971 */ // MIs[2] B
6149 /* 23971 */ // No operand predicates
6150 /* 23971 */ // MIs[2] C
6151 /* 23971 */ // No operand predicates
6152 /* 23971 */ // MIs[0] C
6153 /* 23971 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/2,
6154 /* 23976 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6155 /* 23978 */ // Combiner Rule #1: AMinusBMinusCMinusC
6156 /* 23978 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
6157 /* 23981 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6158 /* 23983 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
6159 /* 23987 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // B
6160 /* 23991 */ GIR_EraseRootFromParent_Done,
6161 /* 23992 */ // Label 162: @23992
6162 /* 23992 */ GIM_Try, /*On fail goto*//*Label 163*/ GIMT_Encode4(24029), // Rule ID 16 //
6163 /* 23997 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
6164 /* 24000 */ // MIs[0] root
6165 /* 24000 */ // No operand predicates
6166 /* 24000 */ // MIs[0] sub1
6167 /* 24000 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6168 /* 24004 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
6169 /* 24008 */ // MIs[1] A
6170 /* 24008 */ // No operand predicates
6171 /* 24008 */ // MIs[1] c1
6172 /* 24008 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6173 /* 24012 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6174 /* 24016 */ // MIs[2] imm1
6175 /* 24016 */ // No operand predicates
6176 /* 24016 */ // MIs[0] c2
6177 /* 24016 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6178 /* 24020 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6179 /* 24024 */ // MIs[3] imm2
6180 /* 24024 */ // No operand predicates
6181 /* 24024 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
6182 /* 24026 */ // Combiner Rule #16: AMinusC1MinusC2
6183 /* 24026 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
6184 /* 24029 */ // Label 163: @24029
6185 /* 24029 */ GIM_Try, /*On fail goto*//*Label 164*/ GIMT_Encode4(24053), // Rule ID 105 //
6186 /* 24034 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6187 /* 24037 */ // MIs[0] dst
6188 /* 24037 */ // No operand predicates
6189 /* 24037 */ // MIs[0] __propagate_undef_any_op_match_0.x
6190 /* 24037 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6191 /* 24041 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6192 /* 24045 */ // MIs[0] __propagate_undef_any_op_match_0.y
6193 /* 24045 */ // No operand predicates
6194 /* 24045 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6195 /* 24047 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[1]]
6196 /* 24047 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6197 /* 24050 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6198 /* 24052 */ GIR_EraseRootFromParent_Done,
6199 /* 24053 */ // Label 164: @24053
6200 /* 24053 */ GIM_Try, /*On fail goto*//*Label 165*/ GIMT_Encode4(24096), // Rule ID 181 //
6201 /* 24058 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled),
6202 /* 24061 */ // MIs[0] dst
6203 /* 24061 */ // No operand predicates
6204 /* 24061 */ // MIs[0] Operand 1
6205 /* 24061 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
6206 /* 24065 */ // MIs[0] and
6207 /* 24065 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6208 /* 24069 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6209 /* 24073 */ // MIs[1] x
6210 /* 24073 */ // No operand predicates
6211 /* 24073 */ // MIs[1] Operand 2
6212 /* 24073 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
6213 /* 24077 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner24),
6214 /* 24081 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6215 /* 24083 */ // Combiner Rule #131: neg_and_one_to_sext_inreg
6216 /* 24083 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
6217 /* 24086 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6218 /* 24088 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6219 /* 24092 */ GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
6220 /* 24095 */ GIR_EraseRootFromParent_Done,
6221 /* 24096 */ // Label 165: @24096
6222 /* 24096 */ GIM_Try, /*On fail goto*//*Label 166*/ GIMT_Encode4(24133), // Rule ID 15 //
6223 /* 24101 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
6224 /* 24104 */ // MIs[0] root
6225 /* 24104 */ // No operand predicates
6226 /* 24104 */ // MIs[0] c2
6227 /* 24104 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6228 /* 24108 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6229 /* 24112 */ // MIs[1] imm2
6230 /* 24112 */ // No operand predicates
6231 /* 24112 */ // MIs[0] add
6232 /* 24112 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6233 /* 24116 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
6234 /* 24120 */ // MIs[2] A
6235 /* 24120 */ // No operand predicates
6236 /* 24120 */ // MIs[2] c1
6237 /* 24120 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
6238 /* 24124 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6239 /* 24128 */ // MIs[3] imm1
6240 /* 24128 */ // No operand predicates
6241 /* 24128 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
6242 /* 24130 */ // Combiner Rule #15: C2MinusAPlusC1
6243 /* 24130 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
6244 /* 24133 */ // Label 166: @24133
6245 /* 24133 */ GIM_Try, /*On fail goto*//*Label 167*/ GIMT_Encode4(24172), // Rule ID 130 //
6246 /* 24138 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
6247 /* 24141 */ // MIs[0] dst
6248 /* 24141 */ // No operand predicates
6249 /* 24141 */ // MIs[0] x
6250 /* 24141 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
6251 /* 24145 */ // MIs[0] x
6252 /* 24145 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6253 /* 24150 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6254 /* 24153 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
6255 /* 24163 */ // Combiner Rule #94: same_val_zero @ [__same_val_zero_match_0[0]]
6256 /* 24163 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
6257 /* 24166 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6258 /* 24168 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
6259 /* 24171 */ GIR_EraseRootFromParent_Done,
6260 /* 24172 */ // Label 167: @24172
6261 /* 24172 */ GIM_Try, /*On fail goto*//*Label 168*/ GIMT_Encode4(24206), // Rule ID 12 //
6262 /* 24177 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
6263 /* 24180 */ // MIs[0] root
6264 /* 24180 */ // No operand predicates
6265 /* 24180 */ // MIs[0] A
6266 /* 24180 */ // No operand predicates
6267 /* 24180 */ // MIs[0] add
6268 /* 24180 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6269 /* 24184 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
6270 /* 24188 */ // MIs[1] A
6271 /* 24188 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
6272 /* 24193 */ // MIs[1] B
6273 /* 24193 */ // No operand predicates
6274 /* 24193 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6275 /* 24198 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6276 /* 24200 */ // Combiner Rule #12: AMinusBMinusA
6277 /* 24200 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6278 /* 24205 */ GIR_EraseRootFromParent_Done,
6279 /* 24206 */ // Label 168: @24206
6280 /* 24206 */ GIM_Try, /*On fail goto*//*Label 169*/ GIMT_Encode4(24240), // Rule ID 11 //
6281 /* 24211 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
6282 /* 24214 */ // MIs[0] root
6283 /* 24214 */ // No operand predicates
6284 /* 24214 */ // MIs[0] A
6285 /* 24214 */ // No operand predicates
6286 /* 24214 */ // MIs[0] sub1
6287 /* 24214 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6288 /* 24218 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
6289 /* 24222 */ // MIs[1] Operand 1
6290 /* 24222 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
6291 /* 24226 */ // MIs[1] B
6292 /* 24226 */ // No operand predicates
6293 /* 24226 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6294 /* 24228 */ // Combiner Rule #11: AMinusZeroMinusB
6295 /* 24228 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
6296 /* 24231 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6297 /* 24233 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
6298 /* 24235 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
6299 /* 24239 */ GIR_EraseRootFromParent_Done,
6300 /* 24240 */ // Label 169: @24240
6301 /* 24240 */ GIM_Try, /*On fail goto*//*Label 170*/ GIMT_Encode4(24267), // Rule ID 49 //
6302 /* 24245 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
6303 /* 24248 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
6304 /* 24254 */ // MIs[0] root
6305 /* 24254 */ // No operand predicates
6306 /* 24254 */ // MIs[0] x
6307 /* 24254 */ // No operand predicates
6308 /* 24254 */ // MIs[0] right
6309 /* 24254 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6310 /* 24258 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
6311 /* 24262 */ // MIs[1] imm
6312 /* 24262 */ // No operand predicates
6313 /* 24262 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6314 /* 24264 */ // Combiner Rule #45: sub_of_vscale
6315 /* 24264 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
6316 /* 24267 */ // Label 170: @24267
6317 /* 24267 */ GIM_Try, /*On fail goto*//*Label 171*/ GIMT_Encode4(24291), // Rule ID 108 //
6318 /* 24272 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6319 /* 24275 */ // MIs[0] dst
6320 /* 24275 */ // No operand predicates
6321 /* 24275 */ // MIs[0] __propagate_undef_any_op_match_0.x
6322 /* 24275 */ // No operand predicates
6323 /* 24275 */ // MIs[0] __propagate_undef_any_op_match_0.y
6324 /* 24275 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6325 /* 24279 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6326 /* 24283 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6327 /* 24285 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[4]]
6328 /* 24285 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6329 /* 24288 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6330 /* 24290 */ GIR_EraseRootFromParent_Done,
6331 /* 24291 */ // Label 171: @24291
6332 /* 24291 */ GIM_Try, /*On fail goto*//*Label 172*/ GIMT_Encode4(24314), // Rule ID 118 //
6333 /* 24296 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
6334 /* 24299 */ // MIs[0] dst
6335 /* 24299 */ // No operand predicates
6336 /* 24299 */ // MIs[0] lhs
6337 /* 24299 */ // No operand predicates
6338 /* 24299 */ // MIs[0] Operand 2
6339 /* 24299 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6340 /* 24303 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6341 /* 24308 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[0]]
6342 /* 24308 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6343 /* 24313 */ GIR_EraseRootFromParent_Done,
6344 /* 24314 */ // Label 172: @24314
6345 /* 24314 */ GIM_Try, /*On fail goto*//*Label 173*/ GIMT_Encode4(24335), // Rule ID 21 //
6346 /* 24319 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
6347 /* 24322 */ // MIs[0] d
6348 /* 24322 */ // No operand predicates
6349 /* 24322 */ // MIs[0] op1
6350 /* 24322 */ // No operand predicates
6351 /* 24322 */ // MIs[0] c
6352 /* 24322 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6353 /* 24326 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6354 /* 24330 */ // MIs[1] imm
6355 /* 24330 */ // No operand predicates
6356 /* 24330 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6357 /* 24332 */ // Combiner Rule #21: sub_to_add
6358 /* 24332 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
6359 /* 24335 */ // Label 173: @24335
6360 /* 24335 */ GIM_Try, /*On fail goto*//*Label 174*/ GIMT_Encode4(24346), // Rule ID 288 //
6361 /* 24340 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
6362 /* 24343 */ // MIs[0] d
6363 /* 24343 */ // No operand predicates
6364 /* 24343 */ // MIs[0] mi.src0
6365 /* 24343 */ // No operand predicates
6366 /* 24343 */ // MIs[0] mi.src1
6367 /* 24343 */ // No operand predicates
6368 /* 24343 */ // Combiner Rule #210: constant_fold_binop @ [mi[8]]
6369 /* 24343 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
6370 /* 24346 */ // Label 174: @24346
6371 /* 24346 */ GIM_Try, /*On fail goto*//*Label 175*/ GIMT_Encode4(24357), // Rule ID 342 //
6372 /* 24351 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6373 /* 24354 */ // MIs[0] root
6374 /* 24354 */ // No operand predicates
6375 /* 24354 */ // MIs[0] mi.x
6376 /* 24354 */ // No operand predicates
6377 /* 24354 */ // MIs[0] mi.y
6378 /* 24354 */ // No operand predicates
6379 /* 24354 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[1]]
6380 /* 24354 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
6381 /* 24357 */ // Label 175: @24357
6382 /* 24357 */ GIM_Try, /*On fail goto*//*Label 176*/ GIMT_Encode4(24368), // Rule ID 418 //
6383 /* 24362 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule286Enabled),
6384 /* 24365 */ // MIs[0] dst
6385 /* 24365 */ // No operand predicates
6386 /* 24365 */ // MIs[0] src1
6387 /* 24365 */ // No operand predicates
6388 /* 24365 */ // MIs[0] src2
6389 /* 24365 */ // No operand predicates
6390 /* 24365 */ // Combiner Rule #286: simplify_neg_minmax
6391 /* 24365 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
6392 /* 24368 */ // Label 176: @24368
6393 /* 24368 */ GIM_Reject,
6394 /* 24369 */ // Label 3: @24369
6395 /* 24369 */ GIM_Try, /*On fail goto*//*Label 177*/ GIMT_Encode4(24409), // Rule ID 24 //
6396 /* 24374 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
6397 /* 24377 */ // MIs[0] dst
6398 /* 24377 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
6399 /* 24381 */ // MIs[0] x
6400 /* 24381 */ // No operand predicates
6401 /* 24381 */ // MIs[0] Operand 2
6402 /* 24381 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
6403 /* 24385 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6404 /* 24388 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
6405 /* 24398 */ // Combiner Rule #23: mul_by_neg_one
6406 /* 24398 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
6407 /* 24401 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6408 /* 24403 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
6409 /* 24406 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
6410 /* 24408 */ GIR_EraseRootFromParent_Done,
6411 /* 24409 */ // Label 177: @24409
6412 /* 24409 */ GIM_Try, /*On fail goto*//*Label 178*/ GIMT_Encode4(24444), // Rule ID 47 //
6413 /* 24414 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
6414 /* 24417 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
6415 /* 24423 */ // MIs[0] root
6416 /* 24423 */ // No operand predicates
6417 /* 24423 */ // MIs[0] left
6418 /* 24423 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6419 /* 24427 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
6420 /* 24431 */ // MIs[1] scale
6421 /* 24431 */ // No operand predicates
6422 /* 24431 */ // MIs[0] x
6423 /* 24431 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6424 /* 24435 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6425 /* 24439 */ // MIs[2] imm1
6426 /* 24439 */ // No operand predicates
6427 /* 24439 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6428 /* 24441 */ // Combiner Rule #43: mul_of_vscale
6429 /* 24441 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
6430 /* 24444 */ // Label 178: @24444
6431 /* 24444 */ GIM_Try, /*On fail goto*//*Label 179*/ GIMT_Encode4(24465), // Rule ID 85 //
6432 /* 24449 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6433 /* 24452 */ // MIs[0] dst
6434 /* 24452 */ // No operand predicates
6435 /* 24452 */ // MIs[0] __undef_to_int_zero_match_0.x
6436 /* 24452 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6437 /* 24456 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6438 /* 24460 */ // MIs[0] __undef_to_int_zero_match_0.y
6439 /* 24460 */ // No operand predicates
6440 /* 24460 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6441 /* 24462 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[1]]
6442 /* 24462 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
6443 /* 24465 */ // Label 179: @24465
6444 /* 24465 */ GIM_Try, /*On fail goto*//*Label 180*/ GIMT_Encode4(24486), // Rule ID 87 //
6445 /* 24470 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6446 /* 24473 */ // MIs[0] dst
6447 /* 24473 */ // No operand predicates
6448 /* 24473 */ // MIs[0] __undef_to_int_zero_match_0.x
6449 /* 24473 */ // No operand predicates
6450 /* 24473 */ // MIs[0] __undef_to_int_zero_match_0.y
6451 /* 24473 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6452 /* 24477 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6453 /* 24481 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6454 /* 24483 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[3]]
6455 /* 24483 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
6456 /* 24486 */ // Label 180: @24486
6457 /* 24486 */ GIM_Try, /*On fail goto*//*Label 181*/ GIMT_Encode4(24509), // Rule ID 140 //
6458 /* 24491 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule96Enabled),
6459 /* 24494 */ // MIs[0] dst
6460 /* 24494 */ // No operand predicates
6461 /* 24494 */ // MIs[0] lhs
6462 /* 24494 */ // No operand predicates
6463 /* 24494 */ // MIs[0] zero
6464 /* 24494 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6465 /* 24498 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6466 /* 24503 */ // Combiner Rule #96: binop_right_to_zero
6467 /* 24503 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6468 /* 24508 */ GIR_EraseRootFromParent_Done,
6469 /* 24509 */ // Label 181: @24509
6470 /* 24509 */ GIM_Try, /*On fail goto*//*Label 182*/ GIMT_Encode4(24532), // Rule ID 147 //
6471 /* 24514 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
6472 /* 24517 */ // MIs[0] dst
6473 /* 24517 */ // No operand predicates
6474 /* 24517 */ // MIs[0] x
6475 /* 24517 */ // No operand predicates
6476 /* 24517 */ // MIs[0] Operand 2
6477 /* 24517 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
6478 /* 24521 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6479 /* 24526 */ // Combiner Rule #103: right_identity_one_int
6480 /* 24526 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6481 /* 24531 */ GIR_EraseRootFromParent_Done,
6482 /* 24532 */ // Label 182: @24532
6483 /* 24532 */ GIM_Try, /*On fail goto*//*Label 183*/ GIMT_Encode4(24555), // Rule ID 139 //
6484 /* 24537 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
6485 /* 24540 */ // MIs[0] dst
6486 /* 24540 */ // No operand predicates
6487 /* 24540 */ // MIs[0] zero
6488 /* 24540 */ // No operand predicates
6489 /* 24540 */ // MIs[0] rhs
6490 /* 24540 */ // No operand predicates
6491 /* 24540 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
6492 /* 24544 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6493 /* 24549 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[7]]
6494 /* 24549 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6495 /* 24554 */ GIR_EraseRootFromParent_Done,
6496 /* 24555 */ // Label 183: @24555
6497 /* 24555 */ GIM_Try, /*On fail goto*//*Label 184*/ GIMT_Encode4(24580), // Rule ID 382 //
6498 /* 24560 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule250Enabled),
6499 /* 24563 */ // MIs[0] dst
6500 /* 24563 */ // No operand predicates
6501 /* 24563 */ // MIs[0] lhs
6502 /* 24563 */ // No operand predicates
6503 /* 24563 */ // MIs[0] rhs
6504 /* 24563 */ // No operand predicates
6505 /* 24563 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
6506 /* 24567 */ // Combiner Rule #250: G_MUL_commute_constant_to_rhs
6507 /* 24567 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MUL),
6508 /* 24570 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6509 /* 24572 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
6510 /* 24574 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
6511 /* 24576 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
6512 /* 24579 */ GIR_EraseRootFromParent_Done,
6513 /* 24580 */ // Label 184: @24580
6514 /* 24580 */ GIM_Try, /*On fail goto*//*Label 185*/ GIMT_Encode4(24591), // Rule ID 20 //
6515 /* 24585 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
6516 /* 24588 */ // MIs[0] d
6517 /* 24588 */ // No operand predicates
6518 /* 24588 */ // MIs[0] op1
6519 /* 24588 */ // No operand predicates
6520 /* 24588 */ // MIs[0] op2
6521 /* 24588 */ // No operand predicates
6522 /* 24588 */ // Combiner Rule #20: mul_to_shl
6523 /* 24588 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
6524 /* 24591 */ // Label 185: @24591
6525 /* 24591 */ GIM_Try, /*On fail goto*//*Label 186*/ GIMT_Encode4(24602), // Rule ID 285 //
6526 /* 24596 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
6527 /* 24599 */ // MIs[0] d
6528 /* 24599 */ // No operand predicates
6529 /* 24599 */ // MIs[0] mi.src0
6530 /* 24599 */ // No operand predicates
6531 /* 24599 */ // MIs[0] mi.src1
6532 /* 24599 */ // No operand predicates
6533 /* 24599 */ // Combiner Rule #210: constant_fold_binop @ [mi[5]]
6534 /* 24599 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
6535 /* 24602 */ // Label 186: @24602
6536 /* 24602 */ GIM_Try, /*On fail goto*//*Label 187*/ GIMT_Encode4(24613), // Rule ID 488 //
6537 /* 24607 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule346Enabled),
6538 /* 24610 */ // MIs[0] dst
6539 /* 24610 */ // No operand predicates
6540 /* 24610 */ // MIs[0] src0
6541 /* 24610 */ // No operand predicates
6542 /* 24610 */ // MIs[0] src1
6543 /* 24610 */ // No operand predicates
6544 /* 24610 */ // Combiner Rule #346: smulu64
6545 /* 24610 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner137),
6546 /* 24613 */ // Label 187: @24613
6547 /* 24613 */ GIM_Reject,
6548 /* 24614 */ // Label 4: @24614
6549 /* 24614 */ GIM_Try, /*On fail goto*//*Label 188*/ GIMT_Encode4(24637), // Rule ID 135 //
6550 /* 24619 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
6551 /* 24622 */ // MIs[0] dst
6552 /* 24622 */ // No operand predicates
6553 /* 24622 */ // MIs[0] zero
6554 /* 24622 */ // No operand predicates
6555 /* 24622 */ // MIs[0] rhs
6556 /* 24622 */ // No operand predicates
6557 /* 24622 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
6558 /* 24626 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6559 /* 24631 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[3]]
6560 /* 24631 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6561 /* 24636 */ GIR_EraseRootFromParent_Done,
6562 /* 24637 */ // Label 188: @24637
6563 /* 24637 */ GIM_Try, /*On fail goto*//*Label 189*/ GIMT_Encode4(24654), // Rule ID 371 //
6564 /* 24642 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule239Enabled),
6565 /* 24645 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
6566 /* 24651 */ // MIs[0] dst
6567 /* 24651 */ // No operand predicates
6568 /* 24651 */ // MIs[0] x
6569 /* 24651 */ // No operand predicates
6570 /* 24651 */ // MIs[0] y
6571 /* 24651 */ // No operand predicates
6572 /* 24651 */ // Combiner Rule #239: sdiv_by_pow2
6573 /* 24651 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner99),
6574 /* 24654 */ // Label 189: @24654
6575 /* 24654 */ GIM_Try, /*On fail goto*//*Label 190*/ GIMT_Encode4(24665), // Rule ID 255 //
6576 /* 24659 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
6577 /* 24662 */ // MIs[0] root
6578 /* 24662 */ // No operand predicates
6579 /* 24662 */ // MIs[0] mi.x
6580 /* 24662 */ // No operand predicates
6581 /* 24662 */ // MIs[0] mi.y
6582 /* 24662 */ // No operand predicates
6583 /* 24662 */ // Combiner Rule #193: div_rem_to_divrem @ [mi[0]]
6584 /* 24662 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
6585 /* 24665 */ // Label 190: @24665
6586 /* 24665 */ GIM_Try, /*On fail goto*//*Label 191*/ GIMT_Encode4(24676), // Rule ID 291 //
6587 /* 24670 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
6588 /* 24673 */ // MIs[0] d
6589 /* 24673 */ // No operand predicates
6590 /* 24673 */ // MIs[0] mi.src0
6591 /* 24673 */ // No operand predicates
6592 /* 24673 */ // MIs[0] mi.src1
6593 /* 24673 */ // No operand predicates
6594 /* 24673 */ // Combiner Rule #210: constant_fold_binop @ [mi[11]]
6595 /* 24673 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
6596 /* 24676 */ // Label 191: @24676
6597 /* 24676 */ GIM_Try, /*On fail goto*//*Label 192*/ GIMT_Encode4(24687), // Rule ID 347 //
6598 /* 24681 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6599 /* 24684 */ // MIs[0] root
6600 /* 24684 */ // No operand predicates
6601 /* 24684 */ // MIs[0] mi.x
6602 /* 24684 */ // No operand predicates
6603 /* 24684 */ // MIs[0] mi.y
6604 /* 24684 */ // No operand predicates
6605 /* 24684 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[6]]
6606 /* 24684 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
6607 /* 24687 */ // Label 192: @24687
6608 /* 24687 */ GIM_Try, /*On fail goto*//*Label 193*/ GIMT_Encode4(24698), // Rule ID 373 //
6609 /* 24692 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule241Enabled),
6610 /* 24695 */ // MIs[0] dst
6611 /* 24695 */ // No operand predicates
6612 /* 24695 */ // MIs[0] x
6613 /* 24695 */ // No operand predicates
6614 /* 24695 */ // MIs[0] y
6615 /* 24695 */ // No operand predicates
6616 /* 24695 */ // Combiner Rule #241: sdiv_by_const
6617 /* 24695 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
6618 /* 24698 */ // Label 193: @24698
6619 /* 24698 */ GIM_Reject,
6620 /* 24699 */ // Label 5: @24699
6621 /* 24699 */ GIM_Try, /*On fail goto*//*Label 194*/ GIMT_Encode4(24720), // Rule ID 91 //
6622 /* 24704 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
6623 /* 24707 */ // MIs[0] dst
6624 /* 24707 */ // No operand predicates
6625 /* 24707 */ // MIs[0] __binop_left_undef_to_zero_match_0.x
6626 /* 24707 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6627 /* 24711 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6628 /* 24715 */ // MIs[0] __binop_left_undef_to_zero_match_0.y
6629 /* 24715 */ // No operand predicates
6630 /* 24715 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6631 /* 24717 */ // Combiner Rule #79: binop_left_undef_to_zero @ [__binop_left_undef_to_zero_match_0[1]]
6632 /* 24717 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
6633 /* 24720 */ // Label 194: @24720
6634 /* 24720 */ GIM_Try, /*On fail goto*//*Label 195*/ GIMT_Encode4(24743), // Rule ID 136 //
6635 /* 24725 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
6636 /* 24728 */ // MIs[0] dst
6637 /* 24728 */ // No operand predicates
6638 /* 24728 */ // MIs[0] zero
6639 /* 24728 */ // No operand predicates
6640 /* 24728 */ // MIs[0] rhs
6641 /* 24728 */ // No operand predicates
6642 /* 24728 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
6643 /* 24732 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6644 /* 24737 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[4]]
6645 /* 24737 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6646 /* 24742 */ GIR_EraseRootFromParent_Done,
6647 /* 24743 */ // Label 195: @24743
6648 /* 24743 */ GIM_Try, /*On fail goto*//*Label 196*/ GIMT_Encode4(24760), // Rule ID 370 //
6649 /* 24748 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule238Enabled),
6650 /* 24751 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
6651 /* 24757 */ // MIs[0] dst
6652 /* 24757 */ // No operand predicates
6653 /* 24757 */ // MIs[0] x
6654 /* 24757 */ // No operand predicates
6655 /* 24757 */ // MIs[0] y
6656 /* 24757 */ // No operand predicates
6657 /* 24757 */ // Combiner Rule #238: udiv_by_pow2
6658 /* 24757 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
6659 /* 24760 */ // Label 196: @24760
6660 /* 24760 */ GIM_Try, /*On fail goto*//*Label 197*/ GIMT_Encode4(24771), // Rule ID 256 //
6661 /* 24765 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
6662 /* 24768 */ // MIs[0] root
6663 /* 24768 */ // No operand predicates
6664 /* 24768 */ // MIs[0] mi.x
6665 /* 24768 */ // No operand predicates
6666 /* 24768 */ // MIs[0] mi.y
6667 /* 24768 */ // No operand predicates
6668 /* 24768 */ // Combiner Rule #193: div_rem_to_divrem @ [mi[1]]
6669 /* 24768 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
6670 /* 24771 */ // Label 197: @24771
6671 /* 24771 */ GIM_Try, /*On fail goto*//*Label 198*/ GIMT_Encode4(24782), // Rule ID 290 //
6672 /* 24776 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
6673 /* 24779 */ // MIs[0] d
6674 /* 24779 */ // No operand predicates
6675 /* 24779 */ // MIs[0] mi.src0
6676 /* 24779 */ // No operand predicates
6677 /* 24779 */ // MIs[0] mi.src1
6678 /* 24779 */ // No operand predicates
6679 /* 24779 */ // Combiner Rule #210: constant_fold_binop @ [mi[10]]
6680 /* 24779 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
6681 /* 24782 */ // Label 198: @24782
6682 /* 24782 */ GIM_Try, /*On fail goto*//*Label 199*/ GIMT_Encode4(24793), // Rule ID 349 //
6683 /* 24787 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6684 /* 24790 */ // MIs[0] root
6685 /* 24790 */ // No operand predicates
6686 /* 24790 */ // MIs[0] mi.x
6687 /* 24790 */ // No operand predicates
6688 /* 24790 */ // MIs[0] mi.y
6689 /* 24790 */ // No operand predicates
6690 /* 24790 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[8]]
6691 /* 24790 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
6692 /* 24793 */ // Label 199: @24793
6693 /* 24793 */ GIM_Try, /*On fail goto*//*Label 200*/ GIMT_Encode4(24804), // Rule ID 372 //
6694 /* 24798 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule240Enabled),
6695 /* 24801 */ // MIs[0] dst
6696 /* 24801 */ // No operand predicates
6697 /* 24801 */ // MIs[0] x
6698 /* 24801 */ // No operand predicates
6699 /* 24801 */ // MIs[0] y
6700 /* 24801 */ // No operand predicates
6701 /* 24801 */ // Combiner Rule #240: udiv_by_const
6702 /* 24801 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
6703 /* 24804 */ // Label 200: @24804
6704 /* 24804 */ GIM_Reject,
6705 /* 24805 */ // Label 6: @24805
6706 /* 24805 */ GIM_Try, /*On fail goto*//*Label 201*/ GIMT_Encode4(24828), // Rule ID 137 //
6707 /* 24810 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
6708 /* 24813 */ // MIs[0] dst
6709 /* 24813 */ // No operand predicates
6710 /* 24813 */ // MIs[0] zero
6711 /* 24813 */ // No operand predicates
6712 /* 24813 */ // MIs[0] rhs
6713 /* 24813 */ // No operand predicates
6714 /* 24813 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
6715 /* 24817 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6716 /* 24822 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[5]]
6717 /* 24822 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6718 /* 24827 */ GIR_EraseRootFromParent_Done,
6719 /* 24828 */ // Label 201: @24828
6720 /* 24828 */ GIM_Try, /*On fail goto*//*Label 202*/ GIMT_Encode4(24839), // Rule ID 257 //
6721 /* 24833 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
6722 /* 24836 */ // MIs[0] root
6723 /* 24836 */ // No operand predicates
6724 /* 24836 */ // MIs[0] mi.x
6725 /* 24836 */ // No operand predicates
6726 /* 24836 */ // MIs[0] mi.y
6727 /* 24836 */ // No operand predicates
6728 /* 24836 */ // Combiner Rule #193: div_rem_to_divrem @ [mi[2]]
6729 /* 24836 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
6730 /* 24839 */ // Label 202: @24839
6731 /* 24839 */ GIM_Try, /*On fail goto*//*Label 203*/ GIMT_Encode4(24850), // Rule ID 293 //
6732 /* 24844 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
6733 /* 24847 */ // MIs[0] d
6734 /* 24847 */ // No operand predicates
6735 /* 24847 */ // MIs[0] mi.src0
6736 /* 24847 */ // No operand predicates
6737 /* 24847 */ // MIs[0] mi.src1
6738 /* 24847 */ // No operand predicates
6739 /* 24847 */ // Combiner Rule #210: constant_fold_binop @ [mi[13]]
6740 /* 24847 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
6741 /* 24850 */ // Label 203: @24850
6742 /* 24850 */ GIM_Try, /*On fail goto*//*Label 204*/ GIMT_Encode4(24861), // Rule ID 348 //
6743 /* 24855 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6744 /* 24858 */ // MIs[0] root
6745 /* 24858 */ // No operand predicates
6746 /* 24858 */ // MIs[0] mi.x
6747 /* 24858 */ // No operand predicates
6748 /* 24858 */ // MIs[0] mi.y
6749 /* 24858 */ // No operand predicates
6750 /* 24858 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[7]]
6751 /* 24858 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
6752 /* 24861 */ // Label 204: @24861
6753 /* 24861 */ GIM_Try, /*On fail goto*//*Label 205*/ GIMT_Encode4(24872), // Rule ID 367 //
6754 /* 24866 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule235Enabled),
6755 /* 24869 */ // MIs[0] dst
6756 /* 24869 */ // No operand predicates
6757 /* 24869 */ // MIs[0] x
6758 /* 24869 */ // No operand predicates
6759 /* 24869 */ // MIs[0] y
6760 /* 24869 */ // No operand predicates
6761 /* 24869 */ // Combiner Rule #235: srem_pow2_to_mask
6762 /* 24869 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
6763 /* 24872 */ // Label 205: @24872
6764 /* 24872 */ GIM_Try, /*On fail goto*//*Label 206*/ GIMT_Encode4(24883), // Rule ID 369 //
6765 /* 24877 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule237Enabled),
6766 /* 24880 */ // MIs[0] dst
6767 /* 24880 */ // No operand predicates
6768 /* 24880 */ // MIs[0] x
6769 /* 24880 */ // No operand predicates
6770 /* 24880 */ // MIs[0] y
6771 /* 24880 */ // No operand predicates
6772 /* 24880 */ // Combiner Rule #237: srem_by_const
6773 /* 24880 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
6774 /* 24883 */ // Label 206: @24883
6775 /* 24883 */ GIM_Reject,
6776 /* 24884 */ // Label 7: @24884
6777 /* 24884 */ GIM_Try, /*On fail goto*//*Label 207*/ GIMT_Encode4(24905), // Rule ID 92 //
6778 /* 24889 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
6779 /* 24892 */ // MIs[0] dst
6780 /* 24892 */ // No operand predicates
6781 /* 24892 */ // MIs[0] __binop_left_undef_to_zero_match_0.x
6782 /* 24892 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6783 /* 24896 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6784 /* 24900 */ // MIs[0] __binop_left_undef_to_zero_match_0.y
6785 /* 24900 */ // No operand predicates
6786 /* 24900 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6787 /* 24902 */ // Combiner Rule #79: binop_left_undef_to_zero @ [__binop_left_undef_to_zero_match_0[2]]
6788 /* 24902 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
6789 /* 24905 */ // Label 207: @24905
6790 /* 24905 */ GIM_Try, /*On fail goto*//*Label 208*/ GIMT_Encode4(24928), // Rule ID 138 //
6791 /* 24910 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
6792 /* 24913 */ // MIs[0] dst
6793 /* 24913 */ // No operand predicates
6794 /* 24913 */ // MIs[0] zero
6795 /* 24913 */ // No operand predicates
6796 /* 24913 */ // MIs[0] rhs
6797 /* 24913 */ // No operand predicates
6798 /* 24913 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
6799 /* 24917 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6800 /* 24922 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[6]]
6801 /* 24922 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6802 /* 24927 */ GIR_EraseRootFromParent_Done,
6803 /* 24928 */ // Label 208: @24928
6804 /* 24928 */ GIM_Try, /*On fail goto*//*Label 209*/ GIMT_Encode4(24939), // Rule ID 201 //
6805 /* 24933 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
6806 /* 24936 */ // MIs[0] dst
6807 /* 24936 */ // No operand predicates
6808 /* 24936 */ // MIs[0] x
6809 /* 24936 */ // No operand predicates
6810 /* 24936 */ // MIs[0] y
6811 /* 24936 */ // No operand predicates
6812 /* 24936 */ // Combiner Rule #151: urem_pow2_to_mask
6813 /* 24936 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner57),
6814 /* 24939 */ // Label 209: @24939
6815 /* 24939 */ GIM_Try, /*On fail goto*//*Label 210*/ GIMT_Encode4(24950), // Rule ID 258 //
6816 /* 24944 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
6817 /* 24947 */ // MIs[0] root
6818 /* 24947 */ // No operand predicates
6819 /* 24947 */ // MIs[0] mi.x
6820 /* 24947 */ // No operand predicates
6821 /* 24947 */ // MIs[0] mi.y
6822 /* 24947 */ // No operand predicates
6823 /* 24947 */ // Combiner Rule #193: div_rem_to_divrem @ [mi[3]]
6824 /* 24947 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
6825 /* 24950 */ // Label 210: @24950
6826 /* 24950 */ GIM_Try, /*On fail goto*//*Label 211*/ GIMT_Encode4(24961), // Rule ID 292 //
6827 /* 24955 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
6828 /* 24958 */ // MIs[0] d
6829 /* 24958 */ // No operand predicates
6830 /* 24958 */ // MIs[0] mi.src0
6831 /* 24958 */ // No operand predicates
6832 /* 24958 */ // MIs[0] mi.src1
6833 /* 24958 */ // No operand predicates
6834 /* 24958 */ // Combiner Rule #210: constant_fold_binop @ [mi[12]]
6835 /* 24958 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
6836 /* 24961 */ // Label 211: @24961
6837 /* 24961 */ GIM_Try, /*On fail goto*//*Label 212*/ GIMT_Encode4(24972), // Rule ID 350 //
6838 /* 24966 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6839 /* 24969 */ // MIs[0] root
6840 /* 24969 */ // No operand predicates
6841 /* 24969 */ // MIs[0] mi.x
6842 /* 24969 */ // No operand predicates
6843 /* 24969 */ // MIs[0] mi.y
6844 /* 24969 */ // No operand predicates
6845 /* 24969 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[9]]
6846 /* 24969 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
6847 /* 24972 */ // Label 212: @24972
6848 /* 24972 */ GIM_Try, /*On fail goto*//*Label 213*/ GIMT_Encode4(24983), // Rule ID 368 //
6849 /* 24977 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule236Enabled),
6850 /* 24980 */ // MIs[0] dst
6851 /* 24980 */ // No operand predicates
6852 /* 24980 */ // MIs[0] x
6853 /* 24980 */ // No operand predicates
6854 /* 24980 */ // MIs[0] y
6855 /* 24980 */ // No operand predicates
6856 /* 24980 */ // Combiner Rule #236: urem_by_const
6857 /* 24980 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
6858 /* 24983 */ // Label 213: @24983
6859 /* 24983 */ GIM_Reject,
6860 /* 24984 */ // Label 8: @24984
6861 /* 24984 */ GIM_Try, /*On fail goto*//*Label 214*/ GIMT_Encode4(25070), // Rule ID 415 //
6862 /* 24989 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule283Enabled),
6863 /* 24992 */ // MIs[0] root
6864 /* 24992 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
6865 /* 24996 */ // MIs[0] or
6866 /* 24996 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6867 /* 25000 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
6868 /* 25004 */ // MIs[1] x
6869 /* 25004 */ // No operand predicates
6870 /* 25004 */ // MIs[1] y
6871 /* 25004 */ // No operand predicates
6872 /* 25004 */ // MIs[0] not
6873 /* 25004 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6874 /* 25008 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6875 /* 25012 */ // MIs[2] y
6876 /* 25012 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
6877 /* 25017 */ // MIs[2] Operand 2
6878 /* 25017 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6879 /* 25021 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6880 /* 25023 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6881 /* 25026 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
6882 /* 25036 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6883 /* 25039 */ // Combiner Rule #283: and_xor_or_to_xor_and
6884 /* 25039 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
6885 /* 25042 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6886 /* 25047 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
6887 /* 25051 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
6888 /* 25054 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6889 /* 25058 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6890 /* 25062 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
6891 /* 25066 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6892 /* 25069 */ GIR_EraseRootFromParent_Done,
6893 /* 25070 */ // Label 214: @25070
6894 /* 25070 */ GIM_Try, /*On fail goto*//*Label 215*/ GIMT_Encode4(25168), // Rule ID 177 //
6895 /* 25075 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule127Enabled),
6896 /* 25078 */ // MIs[0] root
6897 /* 25078 */ // No operand predicates
6898 /* 25078 */ // MIs[0] d1
6899 /* 25078 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6900 /* 25082 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
6901 /* 25086 */ // MIs[1] p
6902 /* 25086 */ // No operand predicates
6903 /* 25086 */ // MIs[1] s1
6904 /* 25086 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
6905 /* 25090 */ // MIs[1] Operand 3
6906 /* 25090 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
6907 /* 25094 */ // MIs[0] d2
6908 /* 25094 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6909 /* 25098 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
6910 /* 25102 */ // MIs[2] p
6911 /* 25102 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6912 /* 25107 */ // MIs[2] s2
6913 /* 25107 */ // No operand predicates
6914 /* 25107 */ // MIs[2] Operand 3
6915 /* 25107 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
6916 /* 25111 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner22),
6917 /* 25115 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6918 /* 25117 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6919 /* 25120 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
6920 /* 25130 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6921 /* 25133 */ // Combiner Rule #127: double_icmp_zero_and_combine
6922 /* 25133 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6923 /* 25136 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6924 /* 25141 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
6925 /* 25145 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
6926 /* 25149 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
6927 /* 25153 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6928 /* 25157 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
6929 /* 25161 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6930 /* 25164 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
6931 /* 25167 */ GIR_EraseRootFromParent_Done,
6932 /* 25168 */ // Label 215: @25168
6933 /* 25168 */ GIM_Try, /*On fail goto*//*Label 216*/ GIMT_Encode4(25205), // Rule ID 275 //
6934 /* 25173 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
6935 /* 25176 */ // MIs[0] root
6936 /* 25176 */ // No operand predicates
6937 /* 25176 */ // MIs[0] shift
6938 /* 25176 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6939 /* 25180 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
6940 /* 25184 */ // MIs[1] x
6941 /* 25184 */ // No operand predicates
6942 /* 25184 */ // MIs[1] lsb
6943 /* 25184 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6944 /* 25188 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6945 /* 25192 */ // MIs[2] imm1
6946 /* 25192 */ // No operand predicates
6947 /* 25192 */ // MIs[0] mask
6948 /* 25192 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6949 /* 25196 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6950 /* 25200 */ // MIs[3] imm2
6951 /* 25200 */ // No operand predicates
6952 /* 25200 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
6953 /* 25202 */ // Combiner Rule #207: bitfield_extract_from_and
6954 /* 25202 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76),
6955 /* 25205 */ // Label 216: @25205
6956 /* 25205 */ GIM_Try, /*On fail goto*//*Label 217*/ GIMT_Encode4(25254), // Rule ID 414 //
6957 /* 25210 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule282Enabled),
6958 /* 25213 */ // MIs[0] root
6959 /* 25213 */ // No operand predicates
6960 /* 25213 */ // MIs[0] or
6961 /* 25213 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6962 /* 25217 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
6963 /* 25221 */ // MIs[1] x
6964 /* 25221 */ // No operand predicates
6965 /* 25221 */ // MIs[1] not
6966 /* 25221 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6967 /* 25225 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6968 /* 25229 */ // MIs[2] y
6969 /* 25229 */ // No operand predicates
6970 /* 25229 */ // MIs[2] Operand 2
6971 /* 25229 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6972 /* 25233 */ // MIs[0] y
6973 /* 25233 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
6974 /* 25238 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6975 /* 25240 */ // Combiner Rule #282: and_xor_or_to_and
6976 /* 25240 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6977 /* 25243 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6978 /* 25245 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6979 /* 25249 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
6980 /* 25253 */ GIR_EraseRootFromParent_Done,
6981 /* 25254 */ // Label 217: @25254
6982 /* 25254 */ GIM_Try, /*On fail goto*//*Label 218*/ GIMT_Encode4(25275), // Rule ID 84 //
6983 /* 25259 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6984 /* 25262 */ // MIs[0] dst
6985 /* 25262 */ // No operand predicates
6986 /* 25262 */ // MIs[0] __undef_to_int_zero_match_0.x
6987 /* 25262 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6988 /* 25266 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6989 /* 25270 */ // MIs[0] __undef_to_int_zero_match_0.y
6990 /* 25270 */ // No operand predicates
6991 /* 25270 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6992 /* 25272 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[0]]
6993 /* 25272 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
6994 /* 25275 */ // Label 218: @25275
6995 /* 25275 */ GIM_Try, /*On fail goto*//*Label 219*/ GIMT_Encode4(25389), // Rule ID 493 //
6996 /* 25280 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule351Enabled),
6997 /* 25283 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i64,
6998 /* 25286 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_i64,
6999 /* 25289 */ // MIs[0] dst
7000 /* 25289 */ // No operand predicates
7001 /* 25289 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner66),
7002 /* 25293 */ GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_i32,
7003 /* 25296 */ GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_i32,
7004 /* 25299 */ GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_i32,
7005 /* 25302 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_i32,
7006 /* 25305 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_i32,
7007 /* 25308 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_i32,
7008 /* 25311 */ // Combiner Rule #351: combine_and_s64_with_s32_mask
7009 /* 25311 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
7010 /* 25314 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7011 /* 25319 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7012 /* 25324 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
7013 /* 25326 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
7014 /* 25330 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7015 /* 25335 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7016 /* 25340 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
7017 /* 25344 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
7018 /* 25348 */ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7019 /* 25353 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
7020 /* 25356 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
7021 /* 25359 */ GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
7022 /* 25363 */ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7023 /* 25368 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
7024 /* 25371 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
7025 /* 25374 */ GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
7026 /* 25378 */ GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
7027 /* 25382 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
7028 /* 25385 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
7029 /* 25388 */ GIR_EraseRootFromParent_Done,
7030 /* 25389 */ // Label 219: @25389
7031 /* 25389 */ GIM_Try, /*On fail goto*//*Label 220*/ GIMT_Encode4(25413), // Rule ID 128 //
7032 /* 25394 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
7033 /* 25397 */ // MIs[0] dst
7034 /* 25397 */ // No operand predicates
7035 /* 25397 */ // MIs[0] src
7036 /* 25397 */ // No operand predicates
7037 /* 25397 */ // MIs[0] src
7038 /* 25397 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
7039 /* 25402 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7040 /* 25407 */ // Combiner Rule #93: binop_same_val @ [__binop_same_val_match_0[0]]
7041 /* 25407 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7042 /* 25412 */ GIR_EraseRootFromParent_Done,
7043 /* 25413 */ // Label 220: @25413
7044 /* 25413 */ GIM_Try, /*On fail goto*//*Label 221*/ GIMT_Encode4(25434), // Rule ID 86 //
7045 /* 25418 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
7046 /* 25421 */ // MIs[0] dst
7047 /* 25421 */ // No operand predicates
7048 /* 25421 */ // MIs[0] __undef_to_int_zero_match_0.x
7049 /* 25421 */ // No operand predicates
7050 /* 25421 */ // MIs[0] __undef_to_int_zero_match_0.y
7051 /* 25421 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7052 /* 25425 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7053 /* 25429 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7054 /* 25431 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[2]]
7055 /* 25431 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
7056 /* 25434 */ // Label 221: @25434
7057 /* 25434 */ GIM_Try, /*On fail goto*//*Label 222*/ GIMT_Encode4(25459), // Rule ID 383 //
7058 /* 25439 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule251Enabled),
7059 /* 25442 */ // MIs[0] dst
7060 /* 25442 */ // No operand predicates
7061 /* 25442 */ // MIs[0] lhs
7062 /* 25442 */ // No operand predicates
7063 /* 25442 */ // MIs[0] rhs
7064 /* 25442 */ // No operand predicates
7065 /* 25442 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
7066 /* 25446 */ // Combiner Rule #251: G_AND_commute_constant_to_rhs
7067 /* 25446 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
7068 /* 25449 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7069 /* 25451 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
7070 /* 25453 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
7071 /* 25455 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
7072 /* 25458 */ GIR_EraseRootFromParent_Done,
7073 /* 25459 */ // Label 222: @25459
7074 /* 25459 */ GIM_Try, /*On fail goto*//*Label 223*/ GIMT_Encode4(25470), // Rule ID 80 //
7075 /* 25464 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
7076 /* 25467 */ // MIs[0] dst
7077 /* 25467 */ // No operand predicates
7078 /* 25467 */ // MIs[0] src1
7079 /* 25467 */ // No operand predicates
7080 /* 25467 */ // MIs[0] src2
7081 /* 25467 */ // No operand predicates
7082 /* 25467 */ // Combiner Rule #74: load_and_mask
7083 /* 25467 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner28),
7084 /* 25470 */ // Label 223: @25470
7085 /* 25470 */ GIM_Try, /*On fail goto*//*Label 224*/ GIMT_Encode4(25481), // Rule ID 164 //
7086 /* 25475 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
7087 /* 25478 */ // MIs[0] root
7088 /* 25478 */ // No operand predicates
7089 /* 25478 */ // MIs[0] mi.x
7090 /* 25478 */ // No operand predicates
7091 /* 25478 */ // MIs[0] mi.y
7092 /* 25478 */ // No operand predicates
7093 /* 25478 */ // Combiner Rule #118: hoist_logic_op_with_same_opcode_hands @ [mi[0]]
7094 /* 25478 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
7095 /* 25481 */ // Label 224: @25481
7096 /* 25481 */ GIM_Try, /*On fail goto*//*Label 225*/ GIMT_Encode4(25492), // Rule ID 184 //
7097 /* 25486 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule134Enabled),
7098 /* 25489 */ // MIs[0] dst
7099 /* 25489 */ // No operand predicates
7100 /* 25489 */ // MIs[0] src1
7101 /* 25489 */ // No operand predicates
7102 /* 25489 */ // MIs[0] src2
7103 /* 25489 */ // No operand predicates
7104 /* 25489 */ // Combiner Rule #134: narrow_binop_feeding_and
7105 /* 25489 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
7106 /* 25492 */ // Label 225: @25492
7107 /* 25492 */ GIM_Try, /*On fail goto*//*Label 226*/ GIMT_Encode4(25503), // Rule ID 199 //
7108 /* 25497 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule149Enabled),
7109 /* 25500 */ // MIs[0] dst
7110 /* 25500 */ // No operand predicates
7111 /* 25500 */ // MIs[0] src1
7112 /* 25500 */ // No operand predicates
7113 /* 25500 */ // MIs[0] src2
7114 /* 25500 */ // No operand predicates
7115 /* 25500 */ // Combiner Rule #149: redundant_and
7116 /* 25500 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
7117 /* 25503 */ // Label 226: @25503
7118 /* 25503 */ GIM_Try, /*On fail goto*//*Label 227*/ GIMT_Encode4(25514), // Rule ID 223 //
7119 /* 25508 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
7120 /* 25511 */ // MIs[0] dst
7121 /* 25511 */ // No operand predicates
7122 /* 25511 */ // MIs[0] x
7123 /* 25511 */ // No operand predicates
7124 /* 25511 */ // MIs[0] y
7125 /* 25511 */ // No operand predicates
7126 /* 25511 */ // Combiner Rule #173: overlapping_and
7127 /* 25511 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner65),
7128 /* 25514 */ // Label 227: @25514
7129 /* 25514 */ GIM_Try, /*On fail goto*//*Label 228*/ GIMT_Encode4(25525), // Rule ID 282 //
7130 /* 25519 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
7131 /* 25522 */ // MIs[0] d
7132 /* 25522 */ // No operand predicates
7133 /* 25522 */ // MIs[0] mi.src0
7134 /* 25522 */ // No operand predicates
7135 /* 25522 */ // MIs[0] mi.src1
7136 /* 25522 */ // No operand predicates
7137 /* 25522 */ // Combiner Rule #210: constant_fold_binop @ [mi[2]]
7138 /* 25522 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
7139 /* 25525 */ // Label 228: @25525
7140 /* 25525 */ GIM_Try, /*On fail goto*//*Label 229*/ GIMT_Encode4(25536), // Rule ID 332 //
7141 /* 25530 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule224Enabled),
7142 /* 25533 */ // MIs[0] dst
7143 /* 25533 */ // No operand predicates
7144 /* 25533 */ // MIs[0] src1
7145 /* 25533 */ // No operand predicates
7146 /* 25533 */ // MIs[0] src2
7147 /* 25533 */ // No operand predicates
7148 /* 25533 */ // Combiner Rule #224: and_or_disjoint_mask
7149 /* 25533 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
7150 /* 25536 */ // Label 229: @25536
7151 /* 25536 */ GIM_Try, /*On fail goto*//*Label 230*/ GIMT_Encode4(25547), // Rule ID 344 //
7152 /* 25541 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
7153 /* 25544 */ // MIs[0] root
7154 /* 25544 */ // No operand predicates
7155 /* 25544 */ // MIs[0] mi.x
7156 /* 25544 */ // No operand predicates
7157 /* 25544 */ // MIs[0] mi.y
7158 /* 25544 */ // No operand predicates
7159 /* 25544 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[3]]
7160 /* 25544 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
7161 /* 25547 */ // Label 230: @25547
7162 /* 25547 */ GIM_Try, /*On fail goto*//*Label 231*/ GIMT_Encode4(25558), // Rule ID 410 //
7163 /* 25552 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule278Enabled),
7164 /* 25555 */ // MIs[0] dst
7165 /* 25555 */ // No operand predicates
7166 /* 25555 */ // MIs[0] src1
7167 /* 25555 */ // No operand predicates
7168 /* 25555 */ // MIs[0] src2
7169 /* 25555 */ // No operand predicates
7170 /* 25555 */ // Combiner Rule #278: match_ands
7171 /* 25555 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
7172 /* 25558 */ // Label 231: @25558
7173 /* 25558 */ GIM_Try, /*On fail goto*//*Label 232*/ GIMT_Encode4(25569), // Rule ID 455 //
7174 /* 25563 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule322Enabled),
7175 /* 25566 */ // MIs[0] root
7176 /* 25566 */ // No operand predicates
7177 /* 25566 */ // MIs[0] mi.x
7178 /* 25566 */ // No operand predicates
7179 /* 25566 */ // MIs[0] mi.y
7180 /* 25566 */ // No operand predicates
7181 /* 25566 */ // Combiner Rule #322: binop_with_neg @ [mi[0]]
7182 /* 25566 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7183 /* 25569 */ // Label 232: @25569
7184 /* 25569 */ GIM_Reject,
7185 /* 25570 */ // Label 9: @25570
7186 /* 25570 */ GIM_Try, /*On fail goto*//*Label 233*/ GIMT_Encode4(25656), // Rule ID 413 //
7187 /* 25575 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule281Enabled),
7188 /* 25578 */ // MIs[0] root
7189 /* 25578 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
7190 /* 25582 */ // MIs[0] and
7191 /* 25582 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7192 /* 25586 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
7193 /* 25590 */ // MIs[1] x
7194 /* 25590 */ // No operand predicates
7195 /* 25590 */ // MIs[1] y
7196 /* 25590 */ // No operand predicates
7197 /* 25590 */ // MIs[0] not
7198 /* 25590 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7199 /* 25594 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
7200 /* 25598 */ // MIs[2] y
7201 /* 25598 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
7202 /* 25603 */ // MIs[2] Operand 2
7203 /* 25603 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
7204 /* 25607 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7205 /* 25609 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
7206 /* 25612 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
7207 /* 25622 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7208 /* 25625 */ // Combiner Rule #281: or_and_xor_to_xor_or
7209 /* 25625 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
7210 /* 25628 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7211 /* 25633 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
7212 /* 25637 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
7213 /* 25640 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7214 /* 25644 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
7215 /* 25648 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
7216 /* 25652 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7217 /* 25655 */ GIR_EraseRootFromParent_Done,
7218 /* 25656 */ // Label 233: @25656
7219 /* 25656 */ GIM_Try, /*On fail goto*//*Label 234*/ GIMT_Encode4(25743), // Rule ID 495 //
7220 /* 25661 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule352Enabled),
7221 /* 25664 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i64,
7222 /* 25667 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_i64,
7223 /* 25670 */ // MIs[0] dst
7224 /* 25670 */ // No operand predicates
7225 /* 25670 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7226 /* 25674 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
7227 /* 25678 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_i32,
7228 /* 25682 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
7229 /* 25686 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7230 /* 25688 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
7231 /* 25691 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
7232 /* 25694 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7233 /* 25697 */ // Combiner Rule #352: combine_or_s64_s32 @ [dst[1]]
7234 /* 25697 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
7235 /* 25700 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7236 /* 25705 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7237 /* 25710 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
7238 /* 25712 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7239 /* 25716 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7240 /* 25721 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7241 /* 25724 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
7242 /* 25728 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
7243 /* 25732 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
7244 /* 25736 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
7245 /* 25739 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
7246 /* 25742 */ GIR_EraseRootFromParent_Done,
7247 /* 25743 */ // Label 234: @25743
7248 /* 25743 */ GIM_Try, /*On fail goto*//*Label 235*/ GIMT_Encode4(25790), // Rule ID 266 //
7249 /* 25748 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7250 /* 25751 */ // MIs[0] root
7251 /* 25751 */ // No operand predicates
7252 /* 25751 */ // MIs[0] out1
7253 /* 25751 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7254 /* 25755 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHL),
7255 /* 25759 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
7256 /* 25759 */ // No operand predicates
7257 /* 25759 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
7258 /* 25759 */ // No operand predicates
7259 /* 25759 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
7260 /* 25759 */ // No operand predicates
7261 /* 25759 */ // MIs[0] out2
7262 /* 25759 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7263 /* 25763 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SHL),
7264 /* 25767 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
7265 /* 25767 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
7266 /* 25772 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
7267 /* 25772 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
7268 /* 25777 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7269 /* 25782 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7270 /* 25784 */ // Combiner Rule #200: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[0]]
7271 /* 25784 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7272 /* 25789 */ GIR_EraseRootFromParent_Done,
7273 /* 25790 */ // Label 235: @25790
7274 /* 25790 */ GIM_Try, /*On fail goto*//*Label 236*/ GIMT_Encode4(25837), // Rule ID 268 //
7275 /* 25795 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
7276 /* 25798 */ // MIs[0] root
7277 /* 25798 */ // No operand predicates
7278 /* 25798 */ // MIs[0] out1
7279 /* 25798 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7280 /* 25802 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHR),
7281 /* 25806 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
7282 /* 25806 */ // No operand predicates
7283 /* 25806 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
7284 /* 25806 */ // No operand predicates
7285 /* 25806 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
7286 /* 25806 */ // No operand predicates
7287 /* 25806 */ // MIs[0] out2
7288 /* 25806 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7289 /* 25810 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
7290 /* 25814 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
7291 /* 25814 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
7292 /* 25819 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
7293 /* 25819 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
7294 /* 25824 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7295 /* 25829 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7296 /* 25831 */ // Combiner Rule #201: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[0]]
7297 /* 25831 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7298 /* 25836 */ GIR_EraseRootFromParent_Done,
7299 /* 25837 */ // Label 236: @25837
7300 /* 25837 */ GIM_Try, /*On fail goto*//*Label 237*/ GIMT_Encode4(25935), // Rule ID 178 //
7301 /* 25842 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule128Enabled),
7302 /* 25845 */ // MIs[0] root
7303 /* 25845 */ // No operand predicates
7304 /* 25845 */ // MIs[0] d1
7305 /* 25845 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7306 /* 25849 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
7307 /* 25853 */ // MIs[1] p
7308 /* 25853 */ // No operand predicates
7309 /* 25853 */ // MIs[1] s1
7310 /* 25853 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
7311 /* 25857 */ // MIs[1] Operand 3
7312 /* 25857 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
7313 /* 25861 */ // MIs[0] d2
7314 /* 25861 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7315 /* 25865 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
7316 /* 25869 */ // MIs[2] p
7317 /* 25869 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
7318 /* 25874 */ // MIs[2] s2
7319 /* 25874 */ // No operand predicates
7320 /* 25874 */ // MIs[2] Operand 3
7321 /* 25874 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
7322 /* 25878 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner23),
7323 /* 25882 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7324 /* 25884 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
7325 /* 25887 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
7326 /* 25897 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7327 /* 25900 */ // Combiner Rule #128: double_icmp_zero_or_combine
7328 /* 25900 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7329 /* 25903 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7330 /* 25908 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
7331 /* 25912 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
7332 /* 25916 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
7333 /* 25920 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
7334 /* 25924 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
7335 /* 25928 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7336 /* 25931 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
7337 /* 25934 */ GIR_EraseRootFromParent_Done,
7338 /* 25935 */ // Label 237: @25935
7339 /* 25935 */ GIM_Try, /*On fail goto*//*Label 238*/ GIMT_Encode4(25984), // Rule ID 412 //
7340 /* 25940 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule280Enabled),
7341 /* 25943 */ // MIs[0] root
7342 /* 25943 */ // No operand predicates
7343 /* 25943 */ // MIs[0] and
7344 /* 25943 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7345 /* 25947 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
7346 /* 25951 */ // MIs[1] x
7347 /* 25951 */ // No operand predicates
7348 /* 25951 */ // MIs[1] not
7349 /* 25951 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7350 /* 25955 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
7351 /* 25959 */ // MIs[2] y
7352 /* 25959 */ // No operand predicates
7353 /* 25959 */ // MIs[2] Operand 2
7354 /* 25959 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
7355 /* 25963 */ // MIs[0] y
7356 /* 25963 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
7357 /* 25968 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7358 /* 25970 */ // Combiner Rule #280: or_and_xor_to_or
7359 /* 25970 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7360 /* 25973 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7361 /* 25975 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7362 /* 25979 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
7363 /* 25983 */ GIR_EraseRootFromParent_Done,
7364 /* 25984 */ // Label 238: @25984
7365 /* 25984 */ GIM_Try, /*On fail goto*//*Label 239*/ GIMT_Encode4(26018), // Rule ID 466 //
7366 /* 25989 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule331Enabled),
7367 /* 25992 */ // MIs[0] dst
7368 /* 25992 */ // No operand predicates
7369 /* 25992 */ // MIs[0] __combine_or_of_and_match_0.and
7370 /* 25992 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7371 /* 25996 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
7372 /* 26000 */ // MIs[1] x
7373 /* 26000 */ // No operand predicates
7374 /* 26000 */ // MIs[1] y
7375 /* 26000 */ // No operand predicates
7376 /* 26000 */ // MIs[0] x
7377 /* 26000 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
7378 /* 26005 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7379 /* 26010 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7380 /* 26012 */ // Combiner Rule #331: combine_or_of_and @ [__combine_or_of_and_match_0[0]]
7381 /* 26012 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7382 /* 26017 */ GIR_EraseRootFromParent_Done,
7383 /* 26018 */ // Label 239: @26018
7384 /* 26018 */ GIM_Try, /*On fail goto*//*Label 240*/ GIMT_Encode4(26052), // Rule ID 467 //
7385 /* 26023 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule331Enabled),
7386 /* 26026 */ // MIs[0] dst
7387 /* 26026 */ // No operand predicates
7388 /* 26026 */ // MIs[0] __combine_or_of_and_match_0.and
7389 /* 26026 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7390 /* 26030 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
7391 /* 26034 */ // MIs[1] y
7392 /* 26034 */ // No operand predicates
7393 /* 26034 */ // MIs[1] x
7394 /* 26034 */ // No operand predicates
7395 /* 26034 */ // MIs[0] x
7396 /* 26034 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
7397 /* 26039 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
7398 /* 26044 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7399 /* 26046 */ // Combiner Rule #331: combine_or_of_and @ [__combine_or_of_and_match_0[1]]
7400 /* 26046 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
7401 /* 26051 */ GIR_EraseRootFromParent_Done,
7402 /* 26052 */ // Label 240: @26052
7403 /* 26052 */ GIM_Try, /*On fail goto*//*Label 241*/ GIMT_Encode4(26099), // Rule ID 269 //
7404 /* 26057 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
7405 /* 26060 */ // MIs[0] root
7406 /* 26060 */ // No operand predicates
7407 /* 26060 */ // MIs[0] out2
7408 /* 26060 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7409 /* 26064 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
7410 /* 26068 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
7411 /* 26068 */ // No operand predicates
7412 /* 26068 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
7413 /* 26068 */ // No operand predicates
7414 /* 26068 */ // MIs[0] out1
7415 /* 26068 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7416 /* 26072 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHR),
7417 /* 26076 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
7418 /* 26076 */ // No operand predicates
7419 /* 26076 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
7420 /* 26076 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
7421 /* 26081 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
7422 /* 26081 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
7423 /* 26086 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
7424 /* 26091 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7425 /* 26093 */ // Combiner Rule #201: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[1]]
7426 /* 26093 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
7427 /* 26098 */ GIR_EraseRootFromParent_Done,
7428 /* 26099 */ // Label 241: @26099
7429 /* 26099 */ GIM_Try, /*On fail goto*//*Label 242*/ GIMT_Encode4(26146), // Rule ID 267 //
7430 /* 26104 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7431 /* 26107 */ // MIs[0] root
7432 /* 26107 */ // No operand predicates
7433 /* 26107 */ // MIs[0] out2
7434 /* 26107 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7435 /* 26111 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
7436 /* 26115 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
7437 /* 26115 */ // No operand predicates
7438 /* 26115 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
7439 /* 26115 */ // No operand predicates
7440 /* 26115 */ // MIs[0] out1
7441 /* 26115 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7442 /* 26119 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHL),
7443 /* 26123 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
7444 /* 26123 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
7445 /* 26128 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
7446 /* 26128 */ // No operand predicates
7447 /* 26128 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
7448 /* 26128 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
7449 /* 26133 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
7450 /* 26138 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7451 /* 26140 */ // Combiner Rule #200: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[1]]
7452 /* 26140 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
7453 /* 26145 */ GIR_EraseRootFromParent_Done,
7454 /* 26146 */ // Label 242: @26146
7455 /* 26146 */ GIM_Try, /*On fail goto*//*Label 243*/ GIMT_Encode4(26196), // Rule ID 417 //
7456 /* 26151 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule285Enabled),
7457 /* 26154 */ // MIs[0] root
7458 /* 26154 */ // No operand predicates
7459 /* 26154 */ // MIs[0] xor
7460 /* 26154 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7461 /* 26158 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
7462 /* 26162 */ // MIs[1] x
7463 /* 26162 */ // No operand predicates
7464 /* 26162 */ // MIs[1] y
7465 /* 26162 */ // No operand predicates
7466 /* 26162 */ // MIs[0] and
7467 /* 26162 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7468 /* 26166 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_AND),
7469 /* 26170 */ // MIs[2] x
7470 /* 26170 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
7471 /* 26175 */ // MIs[2] y
7472 /* 26175 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
7473 /* 26180 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7474 /* 26182 */ // Combiner Rule #285: or_xor_and
7475 /* 26182 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7476 /* 26185 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7477 /* 26187 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7478 /* 26191 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
7479 /* 26195 */ GIR_EraseRootFromParent_Done,
7480 /* 26196 */ // Label 243: @26196
7481 /* 26196 */ GIM_Try, /*On fail goto*//*Label 244*/ GIMT_Encode4(26246), // Rule ID 416 //
7482 /* 26201 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule284Enabled),
7483 /* 26204 */ // MIs[0] root
7484 /* 26204 */ // No operand predicates
7485 /* 26204 */ // MIs[0] xor
7486 /* 26204 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7487 /* 26208 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
7488 /* 26212 */ // MIs[1] x
7489 /* 26212 */ // No operand predicates
7490 /* 26212 */ // MIs[1] y
7491 /* 26212 */ // No operand predicates
7492 /* 26212 */ // MIs[0] or
7493 /* 26212 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7494 /* 26216 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_OR),
7495 /* 26220 */ // MIs[2] x
7496 /* 26220 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
7497 /* 26225 */ // MIs[2] y
7498 /* 26225 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
7499 /* 26230 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7500 /* 26232 */ // Combiner Rule #284: or_xor_or
7501 /* 26232 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7502 /* 26235 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7503 /* 26237 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7504 /* 26241 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
7505 /* 26245 */ GIR_EraseRootFromParent_Done,
7506 /* 26246 */ // Label 244: @26246
7507 /* 26246 */ GIM_Try, /*On fail goto*//*Label 245*/ GIMT_Encode4(26267), // Rule ID 88 //
7508 /* 26251 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
7509 /* 26254 */ // MIs[0] dst
7510 /* 26254 */ // No operand predicates
7511 /* 26254 */ // MIs[0] __undef_to_negative_one_match_0.x
7512 /* 26254 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7513 /* 26258 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7514 /* 26262 */ // MIs[0] __undef_to_negative_one_match_0.y
7515 /* 26262 */ // No operand predicates
7516 /* 26262 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7517 /* 26264 */ // Combiner Rule #78: undef_to_negative_one @ [__undef_to_negative_one_match_0[0]]
7518 /* 26264 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
7519 /* 26267 */ // Label 245: @26267
7520 /* 26267 */ GIM_Try, /*On fail goto*//*Label 246*/ GIMT_Encode4(26468),
7521 /* 26272 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i64,
7522 /* 26275 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_i64,
7523 /* 26278 */ GIM_Try, /*On fail goto*//*Label 247*/ GIMT_Encode4(26359), // Rule ID 494 //
7524 /* 26283 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule352Enabled),
7525 /* 26286 */ // MIs[0] dst
7526 /* 26286 */ // No operand predicates
7527 /* 26286 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7528 /* 26290 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
7529 /* 26294 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_i32,
7530 /* 26298 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
7531 /* 26302 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7532 /* 26304 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
7533 /* 26307 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
7534 /* 26310 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7535 /* 26313 */ // Combiner Rule #352: combine_or_s64_s32 @ [dst[0]]
7536 /* 26313 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
7537 /* 26316 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7538 /* 26321 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7539 /* 26326 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
7540 /* 26328 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7541 /* 26332 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7542 /* 26337 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7543 /* 26340 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
7544 /* 26344 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
7545 /* 26348 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
7546 /* 26352 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
7547 /* 26355 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
7548 /* 26358 */ GIR_EraseRootFromParent_Done,
7549 /* 26359 */ // Label 247: @26359
7550 /* 26359 */ GIM_Try, /*On fail goto*//*Label 248*/ GIMT_Encode4(26467), // Rule ID 492 //
7551 /* 26364 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule350Enabled),
7552 /* 26367 */ // MIs[0] dst
7553 /* 26367 */ // No operand predicates
7554 /* 26367 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner66),
7555 /* 26371 */ GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_i32,
7556 /* 26374 */ GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_i32,
7557 /* 26377 */ GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_i32,
7558 /* 26380 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_i32,
7559 /* 26383 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_i32,
7560 /* 26386 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_i32,
7561 /* 26389 */ // Combiner Rule #350: combine_or_s64_with_s32_mask
7562 /* 26389 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
7563 /* 26392 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7564 /* 26397 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7565 /* 26402 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
7566 /* 26404 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
7567 /* 26408 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7568 /* 26413 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7569 /* 26418 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
7570 /* 26422 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7571 /* 26426 */ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7572 /* 26431 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
7573 /* 26434 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
7574 /* 26437 */ GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7575 /* 26441 */ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7576 /* 26446 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
7577 /* 26449 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
7578 /* 26452 */ GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
7579 /* 26456 */ GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
7580 /* 26460 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
7581 /* 26463 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
7582 /* 26466 */ GIR_EraseRootFromParent_Done,
7583 /* 26467 */ // Label 248: @26467
7584 /* 26467 */ GIM_Reject,
7585 /* 26468 */ // Label 246: @26468
7586 /* 26468 */ GIM_Try, /*On fail goto*//*Label 249*/ GIMT_Encode4(26492), // Rule ID 129 //
7587 /* 26473 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
7588 /* 26476 */ // MIs[0] dst
7589 /* 26476 */ // No operand predicates
7590 /* 26476 */ // MIs[0] src
7591 /* 26476 */ // No operand predicates
7592 /* 26476 */ // MIs[0] src
7593 /* 26476 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
7594 /* 26481 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7595 /* 26486 */ // Combiner Rule #93: binop_same_val @ [__binop_same_val_match_0[1]]
7596 /* 26486 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7597 /* 26491 */ GIR_EraseRootFromParent_Done,
7598 /* 26492 */ // Label 249: @26492
7599 /* 26492 */ GIM_Try, /*On fail goto*//*Label 250*/ GIMT_Encode4(26526), // Rule ID 468 //
7600 /* 26497 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule331Enabled),
7601 /* 26500 */ // MIs[0] dst
7602 /* 26500 */ // No operand predicates
7603 /* 26500 */ // MIs[0] x
7604 /* 26500 */ // No operand predicates
7605 /* 26500 */ // MIs[0] __combine_or_of_and_match_0.and
7606 /* 26500 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7607 /* 26504 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
7608 /* 26508 */ // MIs[1] x
7609 /* 26508 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
7610 /* 26513 */ // MIs[1] y
7611 /* 26513 */ // No operand predicates
7612 /* 26513 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7613 /* 26518 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7614 /* 26520 */ // Combiner Rule #331: combine_or_of_and @ [__combine_or_of_and_match_0[2]]
7615 /* 26520 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7616 /* 26525 */ GIR_EraseRootFromParent_Done,
7617 /* 26526 */ // Label 250: @26526
7618 /* 26526 */ GIM_Try, /*On fail goto*//*Label 251*/ GIMT_Encode4(26560), // Rule ID 469 //
7619 /* 26531 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule331Enabled),
7620 /* 26534 */ // MIs[0] dst
7621 /* 26534 */ // No operand predicates
7622 /* 26534 */ // MIs[0] x
7623 /* 26534 */ // No operand predicates
7624 /* 26534 */ // MIs[0] __combine_or_of_and_match_0.and
7625 /* 26534 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7626 /* 26538 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
7627 /* 26542 */ // MIs[1] y
7628 /* 26542 */ // No operand predicates
7629 /* 26542 */ // MIs[1] x
7630 /* 26542 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
7631 /* 26547 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7632 /* 26552 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7633 /* 26554 */ // Combiner Rule #331: combine_or_of_and @ [__combine_or_of_and_match_0[3]]
7634 /* 26554 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7635 /* 26559 */ GIR_EraseRootFromParent_Done,
7636 /* 26560 */ // Label 251: @26560
7637 /* 26560 */ GIM_Try, /*On fail goto*//*Label 252*/ GIMT_Encode4(26581), // Rule ID 89 //
7638 /* 26565 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
7639 /* 26568 */ // MIs[0] dst
7640 /* 26568 */ // No operand predicates
7641 /* 26568 */ // MIs[0] __undef_to_negative_one_match_0.x
7642 /* 26568 */ // No operand predicates
7643 /* 26568 */ // MIs[0] __undef_to_negative_one_match_0.y
7644 /* 26568 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7645 /* 26572 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7646 /* 26576 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7647 /* 26578 */ // Combiner Rule #78: undef_to_negative_one @ [__undef_to_negative_one_match_0[1]]
7648 /* 26578 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
7649 /* 26581 */ // Label 252: @26581
7650 /* 26581 */ GIM_Try, /*On fail goto*//*Label 253*/ GIMT_Encode4(26604), // Rule ID 120 //
7651 /* 26586 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
7652 /* 26589 */ // MIs[0] dst
7653 /* 26589 */ // No operand predicates
7654 /* 26589 */ // MIs[0] lhs
7655 /* 26589 */ // No operand predicates
7656 /* 26589 */ // MIs[0] Operand 2
7657 /* 26589 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7658 /* 26593 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7659 /* 26598 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[2]]
7660 /* 26598 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7661 /* 26603 */ GIR_EraseRootFromParent_Done,
7662 /* 26604 */ // Label 253: @26604
7663 /* 26604 */ GIM_Try, /*On fail goto*//*Label 254*/ GIMT_Encode4(26629), // Rule ID 384 //
7664 /* 26609 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule252Enabled),
7665 /* 26612 */ // MIs[0] dst
7666 /* 26612 */ // No operand predicates
7667 /* 26612 */ // MIs[0] lhs
7668 /* 26612 */ // No operand predicates
7669 /* 26612 */ // MIs[0] rhs
7670 /* 26612 */ // No operand predicates
7671 /* 26612 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
7672 /* 26616 */ // Combiner Rule #252: G_OR_commute_constant_to_rhs
7673 /* 26616 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7674 /* 26619 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7675 /* 26621 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
7676 /* 26623 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
7677 /* 26625 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
7678 /* 26628 */ GIR_EraseRootFromParent_Done,
7679 /* 26629 */ // Label 254: @26629
7680 /* 26629 */ GIM_Try, /*On fail goto*//*Label 255*/ GIMT_Encode4(26640), // Rule ID 165 //
7681 /* 26634 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
7682 /* 26637 */ // MIs[0] root
7683 /* 26637 */ // No operand predicates
7684 /* 26637 */ // MIs[0] mi.x
7685 /* 26637 */ // No operand predicates
7686 /* 26637 */ // MIs[0] mi.y
7687 /* 26637 */ // No operand predicates
7688 /* 26637 */ // Combiner Rule #118: hoist_logic_op_with_same_opcode_hands @ [mi[1]]
7689 /* 26637 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
7690 /* 26640 */ // Label 255: @26640
7691 /* 26640 */ GIM_Try, /*On fail goto*//*Label 256*/ GIMT_Encode4(26651), // Rule ID 200 //
7692 /* 26645 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
7693 /* 26648 */ // MIs[0] dst
7694 /* 26648 */ // No operand predicates
7695 /* 26648 */ // MIs[0] src1
7696 /* 26648 */ // No operand predicates
7697 /* 26648 */ // MIs[0] src2
7698 /* 26648 */ // No operand predicates
7699 /* 26648 */ // Combiner Rule #150: redundant_or
7700 /* 26648 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
7701 /* 26651 */ // Label 256: @26651
7702 /* 26651 */ GIM_Try, /*On fail goto*//*Label 257*/ GIMT_Encode4(26662), // Rule ID 254 //
7703 /* 26656 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
7704 /* 26659 */ // MIs[0] dst
7705 /* 26659 */ // No operand predicates
7706 /* 26659 */ // MIs[0] src1
7707 /* 26659 */ // No operand predicates
7708 /* 26659 */ // MIs[0] src2
7709 /* 26659 */ // No operand predicates
7710 /* 26659 */ // Combiner Rule #192: load_or_combine
7711 /* 26659 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner71),
7712 /* 26662 */ // Label 257: @26662
7713 /* 26662 */ GIM_Try, /*On fail goto*//*Label 258*/ GIMT_Encode4(26673), // Rule ID 259 //
7714 /* 26667 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
7715 /* 26670 */ // MIs[0] dst
7716 /* 26670 */ // No operand predicates
7717 /* 26670 */ // MIs[0] src1
7718 /* 26670 */ // No operand predicates
7719 /* 26670 */ // MIs[0] src2
7720 /* 26670 */ // No operand predicates
7721 /* 26670 */ // Combiner Rule #194: funnel_shift_from_or_shift
7722 /* 26670 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner73),
7723 /* 26673 */ // Label 258: @26673
7724 /* 26673 */ GIM_Try, /*On fail goto*//*Label 259*/ GIMT_Encode4(26684), // Rule ID 286 //
7725 /* 26678 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
7726 /* 26681 */ // MIs[0] d
7727 /* 26681 */ // No operand predicates
7728 /* 26681 */ // MIs[0] mi.src0
7729 /* 26681 */ // No operand predicates
7730 /* 26681 */ // MIs[0] mi.src1
7731 /* 26681 */ // No operand predicates
7732 /* 26681 */ // Combiner Rule #210: constant_fold_binop @ [mi[6]]
7733 /* 26681 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
7734 /* 26684 */ // Label 259: @26684
7735 /* 26684 */ GIM_Try, /*On fail goto*//*Label 260*/ GIMT_Encode4(26695), // Rule ID 345 //
7736 /* 26689 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
7737 /* 26692 */ // MIs[0] root
7738 /* 26692 */ // No operand predicates
7739 /* 26692 */ // MIs[0] mi.x
7740 /* 26692 */ // No operand predicates
7741 /* 26692 */ // MIs[0] mi.y
7742 /* 26692 */ // No operand predicates
7743 /* 26692 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[4]]
7744 /* 26692 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
7745 /* 26695 */ // Label 260: @26695
7746 /* 26695 */ GIM_Try, /*On fail goto*//*Label 261*/ GIMT_Encode4(26706), // Rule ID 411 //
7747 /* 26700 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule279Enabled),
7748 /* 26703 */ // MIs[0] dst
7749 /* 26703 */ // No operand predicates
7750 /* 26703 */ // MIs[0] src1
7751 /* 26703 */ // No operand predicates
7752 /* 26703 */ // MIs[0] src2
7753 /* 26703 */ // No operand predicates
7754 /* 26703 */ // Combiner Rule #279: match_ors
7755 /* 26703 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7756 /* 26706 */ // Label 261: @26706
7757 /* 26706 */ GIM_Try, /*On fail goto*//*Label 262*/ GIMT_Encode4(26717), // Rule ID 456 //
7758 /* 26711 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule322Enabled),
7759 /* 26714 */ // MIs[0] root
7760 /* 26714 */ // No operand predicates
7761 /* 26714 */ // MIs[0] mi.x
7762 /* 26714 */ // No operand predicates
7763 /* 26714 */ // MIs[0] mi.y
7764 /* 26714 */ // No operand predicates
7765 /* 26714 */ // Combiner Rule #322: binop_with_neg @ [mi[1]]
7766 /* 26714 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7767 /* 26717 */ // Label 262: @26717
7768 /* 26717 */ GIM_Reject,
7769 /* 26718 */ // Label 10: @26718
7770 /* 26718 */ GIM_Try, /*On fail goto*//*Label 263*/ GIMT_Encode4(26778), // Rule ID 13 //
7771 /* 26723 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
7772 /* 26726 */ // MIs[0] root
7773 /* 26726 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
7774 /* 26730 */ // MIs[0] add
7775 /* 26730 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7776 /* 26734 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
7777 /* 26738 */ // MIs[1] A
7778 /* 26738 */ // No operand predicates
7779 /* 26738 */ // MIs[1] Operand 2
7780 /* 26738 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 255,
7781 /* 26742 */ // MIs[0] Operand 2
7782 /* 26742 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
7783 /* 26746 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
7784 /* 26750 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7785 /* 26752 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7786 /* 26755 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
7787 /* 26765 */ // Combiner Rule #13: NotAPlusNegOne
7788 /* 26765 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
7789 /* 26768 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7790 /* 26770 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
7791 /* 26773 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
7792 /* 26777 */ GIR_EraseRootFromParent_Done,
7793 /* 26778 */ // Label 263: @26778
7794 /* 26778 */ GIM_Try, /*On fail goto*//*Label 264*/ GIMT_Encode4(26802), // Rule ID 106 //
7795 /* 26783 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
7796 /* 26786 */ // MIs[0] dst
7797 /* 26786 */ // No operand predicates
7798 /* 26786 */ // MIs[0] __propagate_undef_any_op_match_0.x
7799 /* 26786 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7800 /* 26790 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7801 /* 26794 */ // MIs[0] __propagate_undef_any_op_match_0.y
7802 /* 26794 */ // No operand predicates
7803 /* 26794 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7804 /* 26796 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[2]]
7805 /* 26796 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7806 /* 26799 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7807 /* 26801 */ GIR_EraseRootFromParent_Done,
7808 /* 26802 */ // Label 264: @26802
7809 /* 26802 */ GIM_Try, /*On fail goto*//*Label 265*/ GIMT_Encode4(26841), // Rule ID 131 //
7810 /* 26807 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
7811 /* 26810 */ // MIs[0] dst
7812 /* 26810 */ // No operand predicates
7813 /* 26810 */ // MIs[0] x
7814 /* 26810 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
7815 /* 26814 */ // MIs[0] x
7816 /* 26814 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
7817 /* 26819 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7818 /* 26822 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
7819 /* 26832 */ // Combiner Rule #94: same_val_zero @ [__same_val_zero_match_0[1]]
7820 /* 26832 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7821 /* 26835 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7822 /* 26837 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
7823 /* 26840 */ GIR_EraseRootFromParent_Done,
7824 /* 26841 */ // Label 265: @26841
7825 /* 26841 */ GIM_Try, /*On fail goto*//*Label 266*/ GIMT_Encode4(26865), // Rule ID 109 //
7826 /* 26846 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
7827 /* 26849 */ // MIs[0] dst
7828 /* 26849 */ // No operand predicates
7829 /* 26849 */ // MIs[0] __propagate_undef_any_op_match_0.x
7830 /* 26849 */ // No operand predicates
7831 /* 26849 */ // MIs[0] __propagate_undef_any_op_match_0.y
7832 /* 26849 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7833 /* 26853 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7834 /* 26857 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7835 /* 26859 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[5]]
7836 /* 26859 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7837 /* 26862 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7838 /* 26864 */ GIR_EraseRootFromParent_Done,
7839 /* 26865 */ // Label 266: @26865
7840 /* 26865 */ GIM_Try, /*On fail goto*//*Label 267*/ GIMT_Encode4(26888), // Rule ID 121 //
7841 /* 26870 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
7842 /* 26873 */ // MIs[0] dst
7843 /* 26873 */ // No operand predicates
7844 /* 26873 */ // MIs[0] lhs
7845 /* 26873 */ // No operand predicates
7846 /* 26873 */ // MIs[0] Operand 2
7847 /* 26873 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7848 /* 26877 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7849 /* 26882 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[3]]
7850 /* 26882 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7851 /* 26887 */ GIR_EraseRootFromParent_Done,
7852 /* 26888 */ // Label 267: @26888
7853 /* 26888 */ GIM_Try, /*On fail goto*//*Label 268*/ GIMT_Encode4(26913), // Rule ID 385 //
7854 /* 26893 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule253Enabled),
7855 /* 26896 */ // MIs[0] dst
7856 /* 26896 */ // No operand predicates
7857 /* 26896 */ // MIs[0] lhs
7858 /* 26896 */ // No operand predicates
7859 /* 26896 */ // MIs[0] rhs
7860 /* 26896 */ // No operand predicates
7861 /* 26896 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
7862 /* 26900 */ // Combiner Rule #253: G_XOR_commute_constant_to_rhs
7863 /* 26900 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
7864 /* 26903 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7865 /* 26905 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
7866 /* 26907 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
7867 /* 26909 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
7868 /* 26912 */ GIR_EraseRootFromParent_Done,
7869 /* 26913 */ // Label 268: @26913
7870 /* 26913 */ GIM_Try, /*On fail goto*//*Label 269*/ GIMT_Encode4(26924), // Rule ID 166 //
7871 /* 26918 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
7872 /* 26921 */ // MIs[0] root
7873 /* 26921 */ // No operand predicates
7874 /* 26921 */ // MIs[0] mi.x
7875 /* 26921 */ // No operand predicates
7876 /* 26921 */ // MIs[0] mi.y
7877 /* 26921 */ // No operand predicates
7878 /* 26921 */ // Combiner Rule #118: hoist_logic_op_with_same_opcode_hands @ [mi[2]]
7879 /* 26921 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
7880 /* 26924 */ // Label 269: @26924
7881 /* 26924 */ GIM_Try, /*On fail goto*//*Label 270*/ GIMT_Encode4(26935), // Rule ID 205 //
7882 /* 26929 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
7883 /* 26932 */ // MIs[0] dst
7884 /* 26932 */ // No operand predicates
7885 /* 26932 */ // MIs[0] src1
7886 /* 26932 */ // No operand predicates
7887 /* 26932 */ // MIs[0] src2
7888 /* 26932 */ // No operand predicates
7889 /* 26932 */ // Combiner Rule #155: not_cmp_fold
7890 /* 26932 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner61),
7891 /* 26935 */ // Label 270: @26935
7892 /* 26935 */ GIM_Try, /*On fail goto*//*Label 271*/ GIMT_Encode4(26946), // Rule ID 241 //
7893 /* 26940 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
7894 /* 26943 */ // MIs[0] dst
7895 /* 26943 */ // No operand predicates
7896 /* 26943 */ // MIs[0] src1
7897 /* 26943 */ // No operand predicates
7898 /* 26943 */ // MIs[0] src2
7899 /* 26943 */ // No operand predicates
7900 /* 26943 */ // Combiner Rule #187: xor_of_and_with_same_reg
7901 /* 26943 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner68),
7902 /* 26946 */ // Label 271: @26946
7903 /* 26946 */ GIM_Try, /*On fail goto*//*Label 272*/ GIMT_Encode4(26957), // Rule ID 289 //
7904 /* 26951 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
7905 /* 26954 */ // MIs[0] d
7906 /* 26954 */ // No operand predicates
7907 /* 26954 */ // MIs[0] mi.src0
7908 /* 26954 */ // No operand predicates
7909 /* 26954 */ // MIs[0] mi.src1
7910 /* 26954 */ // No operand predicates
7911 /* 26954 */ // Combiner Rule #210: constant_fold_binop @ [mi[9]]
7912 /* 26954 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
7913 /* 26957 */ // Label 272: @26957
7914 /* 26957 */ GIM_Try, /*On fail goto*//*Label 273*/ GIMT_Encode4(26968), // Rule ID 346 //
7915 /* 26962 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
7916 /* 26965 */ // MIs[0] root
7917 /* 26965 */ // No operand predicates
7918 /* 26965 */ // MIs[0] mi.x
7919 /* 26965 */ // No operand predicates
7920 /* 26965 */ // MIs[0] mi.y
7921 /* 26965 */ // No operand predicates
7922 /* 26965 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[5]]
7923 /* 26965 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
7924 /* 26968 */ // Label 273: @26968
7925 /* 26968 */ GIM_Try, /*On fail goto*//*Label 274*/ GIMT_Encode4(26979), // Rule ID 457 //
7926 /* 26973 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule322Enabled),
7927 /* 26976 */ // MIs[0] root
7928 /* 26976 */ // No operand predicates
7929 /* 26976 */ // MIs[0] mi.x
7930 /* 26976 */ // No operand predicates
7931 /* 26976 */ // MIs[0] mi.y
7932 /* 26976 */ // No operand predicates
7933 /* 26976 */ // Combiner Rule #322: binop_with_neg @ [mi[2]]
7934 /* 26976 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7935 /* 26979 */ // Label 274: @26979
7936 /* 26979 */ GIM_Reject,
7937 /* 26980 */ // Label 11: @26980
7938 /* 26980 */ GIM_Try, /*On fail goto*//*Label 275*/ GIMT_Encode4(26994), // Rule ID 161 //
7939 /* 26985 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule116Enabled),
7940 /* 26988 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
7941 /* 26991 */ // MIs[0] dst
7942 /* 26991 */ // No operand predicates
7943 /* 26991 */ // MIs[0] srcs
7944 /* 26991 */ // No operand predicates
7945 /* 26991 */ // Combiner Rule #116: extend_through_phis
7946 /* 26991 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
7947 /* 26994 */ // Label 275: @26994
7948 /* 26994 */ GIM_Reject,
7949 /* 26995 */ // Label 12: @26995
7950 /* 26995 */ GIM_Try, /*On fail goto*//*Label 276*/ GIMT_Encode4(27006), // Rule ID 427 //
7951 /* 27000 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule295Enabled),
7952 /* 27003 */ // Combiner Rule #295: unmerge_anyext_build_vector; wip_match_opcode 'G_UNMERGE_VALUES'
7953 /* 27003 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
7954 /* 27006 */ // Label 276: @27006
7955 /* 27006 */ GIM_Try, /*On fail goto*//*Label 277*/ GIMT_Encode4(27017), // Rule ID 428 //
7956 /* 27011 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule296Enabled),
7957 /* 27014 */ // Combiner Rule #296: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
7958 /* 27014 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114),
7959 /* 27017 */ // Label 277: @27017
7960 /* 27017 */ GIM_Try, /*On fail goto*//*Label 278*/ GIMT_Encode4(27028), // Rule ID 430 //
7961 /* 27022 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule298Enabled),
7962 /* 27025 */ // Combiner Rule #298: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
7963 /* 27025 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner116),
7964 /* 27028 */ // Label 278: @27028
7965 /* 27028 */ GIM_Try, /*On fail goto*//*Label 279*/ GIMT_Encode4(27039), // Rule ID 431 //
7966 /* 27033 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule299Enabled),
7967 /* 27036 */ // Combiner Rule #299: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
7968 /* 27036 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner117),
7969 /* 27039 */ // Label 279: @27039
7970 /* 27039 */ GIM_Try, /*On fail goto*//*Label 280*/ GIMT_Encode4(27050), // Rule ID 432 //
7971 /* 27044 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule300Enabled),
7972 /* 27047 */ // Combiner Rule #300: unmerge_dead_to_trunc; wip_match_opcode 'G_UNMERGE_VALUES'
7973 /* 27047 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7974 /* 27050 */ // Label 280: @27050
7975 /* 27050 */ GIM_Try, /*On fail goto*//*Label 281*/ GIMT_Encode4(27061), // Rule ID 433 //
7976 /* 27055 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule301Enabled),
7977 /* 27058 */ // Combiner Rule #301: unmerge_zext_to_zext; wip_match_opcode 'G_UNMERGE_VALUES'
7978 /* 27058 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
7979 /* 27061 */ // Label 281: @27061
7980 /* 27061 */ GIM_Reject,
7981 /* 27062 */ // Label 13: @27062
7982 /* 27062 */ GIM_Try, /*On fail goto*//*Label 282*/ GIMT_Encode4(27076), // Rule ID 429 //
7983 /* 27067 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule297Enabled),
7984 /* 27070 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
7985 /* 27073 */ // MIs[0] dst
7986 /* 27073 */ // No operand predicates
7987 /* 27073 */ // MIs[0] merge_srcs
7988 /* 27073 */ // No operand predicates
7989 /* 27073 */ // Combiner Rule #297: merge_unmerge
7990 /* 27073 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner115),
7991 /* 27076 */ // Label 282: @27076
7992 /* 27076 */ GIM_Try, /*On fail goto*//*Label 283*/ GIMT_Encode4(27156),
7993 /* 27081 */ GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
7994 /* 27084 */ GIM_Try, /*On fail goto*//*Label 284*/ GIMT_Encode4(27114), // Rule ID 434 //
7995 /* 27089 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule302Enabled),
7996 /* 27092 */ // MIs[0] root
7997 /* 27092 */ // No operand predicates
7998 /* 27092 */ // MIs[0] x
7999 /* 27092 */ // No operand predicates
8000 /* 27092 */ // MIs[0] undef
8001 /* 27092 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8002 /* 27096 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8003 /* 27100 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner50),
8004 /* 27104 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8005 /* 27106 */ // Combiner Rule #302: merge_of_x_and_undef
8006 /* 27106 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ANYEXT),
8007 /* 27109 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
8008 /* 27111 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
8009 /* 27113 */ GIR_EraseRootFromParent_Done,
8010 /* 27114 */ // Label 284: @27114
8011 /* 27114 */ GIM_Try, /*On fail goto*//*Label 285*/ GIMT_Encode4(27155), // Rule ID 435 //
8012 /* 27119 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule303Enabled),
8013 /* 27122 */ // MIs[0] root
8014 /* 27122 */ // No operand predicates
8015 /* 27122 */ // MIs[0] x
8016 /* 27122 */ // No operand predicates
8017 /* 27122 */ // MIs[0] zero
8018 /* 27122 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8019 /* 27126 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8020 /* 27130 */ // MIs[1] Operand 1
8021 /* 27130 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
8022 /* 27141 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner51),
8023 /* 27145 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8024 /* 27147 */ // Combiner Rule #303: merge_of_x_and_zero
8025 /* 27147 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
8026 /* 27150 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
8027 /* 27152 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
8028 /* 27154 */ GIR_EraseRootFromParent_Done,
8029 /* 27155 */ // Label 285: @27155
8030 /* 27155 */ GIM_Reject,
8031 /* 27156 */ // Label 283: @27156
8032 /* 27156 */ GIM_Reject,
8033 /* 27157 */ // Label 14: @27157
8034 /* 27157 */ GIM_Try, /*On fail goto*//*Label 286*/ GIMT_Encode4(27228),
8035 /* 27162 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
8036 /* 27165 */ GIM_Try, /*On fail goto*//*Label 287*/ GIMT_Encode4(27183), // Rule ID 111 //
8037 /* 27170 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
8038 /* 27173 */ // MIs[0] root
8039 /* 27173 */ // No operand predicates
8040 /* 27173 */ // MIs[0] srcs
8041 /* 27173 */ // No operand predicates
8042 /* 27173 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
8043 /* 27177 */ // Combiner Rule #85: propagate_undef_all_ops_build_vector
8044 /* 27177 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8045 /* 27180 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
8046 /* 27182 */ GIR_EraseRootFromParent_Done,
8047 /* 27183 */ // Label 287: @27183
8048 /* 27183 */ GIM_Try, /*On fail goto*//*Label 288*/ GIMT_Encode4(27194), // Rule ID 76 //
8049 /* 27188 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
8050 /* 27191 */ // MIs[0] dst
8051 /* 27191 */ // No operand predicates
8052 /* 27191 */ // MIs[0] srcs
8053 /* 27191 */ // No operand predicates
8054 /* 27191 */ // Combiner Rule #72: extract_all_elts_from_build_vector
8055 /* 27191 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner26),
8056 /* 27194 */ // Label 288: @27194
8057 /* 27194 */ GIM_Try, /*On fail goto*//*Label 289*/ GIMT_Encode4(27205), // Rule ID 151 //
8058 /* 27199 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
8059 /* 27202 */ // MIs[0] build_vector
8060 /* 27202 */ // No operand predicates
8061 /* 27202 */ // MIs[0] srcs
8062 /* 27202 */ // No operand predicates
8063 /* 27202 */ // Combiner Rule #106: buildvector_identity_fold_bv
8064 /* 27202 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
8065 /* 27205 */ // Label 289: @27205
8066 /* 27205 */ GIM_Try, /*On fail goto*//*Label 290*/ GIMT_Encode4(27216), // Rule ID 426 //
8067 /* 27210 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule294Enabled),
8068 /* 27213 */ // MIs[0] dst
8069 /* 27213 */ // No operand predicates
8070 /* 27213 */ // MIs[0] unused
8071 /* 27213 */ // No operand predicates
8072 /* 27213 */ // Combiner Rule #294: combine_use_vector_truncate
8073 /* 27213 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner112),
8074 /* 27216 */ // Label 290: @27216
8075 /* 27216 */ GIM_Try, /*On fail goto*//*Label 291*/ GIMT_Encode4(27227), // Rule ID 436 //
8076 /* 27221 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule304Enabled),
8077 /* 27224 */ // MIs[0] dst
8078 /* 27224 */ // No operand predicates
8079 /* 27224 */ // MIs[0] unused
8080 /* 27224 */ // No operand predicates
8081 /* 27224 */ // Combiner Rule #304: combine_build_unmerge
8082 /* 27224 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
8083 /* 27227 */ // Label 291: @27227
8084 /* 27227 */ GIM_Reject,
8085 /* 27228 */ // Label 286: @27228
8086 /* 27228 */ GIM_Reject,
8087 /* 27229 */ // Label 15: @27229
8088 /* 27229 */ GIM_Try, /*On fail goto*//*Label 292*/ GIMT_Encode4(27243), // Rule ID 152 //
8089 /* 27234 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
8090 /* 27237 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
8091 /* 27240 */ // MIs[0] build_vector
8092 /* 27240 */ // No operand predicates
8093 /* 27240 */ // MIs[0] srcs
8094 /* 27240 */ // No operand predicates
8095 /* 27240 */ // Combiner Rule #107: buildvector_identity_fold_bvt
8096 /* 27240 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
8097 /* 27243 */ // Label 292: @27243
8098 /* 27243 */ GIM_Reject,
8099 /* 27244 */ // Label 16: @27244
8100 /* 27244 */ GIM_Try, /*On fail goto*//*Label 293*/ GIMT_Encode4(27258), // Rule ID 419 //
8101 /* 27249 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule287Enabled),
8102 /* 27252 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
8103 /* 27255 */ // MIs[0] dst
8104 /* 27255 */ // No operand predicates
8105 /* 27255 */ // MIs[0] srcs
8106 /* 27255 */ // No operand predicates
8107 /* 27255 */ // Combiner Rule #287: combine_concat_vector
8108 /* 27255 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
8109 /* 27258 */ // Label 293: @27258
8110 /* 27258 */ GIM_Reject,
8111 /* 27259 */ // Label 17: @27259
8112 /* 27259 */ GIM_Try, /*On fail goto*//*Label 294*/ GIMT_Encode4(27291), // Rule ID 142 //
8113 /* 27264 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule98Enabled),
8114 /* 27267 */ // MIs[0] dst
8115 /* 27267 */ // No operand predicates
8116 /* 27267 */ // MIs[0] t
8117 /* 27267 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8118 /* 27271 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
8119 /* 27275 */ // MIs[1] ptr
8120 /* 27275 */ // No operand predicates
8121 /* 27275 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner14),
8122 /* 27279 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8123 /* 27281 */ // Combiner Rule #98: i2p_to_p2i_same_size
8124 /* 27281 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8125 /* 27284 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8126 /* 27286 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
8127 /* 27290 */ GIR_EraseRootFromParent_Done,
8128 /* 27291 */ // Label 294: @27291
8129 /* 27291 */ GIM_Try, /*On fail goto*//*Label 295*/ GIMT_Encode4(27323), // Rule ID 143 //
8130 /* 27296 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule99Enabled),
8131 /* 27299 */ // MIs[0] dst
8132 /* 27299 */ // No operand predicates
8133 /* 27299 */ // MIs[0] t
8134 /* 27299 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8135 /* 27303 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
8136 /* 27307 */ // MIs[1] ptr
8137 /* 27307 */ // No operand predicates
8138 /* 27307 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner15),
8139 /* 27311 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8140 /* 27313 */ // Combiner Rule #99: i2p_to_p2i_zext
8141 /* 27313 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
8142 /* 27316 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8143 /* 27318 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
8144 /* 27322 */ GIR_EraseRootFromParent_Done,
8145 /* 27323 */ // Label 295: @27323
8146 /* 27323 */ GIM_Try, /*On fail goto*//*Label 296*/ GIMT_Encode4(27355), // Rule ID 144 //
8147 /* 27328 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule100Enabled),
8148 /* 27331 */ // MIs[0] dst
8149 /* 27331 */ // No operand predicates
8150 /* 27331 */ // MIs[0] t
8151 /* 27331 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8152 /* 27335 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
8153 /* 27339 */ // MIs[1] ptr
8154 /* 27339 */ // No operand predicates
8155 /* 27339 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner16),
8156 /* 27343 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8157 /* 27345 */ // Combiner Rule #100: i2p_to_p2i_trunc
8158 /* 27345 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_TRUNC),
8159 /* 27348 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8160 /* 27350 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
8161 /* 27354 */ GIR_EraseRootFromParent_Done,
8162 /* 27355 */ // Label 296: @27355
8163 /* 27355 */ GIM_Try, /*On fail goto*//*Label 297*/ GIMT_Encode4(27379), // Rule ID 100 //
8164 /* 27360 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
8165 /* 27363 */ // MIs[0] dst
8166 /* 27363 */ // No operand predicates
8167 /* 27363 */ // MIs[0] __unary_undef_to_undef_match_0.x
8168 /* 27363 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8169 /* 27367 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8170 /* 27371 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8171 /* 27373 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[3]]
8172 /* 27373 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8173 /* 27376 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8174 /* 27378 */ GIR_EraseRootFromParent_Done,
8175 /* 27379 */ // Label 297: @27379
8176 /* 27379 */ GIM_Reject,
8177 /* 27380 */ // Label 18: @27380
8178 /* 27380 */ GIM_Try, /*On fail goto*//*Label 298*/ GIMT_Encode4(27413), // Rule ID 141 //
8179 /* 27385 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled),
8180 /* 27388 */ // MIs[0] dst
8181 /* 27388 */ // No operand predicates
8182 /* 27388 */ // MIs[0] mid
8183 /* 27388 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8184 /* 27392 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_PTRTOINT),
8185 /* 27396 */ // MIs[1] x
8186 /* 27396 */ // No operand predicates
8187 /* 27396 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
8188 /* 27400 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
8189 /* 27405 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8190 /* 27407 */ // Combiner Rule #97: p2i_to_i2p
8191 /* 27407 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
8192 /* 27412 */ GIR_EraseRootFromParent_Done,
8193 /* 27413 */ // Label 298: @27413
8194 /* 27413 */ GIM_Try, /*On fail goto*//*Label 299*/ GIMT_Encode4(27437), // Rule ID 101 //
8195 /* 27418 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
8196 /* 27421 */ // MIs[0] dst
8197 /* 27421 */ // No operand predicates
8198 /* 27421 */ // MIs[0] __unary_undef_to_undef_match_0.x
8199 /* 27421 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8200 /* 27425 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8201 /* 27429 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8202 /* 27431 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[4]]
8203 /* 27431 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8204 /* 27434 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8205 /* 27436 */ GIR_EraseRootFromParent_Done,
8206 /* 27437 */ // Label 299: @27437
8207 /* 27437 */ GIM_Reject,
8208 /* 27438 */ // Label 19: @27438
8209 /* 27438 */ GIM_Try, /*On fail goto*//*Label 300*/ GIMT_Encode4(27471), // Rule ID 155 //
8210 /* 27443 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled),
8211 /* 27446 */ // MIs[0] dst
8212 /* 27446 */ // No operand predicates
8213 /* 27446 */ // MIs[0] src1
8214 /* 27446 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8215 /* 27450 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
8216 /* 27454 */ // MIs[1] src0
8217 /* 27454 */ // No operand predicates
8218 /* 27454 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
8219 /* 27458 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
8220 /* 27463 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8221 /* 27465 */ // Combiner Rule #110: bitcast_bitcast_fold
8222 /* 27465 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
8223 /* 27470 */ GIR_EraseRootFromParent_Done,
8224 /* 27471 */ // Label 300: @27471
8225 /* 27471 */ GIM_Try, /*On fail goto*//*Label 301*/ GIMT_Encode4(27503), // Rule ID 156 //
8226 /* 27476 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
8227 /* 27479 */ // MIs[0] dst
8228 /* 27479 */ // No operand predicates
8229 /* 27479 */ // MIs[0] src1
8230 /* 27479 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8231 /* 27483 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
8232 /* 27487 */ // MIs[1] src0
8233 /* 27487 */ // No operand predicates
8234 /* 27487 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner18),
8235 /* 27491 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8236 /* 27493 */ // Combiner Rule #111: bitcast_bitcast_to_bitcast
8237 /* 27493 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_BITCAST),
8238 /* 27496 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8239 /* 27498 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src0
8240 /* 27502 */ GIR_EraseRootFromParent_Done,
8241 /* 27503 */ // Label 301: @27503
8242 /* 27503 */ GIM_Try, /*On fail goto*//*Label 302*/ GIMT_Encode4(27527), // Rule ID 98 //
8243 /* 27508 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
8244 /* 27511 */ // MIs[0] dst
8245 /* 27511 */ // No operand predicates
8246 /* 27511 */ // MIs[0] __unary_undef_to_undef_match_0.x
8247 /* 27511 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8248 /* 27515 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8249 /* 27519 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8250 /* 27521 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[1]]
8251 /* 27521 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8252 /* 27524 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8253 /* 27526 */ GIR_EraseRootFromParent_Done,
8254 /* 27527 */ // Label 302: @27527
8255 /* 27527 */ GIM_Reject,
8256 /* 27528 */ // Label 20: @27528
8257 /* 27528 */ GIM_Try, /*On fail goto*//*Label 303*/ GIMT_Encode4(27557), // Rule ID 25 //
8258 /* 27533 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
8259 /* 27536 */ // MIs[0] dst
8260 /* 27536 */ // No operand predicates
8261 /* 27536 */ // MIs[0] src
8262 /* 27536 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8263 /* 27540 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREEZE),
8264 /* 27544 */ // MIs[1] __idempotent_prop_match_0.x
8265 /* 27544 */ // No operand predicates
8266 /* 27544 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8267 /* 27549 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8268 /* 27551 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[0]]
8269 /* 27551 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8270 /* 27556 */ GIR_EraseRootFromParent_Done,
8271 /* 27557 */ // Label 303: @27557
8272 /* 27557 */ GIM_Try, /*On fail goto*//*Label 304*/ GIMT_Encode4(27580), // Rule ID 50 //
8273 /* 27562 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
8274 /* 27565 */ // MIs[0] root
8275 /* 27565 */ // No operand predicates
8276 /* 27565 */ // MIs[0] src
8277 /* 27565 */ // No operand predicates
8278 /* 27565 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
8279 /* 27569 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8280 /* 27574 */ // Combiner Rule #46: freeze_of_non_undef_non_poison
8281 /* 27574 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8282 /* 27579 */ GIR_EraseRootFromParent_Done,
8283 /* 27580 */ // Label 304: @27580
8284 /* 27580 */ GIM_Try, /*On fail goto*//*Label 305*/ GIMT_Encode4(27591), // Rule ID 51 //
8285 /* 27585 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
8286 /* 27588 */ // MIs[0] dst
8287 /* 27588 */ // No operand predicates
8288 /* 27588 */ // MIs[0] src
8289 /* 27588 */ // No operand predicates
8290 /* 27588 */ // Combiner Rule #47: push_freeze_to_prevent_poison_from_propagating
8291 /* 27588 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
8292 /* 27591 */ // Label 305: @27591
8293 /* 27591 */ GIM_Reject,
8294 /* 27592 */ // Label 21: @27592
8295 /* 27592 */ GIM_Try, /*On fail goto*//*Label 306*/ GIMT_Encode4(27613), // Rule ID 215 //
8296 /* 27597 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
8297 /* 27600 */ // MIs[0] dst
8298 /* 27600 */ // No operand predicates
8299 /* 27600 */ // MIs[0] src0
8300 /* 27600 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8301 /* 27604 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8302 /* 27608 */ // MIs[1] cst
8303 /* 27608 */ // No operand predicates
8304 /* 27608 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8305 /* 27610 */ // Combiner Rule #165: constant_fold_intrinsic_trunc
8306 /* 27610 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
8307 /* 27613 */ // Label 306: @27613
8308 /* 27613 */ GIM_Reject,
8309 /* 27614 */ // Label 22: @27614
8310 /* 27614 */ GIM_Try, /*On fail goto*//*Label 307*/ GIMT_Encode4(27635), // Rule ID 216 //
8311 /* 27619 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
8312 /* 27622 */ // MIs[0] dst
8313 /* 27622 */ // No operand predicates
8314 /* 27622 */ // MIs[0] src0
8315 /* 27622 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8316 /* 27626 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8317 /* 27630 */ // MIs[1] cst
8318 /* 27630 */ // No operand predicates
8319 /* 27630 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8320 /* 27632 */ // Combiner Rule #166: constant_fold_intrinsic_round
8321 /* 27632 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
8322 /* 27635 */ // Label 307: @27635
8323 /* 27635 */ GIM_Reject,
8324 /* 27636 */ // Label 23: @27636
8325 /* 27636 */ GIM_Try, /*On fail goto*//*Label 308*/ GIMT_Encode4(27657), // Rule ID 217 //
8326 /* 27641 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
8327 /* 27644 */ // MIs[0] dst
8328 /* 27644 */ // No operand predicates
8329 /* 27644 */ // MIs[0] src0
8330 /* 27644 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8331 /* 27648 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8332 /* 27652 */ // MIs[1] cst
8333 /* 27652 */ // No operand predicates
8334 /* 27652 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8335 /* 27654 */ // Combiner Rule #167: constant_fold_intrinsic_roundeven
8336 /* 27654 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
8337 /* 27657 */ // Label 308: @27657
8338 /* 27657 */ GIM_Reject,
8339 /* 27658 */ // Label 24: @27658
8340 /* 27658 */ GIM_Try, /*On fail goto*//*Label 309*/ GIMT_Encode4(27669), // Rule ID 77 //
8341 /* 27663 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
8342 /* 27666 */ // MIs[0] root
8343 /* 27666 */ // No operand predicates
8344 /* 27666 */ // MIs[0] mi.ptr
8345 /* 27666 */ // No operand predicates
8346 /* 27666 */ // Combiner Rule #73: extending_loads @ [mi[0]]
8347 /* 27666 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
8348 /* 27669 */ // Label 309: @27669
8349 /* 27669 */ GIM_Reject,
8350 /* 27670 */ // Label 25: @27670
8351 /* 27670 */ GIM_Try, /*On fail goto*//*Label 310*/ GIMT_Encode4(27681), // Rule ID 78 //
8352 /* 27675 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
8353 /* 27678 */ // MIs[0] root
8354 /* 27678 */ // No operand predicates
8355 /* 27678 */ // MIs[0] mi.ptr
8356 /* 27678 */ // No operand predicates
8357 /* 27678 */ // Combiner Rule #73: extending_loads @ [mi[1]]
8358 /* 27678 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
8359 /* 27681 */ // Label 310: @27681
8360 /* 27681 */ GIM_Reject,
8361 /* 27682 */ // Label 26: @27682
8362 /* 27682 */ GIM_Try, /*On fail goto*//*Label 311*/ GIMT_Encode4(27693), // Rule ID 79 //
8363 /* 27687 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
8364 /* 27690 */ // MIs[0] root
8365 /* 27690 */ // No operand predicates
8366 /* 27690 */ // MIs[0] mi.ptr
8367 /* 27690 */ // No operand predicates
8368 /* 27690 */ // Combiner Rule #73: extending_loads @ [mi[2]]
8369 /* 27690 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
8370 /* 27693 */ // Label 311: @27693
8371 /* 27693 */ GIM_Reject,
8372 /* 27694 */ // Label 27: @27694
8373 /* 27694 */ GIM_Try, /*On fail goto*//*Label 312*/ GIMT_Encode4(27717), // Rule ID 113 //
8374 /* 27699 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
8375 /* 27702 */ // MIs[0] val
8376 /* 27702 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/0, // MIs[1]
8377 /* 27706 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8378 /* 27710 */ // MIs[0] ptr
8379 /* 27710 */ // No operand predicates
8380 /* 27710 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
8381 /* 27714 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8382 /* 27716 */ // Combiner Rule #87: erase_undef_store
8383 /* 27716 */ GIR_EraseRootFromParent_Done,
8384 /* 27717 */ // Label 312: @27717
8385 /* 27717 */ GIM_Reject,
8386 /* 27718 */ // Label 28: @27718
8387 /* 27718 */ GIM_Try, /*On fail goto*//*Label 313*/ GIMT_Encode4(27899),
8388 /* 27723 */ GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
8389 /* 27726 */ GIM_Try, /*On fail goto*//*Label 314*/ GIMT_Encode4(27786), // Rule ID 483 //
8390 /* 27731 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule341Enabled),
8391 /* 27734 */ GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::amdgcn_rcp),
8392 /* 27739 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmContract),
8393 /* 27745 */ // MIs[0] dst
8394 /* 27745 */ // No operand predicates
8395 /* 27745 */ // MIs[0] sqrt
8396 /* 27745 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8397 /* 27749 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC),
8398 /* 27753 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
8399 /* 27756 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::FmContract),
8400 /* 27762 */ // MIs[1] sqrt
8401 /* 27762 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/2,
8402 /* 27767 */ // MIs[1] x
8403 /* 27767 */ // No operand predicates
8404 /* 27767 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8405 /* 27769 */ // Combiner Rule #341: rcp_of_amdgcn_sqrt_to_rsq
8406 /* 27769 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_INTRINSIC),
8407 /* 27772 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8408 /* 27774 */ GIR_AddIntrinsicID, /*MI*/0, GIMT_Encode2(Intrinsic::amdgcn_rsq),
8409 /* 27778 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // x
8410 /* 27782 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
8411 /* 27785 */ GIR_EraseRootFromParent_Done,
8412 /* 27786 */ // Label 314: @27786
8413 /* 27786 */ GIM_Try, /*On fail goto*//*Label 315*/ GIMT_Encode4(27846), // Rule ID 485 //
8414 /* 27791 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule343Enabled),
8415 /* 27794 */ GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::amdgcn_sqrt),
8416 /* 27799 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmContract),
8417 /* 27805 */ // MIs[0] dst
8418 /* 27805 */ // No operand predicates
8419 /* 27805 */ // MIs[0] rcp
8420 /* 27805 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8421 /* 27809 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC),
8422 /* 27813 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
8423 /* 27816 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::FmContract),
8424 /* 27822 */ // MIs[1] rcp
8425 /* 27822 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/2,
8426 /* 27827 */ // MIs[1] x
8427 /* 27827 */ // No operand predicates
8428 /* 27827 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8429 /* 27829 */ // Combiner Rule #343: amdgcn_sqrt_of_rcp_to_rsq
8430 /* 27829 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_INTRINSIC),
8431 /* 27832 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8432 /* 27834 */ GIR_AddIntrinsicID, /*MI*/0, GIMT_Encode2(Intrinsic::amdgcn_rsq),
8433 /* 27838 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // x
8434 /* 27842 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
8435 /* 27845 */ GIR_EraseRootFromParent_Done,
8436 /* 27846 */ // Label 315: @27846
8437 /* 27846 */ GIM_Try, /*On fail goto*//*Label 316*/ GIMT_Encode4(27898), // Rule ID 482 //
8438 /* 27851 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule340Enabled),
8439 /* 27854 */ GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::amdgcn_rcp),
8440 /* 27859 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmContract),
8441 /* 27865 */ // MIs[0] dst
8442 /* 27865 */ // No operand predicates
8443 /* 27865 */ // MIs[0] sqrt
8444 /* 27865 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8445 /* 27869 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSQRT),
8446 /* 27873 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::FmContract),
8447 /* 27879 */ // MIs[1] x
8448 /* 27879 */ // No operand predicates
8449 /* 27879 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8450 /* 27881 */ // Combiner Rule #340: rcp_of_fsqrt_to_rsq
8451 /* 27881 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_INTRINSIC),
8452 /* 27884 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8453 /* 27886 */ GIR_AddIntrinsicID, /*MI*/0, GIMT_Encode2(Intrinsic::amdgcn_rsq),
8454 /* 27890 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
8455 /* 27894 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
8456 /* 27897 */ GIR_EraseRootFromParent_Done,
8457 /* 27898 */ // Label 316: @27898
8458 /* 27898 */ GIM_Reject,
8459 /* 27899 */ // Label 313: @27899
8460 /* 27899 */ GIM_Reject,
8461 /* 27900 */ // Label 29: @27900
8462 /* 27900 */ GIM_Try, /*On fail goto*//*Label 317*/ GIMT_Encode4(27921), // Rule ID 64 //
8463 /* 27905 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled),
8464 /* 27908 */ // MIs[0] root
8465 /* 27908 */ // No operand predicates
8466 /* 27908 */ // MIs[0] select
8467 /* 27908 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8468 /* 27912 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
8469 /* 27916 */ // MIs[1] cond
8470 /* 27916 */ // No operand predicates
8471 /* 27916 */ // MIs[1] true
8472 /* 27916 */ // No operand predicates
8473 /* 27916 */ // MIs[1] false
8474 /* 27916 */ // No operand predicates
8475 /* 27916 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8476 /* 27918 */ // Combiner Rule #60: select_of_anyext
8477 /* 27918 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
8478 /* 27921 */ // Label 317: @27921
8479 /* 27921 */ GIM_Try, /*On fail goto*//*Label 318*/ GIMT_Encode4(27942), // Rule ID 59 //
8480 /* 27926 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
8481 /* 27929 */ // MIs[0] root
8482 /* 27929 */ // No operand predicates
8483 /* 27929 */ // MIs[0] second
8484 /* 27929 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8485 /* 27933 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8486 /* 27937 */ // MIs[1] src
8487 /* 27937 */ // No operand predicates
8488 /* 27937 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8489 /* 27939 */ // Combiner Rule #55: anyext_of_anyext
8490 /* 27939 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
8491 /* 27942 */ // Label 318: @27942
8492 /* 27942 */ GIM_Try, /*On fail goto*//*Label 319*/ GIMT_Encode4(27963), // Rule ID 61 //
8493 /* 27947 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
8494 /* 27950 */ // MIs[0] root
8495 /* 27950 */ // No operand predicates
8496 /* 27950 */ // MIs[0] second
8497 /* 27950 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8498 /* 27954 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
8499 /* 27958 */ // MIs[1] src
8500 /* 27958 */ // No operand predicates
8501 /* 27958 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8502 /* 27960 */ // Combiner Rule #57: anyext_of_sext
8503 /* 27960 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
8504 /* 27963 */ // Label 319: @27963
8505 /* 27963 */ GIM_Try, /*On fail goto*//*Label 320*/ GIMT_Encode4(27984), // Rule ID 60 //
8506 /* 27968 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
8507 /* 27971 */ // MIs[0] root
8508 /* 27971 */ // No operand predicates
8509 /* 27971 */ // MIs[0] second
8510 /* 27971 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8511 /* 27975 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
8512 /* 27979 */ // MIs[1] src
8513 /* 27979 */ // No operand predicates
8514 /* 27979 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8515 /* 27981 */ // Combiner Rule #56: anyext_of_zext
8516 /* 27981 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
8517 /* 27984 */ // Label 320: @27984
8518 /* 27984 */ GIM_Try, /*On fail goto*//*Label 321*/ GIMT_Encode4(28008), // Rule ID 99 //
8519 /* 27989 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
8520 /* 27992 */ // MIs[0] dst
8521 /* 27992 */ // No operand predicates
8522 /* 27992 */ // MIs[0] __unary_undef_to_undef_match_0.x
8523 /* 27992 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8524 /* 27996 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8525 /* 28000 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8526 /* 28002 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[2]]
8527 /* 28002 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8528 /* 28005 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8529 /* 28007 */ GIR_EraseRootFromParent_Done,
8530 /* 28008 */ // Label 321: @28008
8531 /* 28008 */ GIM_Try, /*On fail goto*//*Label 322*/ GIMT_Encode4(28019), // Rule ID 145 //
8532 /* 28013 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
8533 /* 28016 */ // MIs[0] dst
8534 /* 28016 */ // No operand predicates
8535 /* 28016 */ // MIs[0] src
8536 /* 28016 */ // No operand predicates
8537 /* 28016 */ // Combiner Rule #101: anyext_trunc_fold
8538 /* 28016 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
8539 /* 28019 */ // Label 322: @28019
8540 /* 28019 */ GIM_Try, /*On fail goto*//*Label 323*/ GIMT_Encode4(28030), // Rule ID 314 //
8541 /* 28024 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
8542 /* 28027 */ // MIs[0] dst
8543 /* 28027 */ // No operand predicates
8544 /* 28027 */ // MIs[0] d.src
8545 /* 28027 */ // No operand predicates
8546 /* 28027 */ // Combiner Rule #213: constant_fold_cast_op @ [d[2]]
8547 /* 28027 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
8548 /* 28030 */ // Label 323: @28030
8549 /* 28030 */ GIM_Reject,
8550 /* 28031 */ // Label 30: @28031
8551 /* 28031 */ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(1), GIMT_Encode2(6), /*)*//*default:*//*Label 327*/ GIMT_Encode4(28297),
8552 /* 28042 */ /*GILLT_i16*//*Label 324*/ GIMT_Encode4(28062), GIMT_Encode4(0), GIMT_Encode4(0),
8553 /* 28054 */ /*GILLT_f16*//*Label 325*/ GIMT_Encode4(28129),
8554 /* 28058 */ /*GILLT_bf16*//*Label 326*/ GIMT_Encode4(28213),
8555 /* 28062 */ // Label 324: @28062
8556 /* 28062 */ GIM_Try, /*On fail goto*//*Label 328*/ GIMT_Encode4(28128), // Rule ID 489 //
8557 /* 28067 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule347Enabled),
8558 /* 28070 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i32,
8559 /* 28073 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8560 /* 28077 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
8561 /* 28081 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_i32,
8562 /* 28085 */ // MIs[1] src
8563 /* 28085 */ // No operand predicates
8564 /* 28085 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8565 /* 28089 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8566 /* 28093 */ // MIs[2] Operand 1
8567 /* 28093 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(16),
8568 /* 28104 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner65),
8569 /* 28108 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8570 /* 28110 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_i16,
8571 /* 28113 */ // Combiner Rule #347: trunc_lshr16_unmerge_i16
8572 /* 28113 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
8573 /* 28116 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8574 /* 28121 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8575 /* 28123 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
8576 /* 28127 */ GIR_EraseRootFromParent_Done,
8577 /* 28128 */ // Label 328: @28128
8578 /* 28128 */ GIM_Reject,
8579 /* 28129 */ // Label 325: @28129
8580 /* 28129 */ GIM_Try, /*On fail goto*//*Label 329*/ GIMT_Encode4(28212), // Rule ID 490 //
8581 /* 28134 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule348Enabled),
8582 /* 28137 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i32,
8583 /* 28140 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8584 /* 28144 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
8585 /* 28148 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_i32,
8586 /* 28152 */ // MIs[1] src
8587 /* 28152 */ // No operand predicates
8588 /* 28152 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8589 /* 28156 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8590 /* 28160 */ // MIs[2] Operand 1
8591 /* 28160 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(16),
8592 /* 28171 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner65),
8593 /* 28175 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8594 /* 28177 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_i16,
8595 /* 28180 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_i16,
8596 /* 28183 */ // Combiner Rule #348: trunc_lshr16_unmerge_f16
8597 /* 28183 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
8598 /* 28186 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8599 /* 28191 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8600 /* 28196 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
8601 /* 28200 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_BITCAST),
8602 /* 28204 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
8603 /* 28208 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
8604 /* 28211 */ GIR_EraseRootFromParent_Done,
8605 /* 28212 */ // Label 329: @28212
8606 /* 28212 */ GIM_Reject,
8607 /* 28213 */ // Label 326: @28213
8608 /* 28213 */ GIM_Try, /*On fail goto*//*Label 330*/ GIMT_Encode4(28296), // Rule ID 491 //
8609 /* 28218 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule349Enabled),
8610 /* 28221 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i32,
8611 /* 28224 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8612 /* 28228 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
8613 /* 28232 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_i32,
8614 /* 28236 */ // MIs[1] src
8615 /* 28236 */ // No operand predicates
8616 /* 28236 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8617 /* 28240 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8618 /* 28244 */ // MIs[2] Operand 1
8619 /* 28244 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(16),
8620 /* 28255 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner65),
8621 /* 28259 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8622 /* 28261 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_i16,
8623 /* 28264 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_i16,
8624 /* 28267 */ // Combiner Rule #349: trunc_lshr16_unmerge_bf16
8625 /* 28267 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
8626 /* 28270 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8627 /* 28275 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8628 /* 28280 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
8629 /* 28284 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_BITCAST),
8630 /* 28288 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
8631 /* 28292 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
8632 /* 28295 */ GIR_EraseRootFromParent_Done,
8633 /* 28296 */ // Label 330: @28296
8634 /* 28296 */ GIM_Reject,
8635 /* 28297 */ // Label 327: @28297
8636 /* 28297 */ GIM_Try, /*On fail goto*//*Label 331*/ GIMT_Encode4(28318), // Rule ID 65 //
8637 /* 28302 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule61Enabled),
8638 /* 28305 */ // MIs[0] root
8639 /* 28305 */ // No operand predicates
8640 /* 28305 */ // MIs[0] select
8641 /* 28305 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8642 /* 28309 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
8643 /* 28313 */ // MIs[1] cond
8644 /* 28313 */ // No operand predicates
8645 /* 28313 */ // MIs[1] true
8646 /* 28313 */ // No operand predicates
8647 /* 28313 */ // MIs[1] false
8648 /* 28313 */ // No operand predicates
8649 /* 28313 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8650 /* 28315 */ // Combiner Rule #61: select_of_truncate
8651 /* 28315 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
8652 /* 28318 */ // Label 331: @28318
8653 /* 28318 */ GIM_Try, /*On fail goto*//*Label 332*/ GIMT_Encode4(28347), // Rule ID 67 //
8654 /* 28323 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled),
8655 /* 28326 */ // MIs[0] root
8656 /* 28326 */ // No operand predicates
8657 /* 28326 */ // MIs[0] binop
8658 /* 28326 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8659 /* 28330 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
8660 /* 28334 */ // MIs[1] x
8661 /* 28334 */ // No operand predicates
8662 /* 28334 */ // MIs[1] const
8663 /* 28334 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8664 /* 28338 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8665 /* 28342 */ // MIs[2] imm
8666 /* 28342 */ // No operand predicates
8667 /* 28342 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8668 /* 28344 */ // Combiner Rule #63: narrow_binop_add
8669 /* 28344 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
8670 /* 28347 */ // Label 332: @28347
8671 /* 28347 */ GIM_Try, /*On fail goto*//*Label 333*/ GIMT_Encode4(28376), // Rule ID 70 //
8672 /* 28352 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule66Enabled),
8673 /* 28355 */ // MIs[0] root
8674 /* 28355 */ // No operand predicates
8675 /* 28355 */ // MIs[0] binop
8676 /* 28355 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8677 /* 28359 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
8678 /* 28363 */ // MIs[1] x
8679 /* 28363 */ // No operand predicates
8680 /* 28363 */ // MIs[1] const
8681 /* 28363 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8682 /* 28367 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8683 /* 28371 */ // MIs[2] imm
8684 /* 28371 */ // No operand predicates
8685 /* 28371 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8686 /* 28373 */ // Combiner Rule #66: narrow_binop_and
8687 /* 28373 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
8688 /* 28376 */ // Label 333: @28376
8689 /* 28376 */ GIM_Try, /*On fail goto*//*Label 334*/ GIMT_Encode4(28405), // Rule ID 69 //
8690 /* 28381 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
8691 /* 28384 */ // MIs[0] root
8692 /* 28384 */ // No operand predicates
8693 /* 28384 */ // MIs[0] binop
8694 /* 28384 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8695 /* 28388 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
8696 /* 28392 */ // MIs[1] x
8697 /* 28392 */ // No operand predicates
8698 /* 28392 */ // MIs[1] const
8699 /* 28392 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8700 /* 28396 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8701 /* 28400 */ // MIs[2] imm
8702 /* 28400 */ // No operand predicates
8703 /* 28400 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8704 /* 28402 */ // Combiner Rule #65: narrow_binop_mul
8705 /* 28402 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
8706 /* 28405 */ // Label 334: @28405
8707 /* 28405 */ GIM_Try, /*On fail goto*//*Label 335*/ GIMT_Encode4(28434), // Rule ID 71 //
8708 /* 28410 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule67Enabled),
8709 /* 28413 */ // MIs[0] root
8710 /* 28413 */ // No operand predicates
8711 /* 28413 */ // MIs[0] binop
8712 /* 28413 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8713 /* 28417 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
8714 /* 28421 */ // MIs[1] x
8715 /* 28421 */ // No operand predicates
8716 /* 28421 */ // MIs[1] const
8717 /* 28421 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8718 /* 28425 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8719 /* 28429 */ // MIs[2] imm
8720 /* 28429 */ // No operand predicates
8721 /* 28429 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8722 /* 28431 */ // Combiner Rule #67: narrow_binop_or
8723 /* 28431 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
8724 /* 28434 */ // Label 335: @28434
8725 /* 28434 */ GIM_Try, /*On fail goto*//*Label 336*/ GIMT_Encode4(28463), // Rule ID 68 //
8726 /* 28439 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
8727 /* 28442 */ // MIs[0] root
8728 /* 28442 */ // No operand predicates
8729 /* 28442 */ // MIs[0] binop
8730 /* 28442 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8731 /* 28446 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
8732 /* 28450 */ // MIs[1] x
8733 /* 28450 */ // No operand predicates
8734 /* 28450 */ // MIs[1] const
8735 /* 28450 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8736 /* 28454 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8737 /* 28458 */ // MIs[2] imm
8738 /* 28458 */ // No operand predicates
8739 /* 28458 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8740 /* 28460 */ // Combiner Rule #64: narrow_binop_sub
8741 /* 28460 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
8742 /* 28463 */ // Label 336: @28463
8743 /* 28463 */ GIM_Try, /*On fail goto*//*Label 337*/ GIMT_Encode4(28495), // Rule ID 445 //
8744 /* 28468 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule313Enabled),
8745 /* 28471 */ // MIs[0] dst
8746 /* 28471 */ // No operand predicates
8747 /* 28471 */ // MIs[0] min
8748 /* 28471 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8749 /* 28475 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMIN),
8750 /* 28479 */ // MIs[1] x
8751 /* 28479 */ // No operand predicates
8752 /* 28479 */ // MIs[1] y
8753 /* 28479 */ // No operand predicates
8754 /* 28479 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner53),
8755 /* 28483 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8756 /* 28485 */ // Combiner Rule #313: trunc_usatu
8757 /* 28485 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_TRUNC_USAT_U),
8758 /* 28488 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8759 /* 28490 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
8760 /* 28494 */ GIR_EraseRootFromParent_Done,
8761 /* 28495 */ // Label 337: @28495
8762 /* 28495 */ GIM_Try, /*On fail goto*//*Label 338*/ GIMT_Encode4(28524), // Rule ID 72 //
8763 /* 28500 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
8764 /* 28503 */ // MIs[0] root
8765 /* 28503 */ // No operand predicates
8766 /* 28503 */ // MIs[0] binop
8767 /* 28503 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8768 /* 28507 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
8769 /* 28511 */ // MIs[1] x
8770 /* 28511 */ // No operand predicates
8771 /* 28511 */ // MIs[1] const
8772 /* 28511 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8773 /* 28515 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8774 /* 28519 */ // MIs[2] imm
8775 /* 28519 */ // No operand predicates
8776 /* 28519 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8777 /* 28521 */ // Combiner Rule #68: narrow_binop_xor
8778 /* 28521 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
8779 /* 28524 */ // Label 338: @28524
8780 /* 28524 */ GIM_Try, /*On fail goto*//*Label 339*/ GIMT_Encode4(28545), // Rule ID 54 //
8781 /* 28529 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
8782 /* 28532 */ // MIs[0] root
8783 /* 28532 */ // No operand predicates
8784 /* 28532 */ // MIs[0] ext
8785 /* 28532 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8786 /* 28536 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8787 /* 28540 */ // MIs[1] src
8788 /* 28540 */ // No operand predicates
8789 /* 28540 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8790 /* 28542 */ // Combiner Rule #50: truncate_of_anyext
8791 /* 28542 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
8792 /* 28545 */ // Label 339: @28545
8793 /* 28545 */ GIM_Try, /*On fail goto*//*Label 340*/ GIMT_Encode4(28569), // Rule ID 66 //
8794 /* 28550 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled),
8795 /* 28553 */ // MIs[0] root
8796 /* 28553 */ // No operand predicates
8797 /* 28553 */ // MIs[0] bv
8798 /* 28553 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8799 /* 28557 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
8800 /* 28561 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
8801 /* 28564 */ // MIs[1] unused
8802 /* 28564 */ // No operand predicates
8803 /* 28564 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8804 /* 28566 */ // Combiner Rule #62: buildvector_of_truncate
8805 /* 28566 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
8806 /* 28569 */ // Label 340: @28569
8807 /* 28569 */ GIM_Try, /*On fail goto*//*Label 341*/ GIMT_Encode4(28590), // Rule ID 53 //
8808 /* 28574 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
8809 /* 28577 */ // MIs[0] root
8810 /* 28577 */ // No operand predicates
8811 /* 28577 */ // MIs[0] ext
8812 /* 28577 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8813 /* 28581 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
8814 /* 28585 */ // MIs[1] src
8815 /* 28585 */ // No operand predicates
8816 /* 28585 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8817 /* 28587 */ // Combiner Rule #49: truncate_of_sext
8818 /* 28587 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
8819 /* 28590 */ // Label 341: @28590
8820 /* 28590 */ GIM_Try, /*On fail goto*//*Label 342*/ GIMT_Encode4(28611), // Rule ID 52 //
8821 /* 28595 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
8822 /* 28598 */ // MIs[0] root
8823 /* 28598 */ // No operand predicates
8824 /* 28598 */ // MIs[0] ext
8825 /* 28598 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8826 /* 28602 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
8827 /* 28606 */ // MIs[1] src
8828 /* 28606 */ // No operand predicates
8829 /* 28606 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8830 /* 28608 */ // Combiner Rule #48: truncate_of_zext
8831 /* 28608 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
8832 /* 28611 */ // Label 342: @28611
8833 /* 28611 */ GIM_Try, /*On fail goto*//*Label 343*/ GIMT_Encode4(28635), // Rule ID 97 //
8834 /* 28616 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
8835 /* 28619 */ // MIs[0] dst
8836 /* 28619 */ // No operand predicates
8837 /* 28619 */ // MIs[0] __unary_undef_to_undef_match_0.x
8838 /* 28619 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8839 /* 28623 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8840 /* 28627 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8841 /* 28629 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[0]]
8842 /* 28629 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8843 /* 28632 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8844 /* 28634 */ GIR_EraseRootFromParent_Done,
8845 /* 28635 */ // Label 343: @28635
8846 /* 28635 */ GIM_Try, /*On fail goto*//*Label 344*/ GIMT_Encode4(28656), // Rule ID 73 //
8847 /* 28640 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled),
8848 /* 28643 */ // MIs[0] root
8849 /* 28643 */ // No operand predicates
8850 /* 28643 */ // MIs[0] int
8851 /* 28643 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8852 /* 28647 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8853 /* 28651 */ // MIs[1] imm
8854 /* 28651 */ // No operand predicates
8855 /* 28651 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8856 /* 28653 */ // Combiner Rule #69: integer_of_truncate
8857 /* 28653 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
8858 /* 28656 */ // Label 344: @28656
8859 /* 28656 */ GIM_Try, /*On fail goto*//*Label 345*/ GIMT_Encode4(28667), // Rule ID 153 //
8860 /* 28661 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
8861 /* 28664 */ // MIs[0] dst
8862 /* 28664 */ // No operand predicates
8863 /* 28664 */ // MIs[0] src
8864 /* 28664 */ // No operand predicates
8865 /* 28664 */ // Combiner Rule #108: trunc_buildvector_fold
8866 /* 28664 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
8867 /* 28667 */ // Label 345: @28667
8868 /* 28667 */ GIM_Try, /*On fail goto*//*Label 346*/ GIMT_Encode4(28678), // Rule ID 154 //
8869 /* 28672 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule109Enabled),
8870 /* 28675 */ // MIs[0] dst
8871 /* 28675 */ // No operand predicates
8872 /* 28675 */ // MIs[0] src
8873 /* 28675 */ // No operand predicates
8874 /* 28675 */ // Combiner Rule #109: trunc_lshr_buildvector_fold
8875 /* 28675 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
8876 /* 28678 */ // Label 346: @28678
8877 /* 28678 */ GIM_Try, /*On fail goto*//*Label 347*/ GIMT_Encode4(28689), // Rule ID 204 //
8878 /* 28683 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule154Enabled),
8879 /* 28686 */ // MIs[0] dst
8880 /* 28686 */ // No operand predicates
8881 /* 28686 */ // MIs[0] src
8882 /* 28686 */ // No operand predicates
8883 /* 28686 */ // Combiner Rule #154: trunc_shift
8884 /* 28686 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner60),
8885 /* 28689 */ // Label 347: @28689
8886 /* 28689 */ GIM_Try, /*On fail goto*//*Label 348*/ GIMT_Encode4(28700), // Rule ID 443 //
8887 /* 28694 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule311Enabled),
8888 /* 28697 */ // MIs[0] dst
8889 /* 28697 */ // No operand predicates
8890 /* 28697 */ // MIs[0] src
8891 /* 28697 */ // No operand predicates
8892 /* 28697 */ // Combiner Rule #311: trunc_ssats
8893 /* 28697 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
8894 /* 28700 */ // Label 348: @28700
8895 /* 28700 */ GIM_Try, /*On fail goto*//*Label 349*/ GIMT_Encode4(28711), // Rule ID 444 //
8896 /* 28705 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule312Enabled),
8897 /* 28708 */ // MIs[0] dst
8898 /* 28708 */ // No operand predicates
8899 /* 28708 */ // MIs[0] src
8900 /* 28708 */ // No operand predicates
8901 /* 28708 */ // Combiner Rule #312: trunc_ssatu
8902 /* 28708 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner124),
8903 /* 28711 */ // Label 349: @28711
8904 /* 28711 */ GIM_Reject,
8905 /* 28712 */ // Label 31: @28712
8906 /* 28712 */ GIM_Try, /*On fail goto*//*Label 350*/ GIMT_Encode4(28744), // Rule ID 446 //
8907 /* 28717 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule314Enabled),
8908 /* 28720 */ // MIs[0] dst
8909 /* 28720 */ // No operand predicates
8910 /* 28720 */ // MIs[0] src
8911 /* 28720 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8912 /* 28724 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPTOUI),
8913 /* 28728 */ // MIs[1] x
8914 /* 28728 */ // No operand predicates
8915 /* 28728 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner54),
8916 /* 28732 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8917 /* 28734 */ // Combiner Rule #314: truncusatu_to_fptouisat
8918 /* 28734 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FPTOUI_SAT),
8919 /* 28737 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8920 /* 28739 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
8921 /* 28743 */ GIR_EraseRootFromParent_Done,
8922 /* 28744 */ // Label 350: @28744
8923 /* 28744 */ GIM_Reject,
8924 /* 28745 */ // Label 32: @28745
8925 /* 28745 */ GIM_Try, /*On fail goto*//*Label 351*/ GIMT_Encode4(28766), // Rule ID 58 //
8926 /* 28750 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
8927 /* 28753 */ // MIs[0] root
8928 /* 28753 */ // No operand predicates
8929 /* 28753 */ // MIs[0] second
8930 /* 28753 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8931 /* 28757 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8932 /* 28761 */ // MIs[1] src
8933 /* 28761 */ // No operand predicates
8934 /* 28761 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8935 /* 28763 */ // Combiner Rule #54: sext_of_anyext
8936 /* 28763 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
8937 /* 28766 */ // Label 351: @28766
8938 /* 28766 */ GIM_Try, /*On fail goto*//*Label 352*/ GIMT_Encode4(28787), // Rule ID 57 //
8939 /* 28771 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
8940 /* 28774 */ // MIs[0] root
8941 /* 28774 */ // No operand predicates
8942 /* 28774 */ // MIs[0] second
8943 /* 28774 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8944 /* 28778 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
8945 /* 28782 */ // MIs[1] src
8946 /* 28782 */ // No operand predicates
8947 /* 28782 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8948 /* 28784 */ // Combiner Rule #53: sext_of_sext
8949 /* 28784 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
8950 /* 28787 */ // Label 352: @28787
8951 /* 28787 */ GIM_Try, /*On fail goto*//*Label 353*/ GIMT_Encode4(28808), // Rule ID 420 //
8952 /* 28792 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule288Enabled),
8953 /* 28795 */ // MIs[0] root
8954 /* 28795 */ // No operand predicates
8955 /* 28795 */ // MIs[0] src
8956 /* 28795 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8957 /* 28799 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
8958 /* 28803 */ // MIs[1] x
8959 /* 28803 */ // No operand predicates
8960 /* 28803 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8961 /* 28805 */ // Combiner Rule #288: sext_trunc
8962 /* 28805 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
8963 /* 28808 */ // Label 353: @28808
8964 /* 28808 */ GIM_Try, /*On fail goto*//*Label 354*/ GIMT_Encode4(28819), // Rule ID 313 //
8965 /* 28813 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
8966 /* 28816 */ // MIs[0] dst
8967 /* 28816 */ // No operand predicates
8968 /* 28816 */ // MIs[0] d.src
8969 /* 28816 */ // No operand predicates
8970 /* 28816 */ // Combiner Rule #213: constant_fold_cast_op @ [d[1]]
8971 /* 28816 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
8972 /* 28819 */ // Label 354: @28819
8973 /* 28819 */ GIM_Reject,
8974 /* 28820 */ // Label 33: @28820
8975 /* 28820 */ GIM_Try, /*On fail goto*//*Label 355*/ GIMT_Encode4(28841), // Rule ID 62 //
8976 /* 28825 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
8977 /* 28828 */ // MIs[0] dst
8978 /* 28828 */ // No operand predicates
8979 /* 28828 */ // MIs[0] x
8980 /* 28828 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8981 /* 28832 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
8982 /* 28836 */ // MIs[1] src
8983 /* 28836 */ // No operand predicates
8984 /* 28836 */ // MIs[1] a
8985 /* 28836 */ // No operand predicates
8986 /* 28836 */ // MIs[0] b
8987 /* 28836 */ // No operand predicates
8988 /* 28836 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8989 /* 28838 */ // Combiner Rule #58: sext_inreg_of_sext_inreg
8990 /* 28838 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
8991 /* 28841 */ // Label 355: @28841
8992 /* 28841 */ GIM_Try, /*On fail goto*//*Label 356*/ GIMT_Encode4(28881), // Rule ID 198 //
8993 /* 28846 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
8994 /* 28849 */ // MIs[0] dst
8995 /* 28849 */ // No operand predicates
8996 /* 28849 */ // MIs[0] tmp4
8997 /* 28849 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8998 /* 28853 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8999 /* 28857 */ // MIs[1] tmp2
9000 /* 28857 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
9001 /* 28861 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
9002 /* 28865 */ GIM_CheckNumOperands, /*MI*/2, /*Expected*/3,
9003 /* 28868 */ // MIs[2] tmp3
9004 /* 28868 */ // No operand predicates
9005 /* 28868 */ // MIs[2] tmp1
9006 /* 28868 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
9007 /* 28872 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ANYEXT),
9008 /* 28876 */ // MIs[3] src
9009 /* 28876 */ // No operand predicates
9010 /* 28876 */ // MIs[0] amt
9011 /* 28876 */ // No operand predicates
9012 /* 28876 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
9013 /* 28878 */ // Combiner Rule #148: redundant_aext_unmerge_sext_inreg
9014 /* 28878 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
9015 /* 28881 */ // Label 356: @28881
9016 /* 28881 */ GIM_Try, /*On fail goto*//*Label 357*/ GIMT_Encode4(28913), // Rule ID 196 //
9017 /* 28886 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
9018 /* 28889 */ // MIs[0] dst
9019 /* 28889 */ // No operand predicates
9020 /* 28889 */ // MIs[0] tmp
9021 /* 28889 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9022 /* 28893 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
9023 /* 28897 */ // MIs[1] src
9024 /* 28897 */ // No operand predicates
9025 /* 28897 */ // MIs[0] amt
9026 /* 28897 */ // No operand predicates
9027 /* 28897 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner29),
9028 /* 28901 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9029 /* 28903 */ // Combiner Rule #146: redundant_aext_sext_inreg
9030 /* 28903 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
9031 /* 28906 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9032 /* 28908 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
9033 /* 28912 */ GIR_EraseRootFromParent_Done,
9034 /* 28913 */ // Label 357: @28913
9035 /* 28913 */ GIM_Try, /*On fail goto*//*Label 358*/ GIMT_Encode4(28953), // Rule ID 197 //
9036 /* 28918 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
9037 /* 28921 */ // MIs[0] dst
9038 /* 28921 */ // No operand predicates
9039 /* 28921 */ // MIs[0] tmp4
9040 /* 28921 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9041 /* 28925 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
9042 /* 28929 */ // MIs[1] tmp2
9043 /* 28929 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
9044 /* 28933 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
9045 /* 28937 */ GIM_CheckNumOperands, /*MI*/2, /*Expected*/3,
9046 /* 28940 */ // MIs[2] tmp3
9047 /* 28940 */ // No operand predicates
9048 /* 28940 */ // MIs[2] tmp1
9049 /* 28940 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
9050 /* 28944 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
9051 /* 28948 */ // MIs[3] src
9052 /* 28948 */ // No operand predicates
9053 /* 28948 */ // MIs[0] amt
9054 /* 28948 */ // No operand predicates
9055 /* 28948 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
9056 /* 28950 */ // Combiner Rule #147: redundant_zext_unmerge_sext_inreg
9057 /* 28950 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
9058 /* 28953 */ // Label 358: @28953
9059 /* 28953 */ GIM_Try, /*On fail goto*//*Label 359*/ GIMT_Encode4(28985), // Rule ID 195 //
9060 /* 28958 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
9061 /* 28961 */ // MIs[0] dst
9062 /* 28961 */ // No operand predicates
9063 /* 28961 */ // MIs[0] tmp
9064 /* 28961 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9065 /* 28965 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
9066 /* 28969 */ // MIs[1] src
9067 /* 28969 */ // No operand predicates
9068 /* 28969 */ // MIs[0] amt
9069 /* 28969 */ // No operand predicates
9070 /* 28969 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner29),
9071 /* 28973 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9072 /* 28975 */ // Combiner Rule #145: redundant_zext_sext_inreg
9073 /* 28975 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
9074 /* 28978 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9075 /* 28980 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
9076 /* 28984 */ GIR_EraseRootFromParent_Done,
9077 /* 28985 */ // Label 359: @28985
9078 /* 28985 */ GIM_Try, /*On fail goto*//*Label 360*/ GIMT_Encode4(29008), // Rule ID 194 //
9079 /* 28990 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule144Enabled),
9080 /* 28993 */ // MIs[0] dst
9081 /* 28993 */ // No operand predicates
9082 /* 28993 */ // MIs[0] src
9083 /* 28993 */ // No operand predicates
9084 /* 28993 */ // MIs[0] sz
9085 /* 28993 */ // No operand predicates
9086 /* 28993 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner28),
9087 /* 28997 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9088 /* 29002 */ // Combiner Rule #144: redundant_sext_inreg
9089 /* 29002 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9090 /* 29007 */ GIR_EraseRootFromParent_Done,
9091 /* 29008 */ // Label 360: @29008
9092 /* 29008 */ GIM_Try, /*On fail goto*//*Label 361*/ GIMT_Encode4(29019), // Rule ID 182 //
9093 /* 29013 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled),
9094 /* 29016 */ // MIs[0] dst
9095 /* 29016 */ // No operand predicates
9096 /* 29016 */ // MIs[0] src
9097 /* 29016 */ // No operand predicates
9098 /* 29016 */ // MIs[0] sz
9099 /* 29016 */ // No operand predicates
9100 /* 29016 */ // Combiner Rule #132: sext_inreg_of_load
9101 /* 29016 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
9102 /* 29019 */ // Label 361: @29019
9103 /* 29019 */ GIM_Try, /*On fail goto*//*Label 362*/ GIMT_Encode4(29030), // Rule ID 203 //
9104 /* 29024 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
9105 /* 29027 */ // MIs[0] dst
9106 /* 29027 */ // No operand predicates
9107 /* 29027 */ // MIs[0] src
9108 /* 29027 */ // No operand predicates
9109 /* 29027 */ // MIs[0] imm
9110 /* 29027 */ // No operand predicates
9111 /* 29027 */ // Combiner Rule #153: sext_inreg_to_zext_inreg
9112 /* 29027 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner59),
9113 /* 29030 */ // Label 362: @29030
9114 /* 29030 */ GIM_Try, /*On fail goto*//*Label 363*/ GIMT_Encode4(29041), // Rule ID 274 //
9115 /* 29035 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
9116 /* 29038 */ // MIs[0] dst
9117 /* 29038 */ // No operand predicates
9118 /* 29038 */ // MIs[0] src
9119 /* 29038 */ // No operand predicates
9120 /* 29038 */ // MIs[0] sz
9121 /* 29038 */ // No operand predicates
9122 /* 29038 */ // Combiner Rule #206: bitfield_extract_from_sext_inreg
9123 /* 29038 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner75),
9124 /* 29041 */ // Label 363: @29041
9125 /* 29041 */ GIM_Try, /*On fail goto*//*Label 364*/ GIMT_Encode4(29052), // Rule ID 487 //
9126 /* 29046 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule345Enabled),
9127 /* 29049 */ // MIs[0] dst
9128 /* 29049 */ // No operand predicates
9129 /* 29049 */ // MIs[0] src
9130 /* 29049 */ // No operand predicates
9131 /* 29049 */ // MIs[0] width
9132 /* 29049 */ // No operand predicates
9133 /* 29049 */ // Combiner Rule #345: sign_extension_in_reg
9134 /* 29049 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner136),
9135 /* 29052 */ // Label 364: @29052
9136 /* 29052 */ GIM_Reject,
9137 /* 29053 */ // Label 34: @29053
9138 /* 29053 */ GIM_Try, /*On fail goto*//*Label 365*/ GIMT_Encode4(29074), // Rule ID 63 //
9139 /* 29058 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled),
9140 /* 29061 */ // MIs[0] root
9141 /* 29061 */ // No operand predicates
9142 /* 29061 */ // MIs[0] select
9143 /* 29061 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9144 /* 29065 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
9145 /* 29069 */ // MIs[1] cond
9146 /* 29069 */ // No operand predicates
9147 /* 29069 */ // MIs[1] true
9148 /* 29069 */ // No operand predicates
9149 /* 29069 */ // MIs[1] false
9150 /* 29069 */ // No operand predicates
9151 /* 29069 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9152 /* 29071 */ // Combiner Rule #59: select_of_zext
9153 /* 29071 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
9154 /* 29074 */ // Label 365: @29074
9155 /* 29074 */ GIM_Try, /*On fail goto*//*Label 366*/ GIMT_Encode4(29095), // Rule ID 56 //
9156 /* 29079 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
9157 /* 29082 */ // MIs[0] root
9158 /* 29082 */ // No operand predicates
9159 /* 29082 */ // MIs[0] second
9160 /* 29082 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9161 /* 29086 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
9162 /* 29090 */ // MIs[1] src
9163 /* 29090 */ // No operand predicates
9164 /* 29090 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9165 /* 29092 */ // Combiner Rule #52: zext_of_anyext
9166 /* 29092 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
9167 /* 29095 */ // Label 366: @29095
9168 /* 29095 */ GIM_Try, /*On fail goto*//*Label 367*/ GIMT_Encode4(29122), // Rule ID 421 //
9169 /* 29100 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule289Enabled),
9170 /* 29103 */ // MIs[0] root
9171 /* 29103 */ // No operand predicates
9172 /* 29103 */ // MIs[0] src
9173 /* 29103 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9174 /* 29107 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
9175 /* 29111 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::NoUWrap),
9176 /* 29117 */ // MIs[1] x
9177 /* 29117 */ // No operand predicates
9178 /* 29117 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9179 /* 29119 */ // Combiner Rule #289: zext_trunc
9180 /* 29119 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
9181 /* 29122 */ // Label 367: @29122
9182 /* 29122 */ GIM_Try, /*On fail goto*//*Label 368*/ GIMT_Encode4(29143), // Rule ID 55 //
9183 /* 29127 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
9184 /* 29130 */ // MIs[0] root
9185 /* 29130 */ // No operand predicates
9186 /* 29130 */ // MIs[0] second
9187 /* 29130 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9188 /* 29134 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
9189 /* 29138 */ // MIs[1] src
9190 /* 29138 */ // No operand predicates
9191 /* 29138 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9192 /* 29140 */ // Combiner Rule #51: zext_of_zext
9193 /* 29140 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
9194 /* 29143 */ // Label 368: @29143
9195 /* 29143 */ GIM_Try, /*On fail goto*//*Label 369*/ GIMT_Encode4(29160), // Rule ID 422 //
9196 /* 29148 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule290Enabled),
9197 /* 29151 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NonNeg),
9198 /* 29157 */ // MIs[0] root
9199 /* 29157 */ // No operand predicates
9200 /* 29157 */ // MIs[0] x
9201 /* 29157 */ // No operand predicates
9202 /* 29157 */ // Combiner Rule #290: nneg_zext
9203 /* 29157 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9204 /* 29160 */ // Label 369: @29160
9205 /* 29160 */ GIM_Try, /*On fail goto*//*Label 370*/ GIMT_Encode4(29171), // Rule ID 202 //
9206 /* 29165 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
9207 /* 29168 */ // MIs[0] dst
9208 /* 29168 */ // No operand predicates
9209 /* 29168 */ // MIs[0] src
9210 /* 29168 */ // No operand predicates
9211 /* 29168 */ // Combiner Rule #152: zext_trunc_fold
9212 /* 29168 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner58),
9213 /* 29171 */ // Label 370: @29171
9214 /* 29171 */ GIM_Try, /*On fail goto*//*Label 371*/ GIMT_Encode4(29182), // Rule ID 312 //
9215 /* 29176 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
9216 /* 29179 */ // MIs[0] dst
9217 /* 29179 */ // No operand predicates
9218 /* 29179 */ // MIs[0] d.src
9219 /* 29179 */ // No operand predicates
9220 /* 29179 */ // Combiner Rule #213: constant_fold_cast_op @ [d[0]]
9221 /* 29179 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
9222 /* 29182 */ // Label 371: @29182
9223 /* 29182 */ GIM_Reject,
9224 /* 29183 */ // Label 35: @29183
9225 /* 29183 */ GIM_Try, /*On fail goto*//*Label 372*/ GIMT_Encode4(29261), // Rule ID 272 //
9226 /* 29188 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
9227 /* 29191 */ // MIs[0] dst
9228 /* 29191 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
9229 /* 29195 */ // MIs[0] binop_dst
9230 /* 29195 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9231 /* 29199 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
9232 /* 29203 */ // MIs[1] x
9233 /* 29203 */ // No operand predicates
9234 /* 29203 */ // MIs[1] c1
9235 /* 29203 */ // No operand predicates
9236 /* 29203 */ // MIs[0] c2
9237 /* 29203 */ // No operand predicates
9238 /* 29203 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner40),
9239 /* 29207 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9240 /* 29209 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
9241 /* 29212 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
9242 /* 29215 */ // Combiner Rule #204: commute_shift_add
9243 /* 29215 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
9244 /* 29218 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
9245 /* 29223 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
9246 /* 29227 */ GIR_RootToRootCopy, /*OpIdx*/2, // c2
9247 /* 29229 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
9248 /* 29233 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
9249 /* 29238 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/2, // c1
9250 /* 29242 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // c2
9251 /* 29246 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
9252 /* 29250 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
9253 /* 29254 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
9254 /* 29257 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
9255 /* 29260 */ GIR_EraseRootFromParent_Done,
9256 /* 29261 */ // Label 372: @29261
9257 /* 29261 */ GIM_Try, /*On fail goto*//*Label 373*/ GIMT_Encode4(29339), // Rule ID 273 //
9258 /* 29266 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule205Enabled),
9259 /* 29269 */ // MIs[0] dst
9260 /* 29269 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
9261 /* 29273 */ // MIs[0] binop_dst
9262 /* 29273 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9263 /* 29277 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
9264 /* 29281 */ // MIs[1] x
9265 /* 29281 */ // No operand predicates
9266 /* 29281 */ // MIs[1] c1
9267 /* 29281 */ // No operand predicates
9268 /* 29281 */ // MIs[0] c2
9269 /* 29281 */ // No operand predicates
9270 /* 29281 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner40),
9271 /* 29285 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9272 /* 29287 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
9273 /* 29290 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
9274 /* 29293 */ // Combiner Rule #205: commute_shift_or
9275 /* 29293 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
9276 /* 29296 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
9277 /* 29301 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
9278 /* 29305 */ GIR_RootToRootCopy, /*OpIdx*/2, // c2
9279 /* 29307 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
9280 /* 29311 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
9281 /* 29316 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/2, // c1
9282 /* 29320 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // c2
9283 /* 29324 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
9284 /* 29328 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
9285 /* 29332 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
9286 /* 29335 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
9287 /* 29338 */ GIR_EraseRootFromParent_Done,
9288 /* 29339 */ // Label 373: @29339
9289 /* 29339 */ GIM_Try, /*On fail goto*//*Label 374*/ GIMT_Encode4(29374), // Rule ID 48 //
9290 /* 29344 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
9291 /* 29347 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
9292 /* 29353 */ // MIs[0] root
9293 /* 29353 */ // No operand predicates
9294 /* 29353 */ // MIs[0] left
9295 /* 29353 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9296 /* 29357 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
9297 /* 29361 */ // MIs[1] imm
9298 /* 29361 */ // No operand predicates
9299 /* 29361 */ // MIs[0] x
9300 /* 29361 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
9301 /* 29365 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
9302 /* 29369 */ // MIs[2] imm1
9303 /* 29369 */ // No operand predicates
9304 /* 29369 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9305 /* 29371 */ // Combiner Rule #44: shl_of_vscale
9306 /* 29371 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
9307 /* 29374 */ // Label 374: @29374
9308 /* 29374 */ GIM_Try, /*On fail goto*//*Label 375*/ GIMT_Encode4(29395), // Rule ID 90 //
9309 /* 29379 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
9310 /* 29382 */ // MIs[0] dst
9311 /* 29382 */ // No operand predicates
9312 /* 29382 */ // MIs[0] __binop_left_undef_to_zero_match_0.x
9313 /* 29382 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9314 /* 29386 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9315 /* 29390 */ // MIs[0] __binop_left_undef_to_zero_match_0.y
9316 /* 29390 */ // No operand predicates
9317 /* 29390 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9318 /* 29392 */ // Combiner Rule #79: binop_left_undef_to_zero @ [__binop_left_undef_to_zero_match_0[0]]
9319 /* 29392 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
9320 /* 29395 */ // Label 375: @29395
9321 /* 29395 */ GIM_Try, /*On fail goto*//*Label 376*/ GIMT_Encode4(29419), // Rule ID 93 //
9322 /* 29400 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
9323 /* 29403 */ // MIs[0] dst
9324 /* 29403 */ // No operand predicates
9325 /* 29403 */ // MIs[0] __binop_right_undef_to_undef_match_0.x
9326 /* 29403 */ // No operand predicates
9327 /* 29403 */ // MIs[0] __binop_right_undef_to_undef_match_0.y
9328 /* 29403 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9329 /* 29407 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9330 /* 29411 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9331 /* 29413 */ // Combiner Rule #80: binop_right_undef_to_undef @ [__binop_right_undef_to_undef_match_0[0]]
9332 /* 29413 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9333 /* 29416 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9334 /* 29418 */ GIR_EraseRootFromParent_Done,
9335 /* 29419 */ // Label 376: @29419
9336 /* 29419 */ GIM_Try, /*On fail goto*//*Label 377*/ GIMT_Encode4(29442), // Rule ID 122 //
9337 /* 29424 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
9338 /* 29427 */ // MIs[0] dst
9339 /* 29427 */ // No operand predicates
9340 /* 29427 */ // MIs[0] lhs
9341 /* 29427 */ // No operand predicates
9342 /* 29427 */ // MIs[0] Operand 2
9343 /* 29427 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
9344 /* 29431 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9345 /* 29436 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[4]]
9346 /* 29436 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9347 /* 29441 */ GIR_EraseRootFromParent_Done,
9348 /* 29442 */ // Label 377: @29442
9349 /* 29442 */ GIM_Try, /*On fail goto*//*Label 378*/ GIMT_Encode4(29465), // Rule ID 132 //
9350 /* 29447 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
9351 /* 29450 */ // MIs[0] dst
9352 /* 29450 */ // No operand predicates
9353 /* 29450 */ // MIs[0] zero
9354 /* 29450 */ // No operand predicates
9355 /* 29450 */ // MIs[0] rhs
9356 /* 29450 */ // No operand predicates
9357 /* 29450 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
9358 /* 29454 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9359 /* 29459 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[0]]
9360 /* 29459 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9361 /* 29464 */ GIR_EraseRootFromParent_Done,
9362 /* 29465 */ // Label 378: @29465
9363 /* 29465 */ GIM_Try, /*On fail goto*//*Label 379*/ GIMT_Encode4(29476), // Rule ID 167 //
9364 /* 29470 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
9365 /* 29473 */ // MIs[0] root
9366 /* 29473 */ // No operand predicates
9367 /* 29473 */ // MIs[0] mi.shifted
9368 /* 29473 */ // No operand predicates
9369 /* 29473 */ // MIs[0] mi.amt
9370 /* 29473 */ // No operand predicates
9371 /* 29473 */ // Combiner Rule #119: shifts_too_big @ [mi[0]]
9372 /* 29473 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
9373 /* 29476 */ // Label 379: @29476
9374 /* 29476 */ GIM_Try, /*On fail goto*//*Label 380*/ GIMT_Encode4(29487), // Rule ID 183 //
9375 /* 29481 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule133Enabled),
9376 /* 29484 */ // MIs[0] dst
9377 /* 29484 */ // No operand predicates
9378 /* 29484 */ // MIs[0] src0
9379 /* 29484 */ // No operand predicates
9380 /* 29484 */ // MIs[0] src1
9381 /* 29484 */ // No operand predicates
9382 /* 29484 */ // Combiner Rule #133: reduce_shl_of_extend
9383 /* 29484 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner50),
9384 /* 29487 */ // Label 380: @29487
9385 /* 29487 */ GIM_Try, /*On fail goto*//*Label 381*/ GIMT_Encode4(29498), // Rule ID 244 //
9386 /* 29492 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
9387 /* 29495 */ // MIs[0] d
9388 /* 29495 */ // No operand predicates
9389 /* 29495 */ // MIs[0] mi.base
9390 /* 29495 */ // No operand predicates
9391 /* 29495 */ // MIs[0] mi.amt
9392 /* 29495 */ // No operand predicates
9393 /* 29495 */ // Combiner Rule #190: shift_immed_chain @ [mi[0]]
9394 /* 29495 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
9395 /* 29498 */ // Label 381: @29498
9396 /* 29498 */ GIM_Try, /*On fail goto*//*Label 382*/ GIMT_Encode4(29509), // Rule ID 249 //
9397 /* 29503 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9398 /* 29506 */ // MIs[0] d
9399 /* 29506 */ // No operand predicates
9400 /* 29506 */ // MIs[0] mi.base
9401 /* 29506 */ // No operand predicates
9402 /* 29506 */ // MIs[0] mi.amt
9403 /* 29506 */ // No operand predicates
9404 /* 29506 */ // Combiner Rule #191: shift_of_shifted_logic_chain @ [mi[0]]
9405 /* 29506 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
9406 /* 29509 */ // Label 382: @29509
9407 /* 29509 */ GIM_Try, /*On fail goto*//*Label 383*/ GIMT_Encode4(29520), // Rule ID 287 //
9408 /* 29514 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
9409 /* 29517 */ // MIs[0] d
9410 /* 29517 */ // No operand predicates
9411 /* 29517 */ // MIs[0] mi.src0
9412 /* 29517 */ // No operand predicates
9413 /* 29517 */ // MIs[0] mi.src1
9414 /* 29517 */ // No operand predicates
9415 /* 29517 */ // Combiner Rule #210: constant_fold_binop @ [mi[7]]
9416 /* 29517 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
9417 /* 29520 */ // Label 383: @29520
9418 /* 29520 */ GIM_Try, /*On fail goto*//*Label 384*/ GIMT_Encode4(29531), // Rule ID 353 //
9419 /* 29525 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
9420 /* 29528 */ // MIs[0] root
9421 /* 29528 */ // No operand predicates
9422 /* 29528 */ // MIs[0] mi.x
9423 /* 29528 */ // No operand predicates
9424 /* 29528 */ // MIs[0] mi.y
9425 /* 29528 */ // No operand predicates
9426 /* 29528 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[12]]
9427 /* 29528 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
9428 /* 29531 */ // Label 384: @29531
9429 /* 29531 */ GIM_Reject,
9430 /* 29532 */ // Label 36: @29532
9431 /* 29532 */ GIM_Try, /*On fail goto*//*Label 385*/ GIMT_Encode4(29621), // Rule ID 464 //
9432 /* 29537 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule329Enabled),
9433 /* 29540 */ // MIs[0] dst
9434 /* 29540 */ // No operand predicates
9435 /* 29540 */ // MIs[0] sum
9436 /* 29540 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9437 /* 29544 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
9438 /* 29548 */ // MIs[1] inner
9439 /* 29548 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
9440 /* 29552 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
9441 /* 29556 */ // MIs[2] ext1
9442 /* 29556 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
9443 /* 29560 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
9444 /* 29564 */ // MIs[3] x
9445 /* 29564 */ GIM_RecordRegType, /*MI*/3, /*Op*/1, /*TempTypeIdx*/255,
9446 /* 29568 */ // MIs[2] ext2
9447 /* 29568 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/4, /*MI*/2, /*OpIdx*/2, // MIs[4]
9448 /* 29572 */ GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_ZEXT),
9449 /* 29576 */ // MIs[4] y
9450 /* 29576 */ // No operand predicates
9451 /* 29576 */ // MIs[1] Operand 2
9452 /* 29576 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
9453 /* 29580 */ // MIs[0] Operand 2
9454 /* 29580 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
9455 /* 29584 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner62),
9456 /* 29588 */ GIM_CheckIsSafeToFold, /*NumInsns*/4,
9457 /* 29590 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
9458 /* 29593 */ // Combiner Rule #329: avgceil_u_match
9459 /* 29593 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UAVGCEIL),
9460 /* 29596 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
9461 /* 29601 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // x
9462 /* 29605 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // y
9463 /* 29609 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
9464 /* 29613 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
9465 /* 29617 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9466 /* 29620 */ GIR_EraseRootFromParent_Done,
9467 /* 29621 */ // Label 385: @29621
9468 /* 29621 */ GIM_Try, /*On fail goto*//*Label 386*/ GIMT_Encode4(29698), // Rule ID 462 //
9469 /* 29626 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule327Enabled),
9470 /* 29629 */ // MIs[0] dst
9471 /* 29629 */ // No operand predicates
9472 /* 29629 */ // MIs[0] sum
9473 /* 29629 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9474 /* 29633 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
9475 /* 29637 */ // MIs[1] ext1
9476 /* 29637 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
9477 /* 29641 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
9478 /* 29645 */ // MIs[2] x
9479 /* 29645 */ GIM_RecordRegType, /*MI*/2, /*Op*/1, /*TempTypeIdx*/255,
9480 /* 29649 */ // MIs[1] ext2
9481 /* 29649 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
9482 /* 29653 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
9483 /* 29657 */ // MIs[3] y
9484 /* 29657 */ // No operand predicates
9485 /* 29657 */ // MIs[0] Operand 2
9486 /* 29657 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
9487 /* 29661 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner60),
9488 /* 29665 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
9489 /* 29667 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
9490 /* 29670 */ // Combiner Rule #327: avgfloor_u_match
9491 /* 29670 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UAVGFLOOR),
9492 /* 29673 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
9493 /* 29678 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // x
9494 /* 29682 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // y
9495 /* 29686 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
9496 /* 29690 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
9497 /* 29694 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9498 /* 29697 */ GIR_EraseRootFromParent_Done,
9499 /* 29698 */ // Label 386: @29698
9500 /* 29698 */ GIM_Try, /*On fail goto*//*Label 387*/ GIMT_Encode4(29727), // Rule ID 447 //
9501 /* 29703 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule315Enabled),
9502 /* 29706 */ // MIs[0] dst
9503 /* 29706 */ // No operand predicates
9504 /* 29706 */ // MIs[0] d2
9505 /* 29706 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9506 /* 29710 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
9507 /* 29714 */ // MIs[1] d1
9508 /* 29714 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
9509 /* 29718 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
9510 /* 29722 */ // MIs[2] x
9511 /* 29722 */ // No operand predicates
9512 /* 29722 */ // MIs[2] y
9513 /* 29722 */ // No operand predicates
9514 /* 29722 */ // MIs[0] z
9515 /* 29722 */ // No operand predicates
9516 /* 29722 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9517 /* 29724 */ // Combiner Rule #315: lshr_of_trunc_of_lshr
9518 /* 29724 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner125),
9519 /* 29727 */ // Label 387: @29727
9520 /* 29727 */ GIM_Try, /*On fail goto*//*Label 388*/ GIMT_Encode4(29751), // Rule ID 95 //
9521 /* 29732 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
9522 /* 29735 */ // MIs[0] dst
9523 /* 29735 */ // No operand predicates
9524 /* 29735 */ // MIs[0] __binop_right_undef_to_undef_match_0.x
9525 /* 29735 */ // No operand predicates
9526 /* 29735 */ // MIs[0] __binop_right_undef_to_undef_match_0.y
9527 /* 29735 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9528 /* 29739 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9529 /* 29743 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9530 /* 29745 */ // Combiner Rule #80: binop_right_undef_to_undef @ [__binop_right_undef_to_undef_match_0[2]]
9531 /* 29745 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9532 /* 29748 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9533 /* 29750 */ GIR_EraseRootFromParent_Done,
9534 /* 29751 */ // Label 388: @29751
9535 /* 29751 */ GIM_Try, /*On fail goto*//*Label 389*/ GIMT_Encode4(29774), // Rule ID 124 //
9536 /* 29756 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
9537 /* 29759 */ // MIs[0] dst
9538 /* 29759 */ // No operand predicates
9539 /* 29759 */ // MIs[0] lhs
9540 /* 29759 */ // No operand predicates
9541 /* 29759 */ // MIs[0] Operand 2
9542 /* 29759 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
9543 /* 29763 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9544 /* 29768 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[6]]
9545 /* 29768 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9546 /* 29773 */ GIR_EraseRootFromParent_Done,
9547 /* 29774 */ // Label 389: @29774
9548 /* 29774 */ GIM_Try, /*On fail goto*//*Label 390*/ GIMT_Encode4(29797), // Rule ID 133 //
9549 /* 29779 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
9550 /* 29782 */ // MIs[0] dst
9551 /* 29782 */ // No operand predicates
9552 /* 29782 */ // MIs[0] zero
9553 /* 29782 */ // No operand predicates
9554 /* 29782 */ // MIs[0] rhs
9555 /* 29782 */ // No operand predicates
9556 /* 29782 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
9557 /* 29786 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9558 /* 29791 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[1]]
9559 /* 29791 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9560 /* 29796 */ GIR_EraseRootFromParent_Done,
9561 /* 29797 */ // Label 390: @29797
9562 /* 29797 */ GIM_Try, /*On fail goto*//*Label 391*/ GIMT_Encode4(29808), // Rule ID 169 //
9563 /* 29802 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
9564 /* 29805 */ // MIs[0] root
9565 /* 29805 */ // No operand predicates
9566 /* 29805 */ // MIs[0] mi.shifted
9567 /* 29805 */ // No operand predicates
9568 /* 29805 */ // MIs[0] mi.amt
9569 /* 29805 */ // No operand predicates
9570 /* 29805 */ // Combiner Rule #119: shifts_too_big @ [mi[2]]
9571 /* 29805 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
9572 /* 29808 */ // Label 391: @29808
9573 /* 29808 */ GIM_Try, /*On fail goto*//*Label 392*/ GIMT_Encode4(29819), // Rule ID 246 //
9574 /* 29813 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
9575 /* 29816 */ // MIs[0] d
9576 /* 29816 */ // No operand predicates
9577 /* 29816 */ // MIs[0] mi.base
9578 /* 29816 */ // No operand predicates
9579 /* 29816 */ // MIs[0] mi.amt
9580 /* 29816 */ // No operand predicates
9581 /* 29816 */ // Combiner Rule #190: shift_immed_chain @ [mi[2]]
9582 /* 29816 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
9583 /* 29819 */ // Label 392: @29819
9584 /* 29819 */ GIM_Try, /*On fail goto*//*Label 393*/ GIMT_Encode4(29830), // Rule ID 251 //
9585 /* 29824 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9586 /* 29827 */ // MIs[0] d
9587 /* 29827 */ // No operand predicates
9588 /* 29827 */ // MIs[0] mi.base
9589 /* 29827 */ // No operand predicates
9590 /* 29827 */ // MIs[0] mi.amt
9591 /* 29827 */ // No operand predicates
9592 /* 29827 */ // Combiner Rule #191: shift_of_shifted_logic_chain @ [mi[2]]
9593 /* 29827 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
9594 /* 29830 */ // Label 393: @29830
9595 /* 29830 */ GIM_Try, /*On fail goto*//*Label 394*/ GIMT_Encode4(29841), // Rule ID 277 //
9596 /* 29835 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
9597 /* 29838 */ // MIs[0] dst
9598 /* 29838 */ // No operand predicates
9599 /* 29838 */ // MIs[0] root.src
9600 /* 29838 */ // No operand predicates
9601 /* 29838 */ // MIs[0] root.amt
9602 /* 29838 */ // No operand predicates
9603 /* 29838 */ // Combiner Rule #208: bitfield_extract_from_shr @ [root[1]]
9604 /* 29838 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
9605 /* 29841 */ // Label 394: @29841
9606 /* 29841 */ GIM_Try, /*On fail goto*//*Label 395*/ GIMT_Encode4(29852), // Rule ID 279 //
9607 /* 29846 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
9608 /* 29849 */ // MIs[0] dst
9609 /* 29849 */ // No operand predicates
9610 /* 29849 */ // MIs[0] root.src
9611 /* 29849 */ // No operand predicates
9612 /* 29849 */ // MIs[0] root.amt
9613 /* 29849 */ // No operand predicates
9614 /* 29849 */ // Combiner Rule #209: bitfield_extract_from_shr_and @ [root[1]]
9615 /* 29849 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
9616 /* 29852 */ // Label 395: @29852
9617 /* 29852 */ GIM_Try, /*On fail goto*//*Label 396*/ GIMT_Encode4(29863), // Rule ID 284 //
9618 /* 29857 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
9619 /* 29860 */ // MIs[0] d
9620 /* 29860 */ // No operand predicates
9621 /* 29860 */ // MIs[0] mi.src0
9622 /* 29860 */ // No operand predicates
9623 /* 29860 */ // MIs[0] mi.src1
9624 /* 29860 */ // No operand predicates
9625 /* 29860 */ // Combiner Rule #210: constant_fold_binop @ [mi[4]]
9626 /* 29860 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
9627 /* 29863 */ // Label 396: @29863
9628 /* 29863 */ GIM_Try, /*On fail goto*//*Label 397*/ GIMT_Encode4(29874), // Rule ID 351 //
9629 /* 29868 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
9630 /* 29871 */ // MIs[0] root
9631 /* 29871 */ // No operand predicates
9632 /* 29871 */ // MIs[0] mi.x
9633 /* 29871 */ // No operand predicates
9634 /* 29871 */ // MIs[0] mi.y
9635 /* 29871 */ // No operand predicates
9636 /* 29871 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[10]]
9637 /* 29871 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
9638 /* 29874 */ // Label 397: @29874
9639 /* 29874 */ GIM_Reject,
9640 /* 29875 */ // Label 37: @29875
9641 /* 29875 */ GIM_Try, /*On fail goto*//*Label 398*/ GIMT_Encode4(29964), // Rule ID 465 //
9642 /* 29880 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule330Enabled),
9643 /* 29883 */ // MIs[0] dst
9644 /* 29883 */ // No operand predicates
9645 /* 29883 */ // MIs[0] sum
9646 /* 29883 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9647 /* 29887 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
9648 /* 29891 */ // MIs[1] inner
9649 /* 29891 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
9650 /* 29895 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
9651 /* 29899 */ // MIs[2] ext1
9652 /* 29899 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
9653 /* 29903 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_SEXT),
9654 /* 29907 */ // MIs[3] x
9655 /* 29907 */ GIM_RecordRegType, /*MI*/3, /*Op*/1, /*TempTypeIdx*/255,
9656 /* 29911 */ // MIs[2] ext2
9657 /* 29911 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/4, /*MI*/2, /*OpIdx*/2, // MIs[4]
9658 /* 29915 */ GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_SEXT),
9659 /* 29919 */ // MIs[4] y
9660 /* 29919 */ // No operand predicates
9661 /* 29919 */ // MIs[1] Operand 2
9662 /* 29919 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
9663 /* 29923 */ // MIs[0] Operand 2
9664 /* 29923 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
9665 /* 29927 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner63),
9666 /* 29931 */ GIM_CheckIsSafeToFold, /*NumInsns*/4,
9667 /* 29933 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
9668 /* 29936 */ // Combiner Rule #330: avgceil_s_match
9669 /* 29936 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SAVGCEIL),
9670 /* 29939 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
9671 /* 29944 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // x
9672 /* 29948 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // y
9673 /* 29952 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
9674 /* 29956 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
9675 /* 29960 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9676 /* 29963 */ GIR_EraseRootFromParent_Done,
9677 /* 29964 */ // Label 398: @29964
9678 /* 29964 */ GIM_Try, /*On fail goto*//*Label 399*/ GIMT_Encode4(30041), // Rule ID 463 //
9679 /* 29969 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule328Enabled),
9680 /* 29972 */ // MIs[0] dst
9681 /* 29972 */ // No operand predicates
9682 /* 29972 */ // MIs[0] sum
9683 /* 29972 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9684 /* 29976 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
9685 /* 29980 */ // MIs[1] ext1
9686 /* 29980 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
9687 /* 29984 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
9688 /* 29988 */ // MIs[2] x
9689 /* 29988 */ GIM_RecordRegType, /*MI*/2, /*Op*/1, /*TempTypeIdx*/255,
9690 /* 29992 */ // MIs[1] ext2
9691 /* 29992 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
9692 /* 29996 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_SEXT),
9693 /* 30000 */ // MIs[3] y
9694 /* 30000 */ // No operand predicates
9695 /* 30000 */ // MIs[0] Operand 2
9696 /* 30000 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
9697 /* 30004 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner61),
9698 /* 30008 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
9699 /* 30010 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
9700 /* 30013 */ // Combiner Rule #328: avgfloor_s_match
9701 /* 30013 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SAVGFLOOR),
9702 /* 30016 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
9703 /* 30021 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // x
9704 /* 30025 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // y
9705 /* 30029 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
9706 /* 30033 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
9707 /* 30037 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9708 /* 30040 */ GIR_EraseRootFromParent_Done,
9709 /* 30041 */ // Label 399: @30041
9710 /* 30041 */ GIM_Try, /*On fail goto*//*Label 400*/ GIMT_Encode4(30065), // Rule ID 94 //
9711 /* 30046 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
9712 /* 30049 */ // MIs[0] dst
9713 /* 30049 */ // No operand predicates
9714 /* 30049 */ // MIs[0] __binop_right_undef_to_undef_match_0.x
9715 /* 30049 */ // No operand predicates
9716 /* 30049 */ // MIs[0] __binop_right_undef_to_undef_match_0.y
9717 /* 30049 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9718 /* 30053 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9719 /* 30057 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9720 /* 30059 */ // Combiner Rule #80: binop_right_undef_to_undef @ [__binop_right_undef_to_undef_match_0[1]]
9721 /* 30059 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9722 /* 30062 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9723 /* 30064 */ GIR_EraseRootFromParent_Done,
9724 /* 30065 */ // Label 400: @30065
9725 /* 30065 */ GIM_Try, /*On fail goto*//*Label 401*/ GIMT_Encode4(30088), // Rule ID 123 //
9726 /* 30070 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
9727 /* 30073 */ // MIs[0] dst
9728 /* 30073 */ // No operand predicates
9729 /* 30073 */ // MIs[0] lhs
9730 /* 30073 */ // No operand predicates
9731 /* 30073 */ // MIs[0] Operand 2
9732 /* 30073 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
9733 /* 30077 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9734 /* 30082 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[5]]
9735 /* 30082 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9736 /* 30087 */ GIR_EraseRootFromParent_Done,
9737 /* 30088 */ // Label 401: @30088
9738 /* 30088 */ GIM_Try, /*On fail goto*//*Label 402*/ GIMT_Encode4(30111), // Rule ID 134 //
9739 /* 30093 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
9740 /* 30096 */ // MIs[0] dst
9741 /* 30096 */ // No operand predicates
9742 /* 30096 */ // MIs[0] zero
9743 /* 30096 */ // No operand predicates
9744 /* 30096 */ // MIs[0] rhs
9745 /* 30096 */ // No operand predicates
9746 /* 30096 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
9747 /* 30100 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9748 /* 30105 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[2]]
9749 /* 30105 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9750 /* 30110 */ GIR_EraseRootFromParent_Done,
9751 /* 30111 */ // Label 402: @30111
9752 /* 30111 */ GIM_Try, /*On fail goto*//*Label 403*/ GIMT_Encode4(30122), // Rule ID 168 //
9753 /* 30116 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
9754 /* 30119 */ // MIs[0] root
9755 /* 30119 */ // No operand predicates
9756 /* 30119 */ // MIs[0] mi.shifted
9757 /* 30119 */ // No operand predicates
9758 /* 30119 */ // MIs[0] mi.amt
9759 /* 30119 */ // No operand predicates
9760 /* 30119 */ // Combiner Rule #119: shifts_too_big @ [mi[1]]
9761 /* 30119 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
9762 /* 30122 */ // Label 403: @30122
9763 /* 30122 */ GIM_Try, /*On fail goto*//*Label 404*/ GIMT_Encode4(30133), // Rule ID 180 //
9764 /* 30127 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule130Enabled),
9765 /* 30130 */ // MIs[0] dst
9766 /* 30130 */ // No operand predicates
9767 /* 30130 */ // MIs[0] src1
9768 /* 30130 */ // No operand predicates
9769 /* 30130 */ // MIs[0] src2
9770 /* 30130 */ // No operand predicates
9771 /* 30130 */ // Combiner Rule #130: shl_ashr_to_sext_inreg
9772 /* 30130 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
9773 /* 30133 */ // Label 404: @30133
9774 /* 30133 */ GIM_Try, /*On fail goto*//*Label 405*/ GIMT_Encode4(30144), // Rule ID 245 //
9775 /* 30138 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
9776 /* 30141 */ // MIs[0] d
9777 /* 30141 */ // No operand predicates
9778 /* 30141 */ // MIs[0] mi.base
9779 /* 30141 */ // No operand predicates
9780 /* 30141 */ // MIs[0] mi.amt
9781 /* 30141 */ // No operand predicates
9782 /* 30141 */ // Combiner Rule #190: shift_immed_chain @ [mi[1]]
9783 /* 30141 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
9784 /* 30144 */ // Label 405: @30144
9785 /* 30144 */ GIM_Try, /*On fail goto*//*Label 406*/ GIMT_Encode4(30155), // Rule ID 250 //
9786 /* 30149 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9787 /* 30152 */ // MIs[0] d
9788 /* 30152 */ // No operand predicates
9789 /* 30152 */ // MIs[0] mi.base
9790 /* 30152 */ // No operand predicates
9791 /* 30152 */ // MIs[0] mi.amt
9792 /* 30152 */ // No operand predicates
9793 /* 30152 */ // Combiner Rule #191: shift_of_shifted_logic_chain @ [mi[1]]
9794 /* 30152 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
9795 /* 30155 */ // Label 406: @30155
9796 /* 30155 */ GIM_Try, /*On fail goto*//*Label 407*/ GIMT_Encode4(30166), // Rule ID 276 //
9797 /* 30160 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
9798 /* 30163 */ // MIs[0] dst
9799 /* 30163 */ // No operand predicates
9800 /* 30163 */ // MIs[0] root.src
9801 /* 30163 */ // No operand predicates
9802 /* 30163 */ // MIs[0] root.amt
9803 /* 30163 */ // No operand predicates
9804 /* 30163 */ // Combiner Rule #208: bitfield_extract_from_shr @ [root[0]]
9805 /* 30163 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
9806 /* 30166 */ // Label 407: @30166
9807 /* 30166 */ GIM_Try, /*On fail goto*//*Label 408*/ GIMT_Encode4(30177), // Rule ID 278 //
9808 /* 30171 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
9809 /* 30174 */ // MIs[0] dst
9810 /* 30174 */ // No operand predicates
9811 /* 30174 */ // MIs[0] root.src
9812 /* 30174 */ // No operand predicates
9813 /* 30174 */ // MIs[0] root.amt
9814 /* 30174 */ // No operand predicates
9815 /* 30174 */ // Combiner Rule #209: bitfield_extract_from_shr_and @ [root[0]]
9816 /* 30174 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
9817 /* 30177 */ // Label 408: @30177
9818 /* 30177 */ GIM_Try, /*On fail goto*//*Label 409*/ GIMT_Encode4(30188), // Rule ID 283 //
9819 /* 30182 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
9820 /* 30185 */ // MIs[0] d
9821 /* 30185 */ // No operand predicates
9822 /* 30185 */ // MIs[0] mi.src0
9823 /* 30185 */ // No operand predicates
9824 /* 30185 */ // MIs[0] mi.src1
9825 /* 30185 */ // No operand predicates
9826 /* 30185 */ // Combiner Rule #210: constant_fold_binop @ [mi[3]]
9827 /* 30185 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
9828 /* 30188 */ // Label 409: @30188
9829 /* 30188 */ GIM_Try, /*On fail goto*//*Label 410*/ GIMT_Encode4(30199), // Rule ID 352 //
9830 /* 30193 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
9831 /* 30196 */ // MIs[0] root
9832 /* 30196 */ // No operand predicates
9833 /* 30196 */ // MIs[0] mi.x
9834 /* 30196 */ // No operand predicates
9835 /* 30196 */ // MIs[0] mi.y
9836 /* 30196 */ // No operand predicates
9837 /* 30196 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[11]]
9838 /* 30196 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
9839 /* 30199 */ // Label 410: @30199
9840 /* 30199 */ GIM_Reject,
9841 /* 30200 */ // Label 38: @30200
9842 /* 30200 */ GIM_Try, /*On fail goto*//*Label 411*/ GIMT_Encode4(30227), // Rule ID 260 //
9843 /* 30205 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9844 /* 30208 */ // MIs[0] dst
9845 /* 30208 */ // No operand predicates
9846 /* 30208 */ // MIs[0] x
9847 /* 30208 */ // No operand predicates
9848 /* 30208 */ // MIs[0] x
9849 /* 30208 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
9850 /* 30213 */ // MIs[0] amt
9851 /* 30213 */ // No operand predicates
9852 /* 30213 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner36),
9853 /* 30217 */ // Combiner Rule #195: funnel_shift_to_rotate_left
9854 /* 30217 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ROTL),
9855 /* 30220 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9856 /* 30222 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
9857 /* 30224 */ GIR_RootToRootCopy, /*OpIdx*/3, // amt
9858 /* 30226 */ GIR_EraseRootFromParent_Done,
9859 /* 30227 */ // Label 411: @30227
9860 /* 30227 */ GIM_Try, /*On fail goto*//*Label 412*/ GIMT_Encode4(30247), // Rule ID 263 //
9861 /* 30232 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
9862 /* 30235 */ // MIs[0] x
9863 /* 30235 */ // No operand predicates
9864 /* 30235 */ // MIs[0] y
9865 /* 30235 */ // No operand predicates
9866 /* 30235 */ // MIs[0] z
9867 /* 30235 */ // No operand predicates
9868 /* 30235 */ // MIs[0] Operand 3
9869 /* 30235 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
9870 /* 30239 */ // Combiner Rule #198: funnel_shift_left_zero
9871 /* 30239 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9872 /* 30242 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
9873 /* 30244 */ GIR_RootToRootCopy, /*OpIdx*/1, // y
9874 /* 30246 */ GIR_EraseRootFromParent_Done,
9875 /* 30247 */ // Label 412: @30247
9876 /* 30247 */ GIM_Try, /*On fail goto*//*Label 413*/ GIMT_Encode4(30258), // Rule ID 264 //
9877 /* 30252 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule199Enabled),
9878 /* 30255 */ // MIs[0] dst
9879 /* 30255 */ // No operand predicates
9880 /* 30255 */ // MIs[0] root.x
9881 /* 30255 */ // No operand predicates
9882 /* 30255 */ // MIs[0] root.y
9883 /* 30255 */ // No operand predicates
9884 /* 30255 */ // MIs[0] root.amt
9885 /* 30255 */ // No operand predicates
9886 /* 30255 */ // Combiner Rule #199: funnel_shift_overshift @ [root[0]]
9887 /* 30255 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner74),
9888 /* 30258 */ // Label 413: @30258
9889 /* 30258 */ GIM_Reject,
9890 /* 30259 */ // Label 39: @30259
9891 /* 30259 */ GIM_Try, /*On fail goto*//*Label 414*/ GIMT_Encode4(30286), // Rule ID 261 //
9892 /* 30264 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule196Enabled),
9893 /* 30267 */ // MIs[0] dst
9894 /* 30267 */ // No operand predicates
9895 /* 30267 */ // MIs[0] x
9896 /* 30267 */ // No operand predicates
9897 /* 30267 */ // MIs[0] x
9898 /* 30267 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
9899 /* 30272 */ // MIs[0] amt
9900 /* 30272 */ // No operand predicates
9901 /* 30272 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner37),
9902 /* 30276 */ // Combiner Rule #196: funnel_shift_to_rotate_right
9903 /* 30276 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ROTR),
9904 /* 30279 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9905 /* 30281 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
9906 /* 30283 */ GIR_RootToRootCopy, /*OpIdx*/3, // amt
9907 /* 30285 */ GIR_EraseRootFromParent_Done,
9908 /* 30286 */ // Label 414: @30286
9909 /* 30286 */ GIM_Try, /*On fail goto*//*Label 415*/ GIMT_Encode4(30306), // Rule ID 262 //
9910 /* 30291 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
9911 /* 30294 */ // MIs[0] x
9912 /* 30294 */ // No operand predicates
9913 /* 30294 */ // MIs[0] y
9914 /* 30294 */ // No operand predicates
9915 /* 30294 */ // MIs[0] z
9916 /* 30294 */ // No operand predicates
9917 /* 30294 */ // MIs[0] Operand 3
9918 /* 30294 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
9919 /* 30298 */ // Combiner Rule #197: funnel_shift_right_zero
9920 /* 30298 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9921 /* 30301 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
9922 /* 30303 */ GIR_RootToRootCopy, /*OpIdx*/2, // z
9923 /* 30305 */ GIR_EraseRootFromParent_Done,
9924 /* 30306 */ // Label 415: @30306
9925 /* 30306 */ GIM_Try, /*On fail goto*//*Label 416*/ GIMT_Encode4(30317), // Rule ID 265 //
9926 /* 30311 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule199Enabled),
9927 /* 30314 */ // MIs[0] dst
9928 /* 30314 */ // No operand predicates
9929 /* 30314 */ // MIs[0] root.x
9930 /* 30314 */ // No operand predicates
9931 /* 30314 */ // MIs[0] root.y
9932 /* 30314 */ // No operand predicates
9933 /* 30314 */ // MIs[0] root.amt
9934 /* 30314 */ // No operand predicates
9935 /* 30314 */ // Combiner Rule #199: funnel_shift_overshift @ [root[1]]
9936 /* 30314 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner74),
9937 /* 30317 */ // Label 416: @30317
9938 /* 30317 */ GIM_Reject,
9939 /* 30318 */ // Label 40: @30318
9940 /* 30318 */ GIM_Try, /*On fail goto*//*Label 417*/ GIMT_Encode4(30341), // Rule ID 127 //
9941 /* 30323 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
9942 /* 30326 */ // MIs[0] dst
9943 /* 30326 */ // No operand predicates
9944 /* 30326 */ // MIs[0] lhs
9945 /* 30326 */ // No operand predicates
9946 /* 30326 */ // MIs[0] Operand 2
9947 /* 30326 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
9948 /* 30330 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9949 /* 30335 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[9]]
9950 /* 30335 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9951 /* 30340 */ GIR_EraseRootFromParent_Done,
9952 /* 30341 */ // Label 417: @30341
9953 /* 30341 */ GIM_Reject,
9954 /* 30342 */ // Label 41: @30342
9955 /* 30342 */ GIM_Try, /*On fail goto*//*Label 418*/ GIMT_Encode4(30365), // Rule ID 126 //
9956 /* 30347 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
9957 /* 30350 */ // MIs[0] dst
9958 /* 30350 */ // No operand predicates
9959 /* 30350 */ // MIs[0] lhs
9960 /* 30350 */ // No operand predicates
9961 /* 30350 */ // MIs[0] Operand 2
9962 /* 30350 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
9963 /* 30354 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9964 /* 30359 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[8]]
9965 /* 30359 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9966 /* 30364 */ GIR_EraseRootFromParent_Done,
9967 /* 30365 */ // Label 418: @30365
9968 /* 30365 */ GIM_Reject,
9969 /* 30366 */ // Label 42: @30366
9970 /* 30366 */ GIM_Try, /*On fail goto*//*Label 419*/ GIMT_Encode4(30377), // Rule ID 173 //
9971 /* 30371 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule123Enabled),
9972 /* 30374 */ // MIs[0] root
9973 /* 30374 */ // No operand predicates
9974 /* 30374 */ // MIs[0] pred
9975 /* 30374 */ // No operand predicates
9976 /* 30374 */ // MIs[0] lhs
9977 /* 30374 */ // No operand predicates
9978 /* 30374 */ // MIs[0] rhs
9979 /* 30374 */ // No operand predicates
9980 /* 30374 */ // Combiner Rule #123: canonicalize_icmp
9981 /* 30374 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
9982 /* 30377 */ // Label 419: @30377
9983 /* 30377 */ GIM_Try, /*On fail goto*//*Label 420*/ GIMT_Encode4(30388), // Rule ID 175 //
9984 /* 30382 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule125Enabled),
9985 /* 30385 */ // MIs[0] dst
9986 /* 30385 */ // No operand predicates
9987 /* 30385 */ // MIs[0] pred
9988 /* 30385 */ // No operand predicates
9989 /* 30385 */ // MIs[0] src1
9990 /* 30385 */ // No operand predicates
9991 /* 30385 */ // MIs[0] src2
9992 /* 30385 */ // No operand predicates
9993 /* 30385 */ // Combiner Rule #125: icmp_to_true_false_known_bits
9994 /* 30385 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
9995 /* 30388 */ // Label 420: @30388
9996 /* 30388 */ GIM_Try, /*On fail goto*//*Label 421*/ GIMT_Encode4(30399), // Rule ID 176 //
9997 /* 30393 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
9998 /* 30396 */ // MIs[0] dst
9999 /* 30396 */ // No operand predicates
10000 /* 30396 */ // MIs[0] pred
10001 /* 30396 */ // No operand predicates
10002 /* 30396 */ // MIs[0] src1
10003 /* 30396 */ // No operand predicates
10004 /* 30396 */ // MIs[0] src2
10005 /* 30396 */ // No operand predicates
10006 /* 30396 */ // Combiner Rule #126: icmp_to_lhs_known_bits
10007 /* 30396 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
10008 /* 30399 */ // Label 421: @30399
10009 /* 30399 */ GIM_Try, /*On fail goto*//*Label 422*/ GIMT_Encode4(30410), // Rule ID 179 //
10010 /* 30404 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule129Enabled),
10011 /* 30407 */ // MIs[0] dst
10012 /* 30407 */ // No operand predicates
10013 /* 30407 */ // MIs[0] pred
10014 /* 30407 */ // No operand predicates
10015 /* 30407 */ // MIs[0] src1
10016 /* 30407 */ // No operand predicates
10017 /* 30407 */ // MIs[0] src2
10018 /* 30407 */ // No operand predicates
10019 /* 30407 */ // Combiner Rule #129: redundant_binop_in_equality
10020 /* 30407 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
10021 /* 30410 */ // Label 422: @30410
10022 /* 30410 */ GIM_Reject,
10023 /* 30411 */ // Label 43: @30411
10024 /* 30411 */ GIM_Try, /*On fail goto*//*Label 423*/ GIMT_Encode4(30422), // Rule ID 174 //
10025 /* 30416 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule124Enabled),
10026 /* 30419 */ // MIs[0] root
10027 /* 30419 */ // No operand predicates
10028 /* 30419 */ // MIs[0] pred
10029 /* 30419 */ // No operand predicates
10030 /* 30419 */ // MIs[0] lhs
10031 /* 30419 */ // No operand predicates
10032 /* 30419 */ // MIs[0] rhs
10033 /* 30419 */ // No operand predicates
10034 /* 30419 */ // Combiner Rule #124: canonicalize_fcmp
10035 /* 30419 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner44),
10036 /* 30422 */ // Label 423: @30422
10037 /* 30422 */ GIM_Reject,
10038 /* 30423 */ // Label 44: @30423
10039 /* 30423 */ GIM_Try_CheckFeatures, /*On fail goto*//*Label 424*/ GIMT_Encode4(30449), GIMT_Encode2(GIFBS_HasFminFmaxLegacy), // Rule ID 470 //
10040 /* 30430 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule332Enabled),
10041 /* 30433 */ GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_f32,
10042 /* 30436 */ // MIs[0] cond
10043 /* 30436 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10044 /* 30440 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCMP),
10045 /* 30444 */ // MIs[1] pred
10046 /* 30444 */ // No operand predicates
10047 /* 30444 */ // MIs[1] lhs
10048 /* 30444 */ // No operand predicates
10049 /* 30444 */ // MIs[1] rhs
10050 /* 30444 */ // No operand predicates
10051 /* 30444 */ // MIs[0] true
10052 /* 30444 */ // No operand predicates
10053 /* 30444 */ // MIs[0] false
10054 /* 30444 */ // No operand predicates
10055 /* 30444 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10056 /* 30446 */ // Combiner Rule #332: fcmp_select_to_fmin_fmax_legacy
10057 /* 30446 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
10058 /* 30449 */ // Label 424: @30449
10059 /* 30449 */ GIM_Try, /*On fail goto*//*Label 425*/ GIMT_Encode4(30498), // Rule ID 192 //
10060 /* 30454 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule142Enabled),
10061 /* 30457 */ // MIs[0] dst
10062 /* 30457 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
10063 /* 30461 */ // MIs[0] c
10064 /* 30461 */ // No operand predicates
10065 /* 30461 */ // MIs[0] x
10066 /* 30461 */ // No operand predicates
10067 /* 30461 */ // MIs[0] Operand 3
10068 /* 30461 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
10069 /* 30465 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner27),
10070 /* 30469 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
10071 /* 30472 */ // Combiner Rule #142: select_zero_false
10072 /* 30472 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FREEZE),
10073 /* 30475 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
10074 /* 30480 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10075 /* 30482 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
10076 /* 30486 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
10077 /* 30490 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // c
10078 /* 30494 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
10079 /* 30497 */ GIR_EraseRootFromParent_Done,
10080 /* 30498 */ // Label 425: @30498
10081 /* 30498 */ GIM_Try, /*On fail goto*//*Label 426*/ GIMT_Encode4(30519), // Rule ID 190 //
10082 /* 30503 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule140Enabled),
10083 /* 30506 */ // MIs[0] root
10084 /* 30506 */ // No operand predicates
10085 /* 30506 */ // MIs[0] tst
10086 /* 30506 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10087 /* 30510 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
10088 /* 30514 */ // MIs[1] tst1
10089 /* 30514 */ // No operand predicates
10090 /* 30514 */ // MIs[1] a
10091 /* 30514 */ // No operand predicates
10092 /* 30514 */ // MIs[1] b
10093 /* 30514 */ // No operand predicates
10094 /* 30514 */ // MIs[0] x
10095 /* 30514 */ // No operand predicates
10096 /* 30514 */ // MIs[0] y
10097 /* 30514 */ // No operand predicates
10098 /* 30514 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10099 /* 30516 */ // Combiner Rule #140: select_to_iminmax
10100 /* 30516 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
10101 /* 30519 */ // Label 426: @30519
10102 /* 30519 */ GIM_Try, /*On fail goto*//*Label 427*/ GIMT_Encode4(30555), // Rule ID 193 //
10103 /* 30524 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule143Enabled),
10104 /* 30527 */ // MIs[0] dst
10105 /* 30527 */ // No operand predicates
10106 /* 30527 */ // MIs[0] c
10107 /* 30527 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10108 /* 30531 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
10109 /* 30535 */ // MIs[1] src
10110 /* 30535 */ // No operand predicates
10111 /* 30535 */ // MIs[1] Operand 2
10112 /* 30535 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 255,
10113 /* 30539 */ // MIs[0] x
10114 /* 30539 */ // No operand predicates
10115 /* 30539 */ // MIs[0] y
10116 /* 30539 */ // No operand predicates
10117 /* 30539 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10118 /* 30541 */ // Combiner Rule #143: select_not
10119 /* 30541 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SELECT),
10120 /* 30544 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10121 /* 30546 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
10122 /* 30550 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
10123 /* 30552 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10124 /* 30554 */ GIR_EraseRootFromParent_Done,
10125 /* 30555 */ // Label 427: @30555
10126 /* 30555 */ GIM_Try, /*On fail goto*//*Label 428*/ GIMT_Encode4(30584), // Rule ID 185 //
10127 /* 30560 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule135Enabled),
10128 /* 30563 */ // MIs[0] dst
10129 /* 30563 */ // No operand predicates
10130 /* 30563 */ // MIs[0] undef
10131 /* 30563 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10132 /* 30567 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10133 /* 30571 */ // MIs[0] x
10134 /* 30571 */ // No operand predicates
10135 /* 30571 */ // MIs[0] y
10136 /* 30571 */ // No operand predicates
10137 /* 30571 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
10138 /* 30576 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10139 /* 30578 */ // Combiner Rule #135: select_undef_cmp
10140 /* 30578 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
10141 /* 30583 */ GIR_EraseRootFromParent_Done,
10142 /* 30584 */ // Label 428: @30584
10143 /* 30584 */ GIM_Try, /*On fail goto*//*Label 429*/ GIMT_Encode4(30624), // Rule ID 186 //
10144 /* 30589 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled),
10145 /* 30592 */ // MIs[0] dst
10146 /* 30592 */ // No operand predicates
10147 /* 30592 */ // MIs[0] cond
10148 /* 30592 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10149 /* 30596 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
10150 /* 30600 */ // MIs[1] Operand 1
10151 /* 30600 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
10152 /* 30611 */ // MIs[0] tval
10153 /* 30611 */ // No operand predicates
10154 /* 30611 */ // MIs[0] fval
10155 /* 30611 */ // No operand predicates
10156 /* 30611 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
10157 /* 30616 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10158 /* 30618 */ // Combiner Rule #136: select_constant_cmp_false
10159 /* 30618 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
10160 /* 30623 */ GIR_EraseRootFromParent_Done,
10161 /* 30624 */ // Label 429: @30624
10162 /* 30624 */ GIM_Try, /*On fail goto*//*Label 430*/ GIMT_Encode4(30664), // Rule ID 187 //
10163 /* 30629 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled),
10164 /* 30632 */ // MIs[0] dst
10165 /* 30632 */ // No operand predicates
10166 /* 30632 */ // MIs[0] cond
10167 /* 30632 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10168 /* 30636 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
10169 /* 30640 */ // MIs[1] Operand 1
10170 /* 30640 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(1),
10171 /* 30651 */ // MIs[0] tval
10172 /* 30651 */ // No operand predicates
10173 /* 30651 */ // MIs[0] fval
10174 /* 30651 */ // No operand predicates
10175 /* 30651 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
10176 /* 30656 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10177 /* 30658 */ // Combiner Rule #137: select_constant_cmp_true
10178 /* 30658 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
10179 /* 30663 */ GIR_EraseRootFromParent_Done,
10180 /* 30664 */ // Label 430: @30664
10181 /* 30664 */ GIM_Try, /*On fail goto*//*Label 431*/ GIMT_Encode4(30688), // Rule ID 116 //
10182 /* 30669 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
10183 /* 30672 */ // MIs[0] dst
10184 /* 30672 */ // No operand predicates
10185 /* 30672 */ // MIs[0] cond
10186 /* 30672 */ // No operand predicates
10187 /* 30672 */ // MIs[0] x
10188 /* 30672 */ // No operand predicates
10189 /* 30672 */ // MIs[0] x
10190 /* 30672 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/0, /*OtherOpIdx*/2,
10191 /* 30677 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
10192 /* 30682 */ // Combiner Rule #90: select_same_val_trivial
10193 /* 30682 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
10194 /* 30687 */ GIR_EraseRootFromParent_Done,
10195 /* 30688 */ // Label 431: @30688
10196 /* 30688 */ GIM_Try, /*On fail goto*//*Label 432*/ GIMT_Encode4(30711), // Rule ID 117 //
10197 /* 30693 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
10198 /* 30696 */ // MIs[0] dst
10199 /* 30696 */ // No operand predicates
10200 /* 30696 */ // MIs[0] cond
10201 /* 30696 */ // No operand predicates
10202 /* 30696 */ // MIs[0] tval
10203 /* 30696 */ // No operand predicates
10204 /* 30696 */ // MIs[0] fval
10205 /* 30696 */ // No operand predicates
10206 /* 30696 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner11),
10207 /* 30700 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
10208 /* 30705 */ // Combiner Rule #91: select_same_val_equiv
10209 /* 30705 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
10210 /* 30710 */ GIR_EraseRootFromParent_Done,
10211 /* 30711 */ // Label 432: @30711
10212 /* 30711 */ GIM_Try, /*On fail goto*//*Label 433*/ GIMT_Encode4(30734), // Rule ID 188 //
10213 /* 30716 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule138Enabled),
10214 /* 30719 */ // MIs[0] dst
10215 /* 30719 */ // No operand predicates
10216 /* 30719 */ // MIs[0] cond
10217 /* 30719 */ // No operand predicates
10218 /* 30719 */ // MIs[0] tval
10219 /* 30719 */ // No operand predicates
10220 /* 30719 */ // MIs[0] fval
10221 /* 30719 */ // No operand predicates
10222 /* 30719 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner25),
10223 /* 30723 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
10224 /* 30728 */ // Combiner Rule #138: select_constant_cmp_general_false
10225 /* 30728 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
10226 /* 30733 */ GIR_EraseRootFromParent_Done,
10227 /* 30734 */ // Label 433: @30734
10228 /* 30734 */ GIM_Try, /*On fail goto*//*Label 434*/ GIMT_Encode4(30757), // Rule ID 189 //
10229 /* 30739 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule139Enabled),
10230 /* 30742 */ // MIs[0] dst
10231 /* 30742 */ // No operand predicates
10232 /* 30742 */ // MIs[0] cond
10233 /* 30742 */ // No operand predicates
10234 /* 30742 */ // MIs[0] tval
10235 /* 30742 */ // No operand predicates
10236 /* 30742 */ // MIs[0] fval
10237 /* 30742 */ // No operand predicates
10238 /* 30742 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner26),
10239 /* 30746 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
10240 /* 30751 */ // Combiner Rule #139: select_constant_cmp_general_true
10241 /* 30751 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
10242 /* 30756 */ GIR_EraseRootFromParent_Done,
10243 /* 30757 */ // Label 434: @30757
10244 /* 30757 */ GIM_Try, /*On fail goto*//*Label 435*/ GIMT_Encode4(30768), // Rule ID 191 //
10245 /* 30762 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule141Enabled),
10246 /* 30765 */ // MIs[0] dst
10247 /* 30765 */ // No operand predicates
10248 /* 30765 */ // MIs[0] cond
10249 /* 30765 */ // No operand predicates
10250 /* 30765 */ // MIs[0] tval
10251 /* 30765 */ // No operand predicates
10252 /* 30765 */ // MIs[0] fval
10253 /* 30765 */ // No operand predicates
10254 /* 30765 */ // Combiner Rule #141: match_selects
10255 /* 30765 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner53),
10256 /* 30768 */ // Label 435: @30768
10257 /* 30768 */ GIM_Try, /*On fail goto*//*Label 436*/ GIMT_Encode4(30779), // Rule ID 379 //
10258 /* 30773 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule247Enabled),
10259 /* 30776 */ // MIs[0] dst
10260 /* 30776 */ // No operand predicates
10261 /* 30776 */ // MIs[0] cond
10262 /* 30776 */ // No operand predicates
10263 /* 30776 */ // MIs[0] tval
10264 /* 30776 */ // No operand predicates
10265 /* 30776 */ // MIs[0] fval
10266 /* 30776 */ // No operand predicates
10267 /* 30776 */ // Combiner Rule #247: select_to_minmax
10268 /* 30776 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
10269 /* 30779 */ // Label 436: @30779
10270 /* 30779 */ GIM_Reject,
10271 /* 30780 */ // Label 45: @30780
10272 /* 30780 */ GIM_Try, /*On fail goto*//*Label 437*/ GIMT_Encode4(30807), // Rule ID 398 //
10273 /* 30785 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule266Enabled),
10274 /* 30788 */ // MIs[0] dst
10275 /* 30788 */ // No operand predicates
10276 /* 30788 */ // MIs[0] carry
10277 /* 30788 */ // No operand predicates
10278 /* 30788 */ // MIs[0] lhs
10279 /* 30788 */ // No operand predicates
10280 /* 30788 */ // MIs[0] rhs
10281 /* 30788 */ // No operand predicates
10282 /* 30788 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10283 /* 30792 */ // Combiner Rule #266: G_UADDO_commute_constant_to_rhs
10284 /* 30792 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UADDO),
10285 /* 30795 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10286 /* 30797 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry
10287 /* 30799 */ GIR_RootToRootCopy, /*OpIdx*/3, // rhs
10288 /* 30801 */ GIR_RootToRootCopy, /*OpIdx*/2, // lhs
10289 /* 30803 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10290 /* 30806 */ GIR_EraseRootFromParent_Done,
10291 /* 30807 */ // Label 437: @30807
10292 /* 30807 */ GIM_Try, /*On fail goto*//*Label 438*/ GIMT_Encode4(30837), // Rule ID 438 //
10293 /* 30812 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule306Enabled),
10294 /* 30815 */ // MIs[0] dst
10295 /* 30815 */ // No operand predicates
10296 /* 30815 */ // MIs[0] carry
10297 /* 30815 */ // No operand predicates
10298 /* 30815 */ // MIs[0] x
10299 /* 30815 */ // No operand predicates
10300 /* 30815 */ // MIs[0] y
10301 /* 30815 */ // No operand predicates
10302 /* 30815 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner52),
10303 /* 30819 */ // Combiner Rule #306: match_addos_uaddo_dead_carry
10304 /* 30819 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
10305 /* 30822 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10306 /* 30824 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10307 /* 30826 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
10308 /* 30828 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10309 /* 30832 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // carry
10310 /* 30836 */ GIR_EraseRootFromParent_Done,
10311 /* 30837 */ // Label 438: @30837
10312 /* 30837 */ GIM_Try, /*On fail goto*//*Label 439*/ GIMT_Encode4(30848), // Rule ID 440 //
10313 /* 30842 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule308Enabled),
10314 /* 30845 */ // MIs[0] dst
10315 /* 30845 */ // No operand predicates
10316 /* 30845 */ // MIs[0] carry
10317 /* 30845 */ // No operand predicates
10318 /* 30845 */ // MIs[0] x
10319 /* 30845 */ // No operand predicates
10320 /* 30845 */ // MIs[0] y
10321 /* 30845 */ // No operand predicates
10322 /* 30845 */ // Combiner Rule #308: match_addos_uaddo
10323 /* 30845 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
10324 /* 30848 */ // Label 439: @30848
10325 /* 30848 */ GIM_Reject,
10326 /* 30849 */ // Label 46: @30849
10327 /* 30849 */ GIM_Try, /*On fail goto*//*Label 440*/ GIMT_Encode4(30876), // Rule ID 228 //
10328 /* 30854 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
10329 /* 30857 */ // MIs[0] dst
10330 /* 30857 */ // No operand predicates
10331 /* 30857 */ // MIs[0] carry_out
10332 /* 30857 */ // No operand predicates
10333 /* 30857 */ // MIs[0] x
10334 /* 30857 */ // No operand predicates
10335 /* 30857 */ // MIs[0] y
10336 /* 30857 */ // No operand predicates
10337 /* 30857 */ // MIs[0] carry_in
10338 /* 30857 */ // No operand predicates
10339 /* 30857 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner31),
10340 /* 30861 */ // Combiner Rule #178: adde_to_addo_uadde
10341 /* 30861 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UADDO),
10342 /* 30864 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10343 /* 30866 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry_out
10344 /* 30868 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10345 /* 30870 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
10346 /* 30872 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10347 /* 30875 */ GIR_EraseRootFromParent_Done,
10348 /* 30876 */ // Label 440: @30876
10349 /* 30876 */ GIM_Reject,
10350 /* 30877 */ // Label 47: @30877
10351 /* 30877 */ GIM_Try, /*On fail goto*//*Label 441*/ GIMT_Encode4(30888), // Rule ID 442 //
10352 /* 30882 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule310Enabled),
10353 /* 30885 */ // MIs[0] dst
10354 /* 30885 */ // No operand predicates
10355 /* 30885 */ // MIs[0] carry
10356 /* 30885 */ // No operand predicates
10357 /* 30885 */ // MIs[0] x
10358 /* 30885 */ // No operand predicates
10359 /* 30885 */ // MIs[0] y
10360 /* 30885 */ // No operand predicates
10361 /* 30885 */ // Combiner Rule #310: match_subo_no_overflow_usubo
10362 /* 30885 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
10363 /* 30888 */ // Label 441: @30888
10364 /* 30888 */ GIM_Reject,
10365 /* 30889 */ // Label 48: @30889
10366 /* 30889 */ GIM_Try, /*On fail goto*//*Label 442*/ GIMT_Encode4(30916), // Rule ID 230 //
10367 /* 30894 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
10368 /* 30897 */ // MIs[0] dst
10369 /* 30897 */ // No operand predicates
10370 /* 30897 */ // MIs[0] carry_out
10371 /* 30897 */ // No operand predicates
10372 /* 30897 */ // MIs[0] x
10373 /* 30897 */ // No operand predicates
10374 /* 30897 */ // MIs[0] y
10375 /* 30897 */ // No operand predicates
10376 /* 30897 */ // MIs[0] carry_in
10377 /* 30897 */ // No operand predicates
10378 /* 30897 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner31),
10379 /* 30901 */ // Combiner Rule #180: adde_to_addo_usube
10380 /* 30901 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_USUBO),
10381 /* 30904 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10382 /* 30906 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry_out
10383 /* 30908 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10384 /* 30910 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
10385 /* 30912 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10386 /* 30915 */ GIR_EraseRootFromParent_Done,
10387 /* 30916 */ // Label 442: @30916
10388 /* 30916 */ GIM_Reject,
10389 /* 30917 */ // Label 49: @30917
10390 /* 30917 */ GIM_Try, /*On fail goto*//*Label 443*/ GIMT_Encode4(30944), // Rule ID 399 //
10391 /* 30922 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule267Enabled),
10392 /* 30925 */ // MIs[0] dst
10393 /* 30925 */ // No operand predicates
10394 /* 30925 */ // MIs[0] carry
10395 /* 30925 */ // No operand predicates
10396 /* 30925 */ // MIs[0] lhs
10397 /* 30925 */ // No operand predicates
10398 /* 30925 */ // MIs[0] rhs
10399 /* 30925 */ // No operand predicates
10400 /* 30925 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10401 /* 30929 */ // Combiner Rule #267: G_SADDO_commute_constant_to_rhs
10402 /* 30929 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SADDO),
10403 /* 30932 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10404 /* 30934 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry
10405 /* 30936 */ GIR_RootToRootCopy, /*OpIdx*/3, // rhs
10406 /* 30938 */ GIR_RootToRootCopy, /*OpIdx*/2, // lhs
10407 /* 30940 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10408 /* 30943 */ GIR_EraseRootFromParent_Done,
10409 /* 30944 */ // Label 443: @30944
10410 /* 30944 */ GIM_Try, /*On fail goto*//*Label 444*/ GIMT_Encode4(30974), // Rule ID 437 //
10411 /* 30949 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule305Enabled),
10412 /* 30952 */ // MIs[0] dst
10413 /* 30952 */ // No operand predicates
10414 /* 30952 */ // MIs[0] carry
10415 /* 30952 */ // No operand predicates
10416 /* 30952 */ // MIs[0] x
10417 /* 30952 */ // No operand predicates
10418 /* 30952 */ // MIs[0] y
10419 /* 30952 */ // No operand predicates
10420 /* 30952 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner52),
10421 /* 30956 */ // Combiner Rule #305: match_addos_saddo_dead_carry
10422 /* 30956 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
10423 /* 30959 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10424 /* 30961 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10425 /* 30963 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
10426 /* 30965 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10427 /* 30969 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // carry
10428 /* 30973 */ GIR_EraseRootFromParent_Done,
10429 /* 30974 */ // Label 444: @30974
10430 /* 30974 */ GIM_Try, /*On fail goto*//*Label 445*/ GIMT_Encode4(30985), // Rule ID 439 //
10431 /* 30979 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule307Enabled),
10432 /* 30982 */ // MIs[0] dst
10433 /* 30982 */ // No operand predicates
10434 /* 30982 */ // MIs[0] carry
10435 /* 30982 */ // No operand predicates
10436 /* 30982 */ // MIs[0] x
10437 /* 30982 */ // No operand predicates
10438 /* 30982 */ // MIs[0] y
10439 /* 30982 */ // No operand predicates
10440 /* 30982 */ // Combiner Rule #307: match_addos_saddo
10441 /* 30982 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
10442 /* 30985 */ // Label 445: @30985
10443 /* 30985 */ GIM_Reject,
10444 /* 30986 */ // Label 50: @30986
10445 /* 30986 */ GIM_Try, /*On fail goto*//*Label 446*/ GIMT_Encode4(31013), // Rule ID 229 //
10446 /* 30991 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
10447 /* 30994 */ // MIs[0] dst
10448 /* 30994 */ // No operand predicates
10449 /* 30994 */ // MIs[0] carry_out
10450 /* 30994 */ // No operand predicates
10451 /* 30994 */ // MIs[0] x
10452 /* 30994 */ // No operand predicates
10453 /* 30994 */ // MIs[0] y
10454 /* 30994 */ // No operand predicates
10455 /* 30994 */ // MIs[0] carry_in
10456 /* 30994 */ // No operand predicates
10457 /* 30994 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner31),
10458 /* 30998 */ // Combiner Rule #179: adde_to_addo_sadde
10459 /* 30998 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SADDO),
10460 /* 31001 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10461 /* 31003 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry_out
10462 /* 31005 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10463 /* 31007 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
10464 /* 31009 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10465 /* 31012 */ GIR_EraseRootFromParent_Done,
10466 /* 31013 */ // Label 446: @31013
10467 /* 31013 */ GIM_Reject,
10468 /* 31014 */ // Label 51: @31014
10469 /* 31014 */ GIM_Try, /*On fail goto*//*Label 447*/ GIMT_Encode4(31025), // Rule ID 441 //
10470 /* 31019 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule309Enabled),
10471 /* 31022 */ // MIs[0] dst
10472 /* 31022 */ // No operand predicates
10473 /* 31022 */ // MIs[0] carry
10474 /* 31022 */ // No operand predicates
10475 /* 31022 */ // MIs[0] x
10476 /* 31022 */ // No operand predicates
10477 /* 31022 */ // MIs[0] y
10478 /* 31022 */ // No operand predicates
10479 /* 31022 */ // Combiner Rule #309: match_subo_no_overflow_ssubo
10480 /* 31022 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
10481 /* 31025 */ // Label 447: @31025
10482 /* 31025 */ GIM_Reject,
10483 /* 31026 */ // Label 52: @31026
10484 /* 31026 */ GIM_Try, /*On fail goto*//*Label 448*/ GIMT_Encode4(31053), // Rule ID 231 //
10485 /* 31031 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
10486 /* 31034 */ // MIs[0] dst
10487 /* 31034 */ // No operand predicates
10488 /* 31034 */ // MIs[0] carry_out
10489 /* 31034 */ // No operand predicates
10490 /* 31034 */ // MIs[0] x
10491 /* 31034 */ // No operand predicates
10492 /* 31034 */ // MIs[0] y
10493 /* 31034 */ // No operand predicates
10494 /* 31034 */ // MIs[0] carry_in
10495 /* 31034 */ // No operand predicates
10496 /* 31034 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner31),
10497 /* 31038 */ // Combiner Rule #181: adde_to_addo_ssube
10498 /* 31038 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SSUBO),
10499 /* 31041 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10500 /* 31043 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry_out
10501 /* 31045 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10502 /* 31047 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
10503 /* 31049 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10504 /* 31052 */ GIR_EraseRootFromParent_Done,
10505 /* 31053 */ // Label 448: @31053
10506 /* 31053 */ GIM_Reject,
10507 /* 31054 */ // Label 53: @31054
10508 /* 31054 */ GIM_Try, /*On fail goto*//*Label 449*/ GIMT_Encode4(31081), // Rule ID 224 //
10509 /* 31059 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
10510 /* 31062 */ // MIs[0] dst
10511 /* 31062 */ // No operand predicates
10512 /* 31062 */ // MIs[0] carry
10513 /* 31062 */ // No operand predicates
10514 /* 31062 */ // MIs[0] x
10515 /* 31062 */ // No operand predicates
10516 /* 31062 */ // MIs[0] rhs
10517 /* 31062 */ // No operand predicates
10518 /* 31062 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner30),
10519 /* 31066 */ // Combiner Rule #174: mulo_by_2_umulo
10520 /* 31066 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UADDO),
10521 /* 31069 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10522 /* 31071 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry
10523 /* 31073 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10524 /* 31075 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10525 /* 31077 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10526 /* 31080 */ GIR_EraseRootFromParent_Done,
10527 /* 31081 */ // Label 449: @31081
10528 /* 31081 */ GIM_Try, /*On fail goto*//*Label 450*/ GIMT_Encode4(31108), // Rule ID 400 //
10529 /* 31086 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule268Enabled),
10530 /* 31089 */ // MIs[0] dst
10531 /* 31089 */ // No operand predicates
10532 /* 31089 */ // MIs[0] carry
10533 /* 31089 */ // No operand predicates
10534 /* 31089 */ // MIs[0] lhs
10535 /* 31089 */ // No operand predicates
10536 /* 31089 */ // MIs[0] rhs
10537 /* 31089 */ // No operand predicates
10538 /* 31089 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10539 /* 31093 */ // Combiner Rule #268: G_UMULO_commute_constant_to_rhs
10540 /* 31093 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMULO),
10541 /* 31096 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10542 /* 31098 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry
10543 /* 31100 */ GIR_RootToRootCopy, /*OpIdx*/3, // rhs
10544 /* 31102 */ GIR_RootToRootCopy, /*OpIdx*/2, // lhs
10545 /* 31104 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10546 /* 31107 */ GIR_EraseRootFromParent_Done,
10547 /* 31108 */ // Label 450: @31108
10548 /* 31108 */ GIM_Try, /*On fail goto*//*Label 451*/ GIMT_Encode4(31119), // Rule ID 226 //
10549 /* 31113 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
10550 /* 31116 */ // MIs[0] dst
10551 /* 31116 */ // No operand predicates
10552 /* 31116 */ // MIs[0] carry
10553 /* 31116 */ // No operand predicates
10554 /* 31116 */ // MIs[0] x
10555 /* 31116 */ // No operand predicates
10556 /* 31116 */ // MIs[0] y
10557 /* 31116 */ // No operand predicates
10558 /* 31116 */ // Combiner Rule #176: mulo_by_0_umulo
10559 /* 31116 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner66),
10560 /* 31119 */ // Label 451: @31119
10561 /* 31119 */ GIM_Reject,
10562 /* 31120 */ // Label 54: @31120
10563 /* 31120 */ GIM_Try, /*On fail goto*//*Label 452*/ GIMT_Encode4(31147), // Rule ID 225 //
10564 /* 31125 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
10565 /* 31128 */ // MIs[0] dst
10566 /* 31128 */ // No operand predicates
10567 /* 31128 */ // MIs[0] carry
10568 /* 31128 */ // No operand predicates
10569 /* 31128 */ // MIs[0] x
10570 /* 31128 */ // No operand predicates
10571 /* 31128 */ // MIs[0] rhs
10572 /* 31128 */ // No operand predicates
10573 /* 31128 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner30),
10574 /* 31132 */ // Combiner Rule #175: mulo_by_2_smulo
10575 /* 31132 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SADDO),
10576 /* 31135 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10577 /* 31137 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry
10578 /* 31139 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10579 /* 31141 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10580 /* 31143 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10581 /* 31146 */ GIR_EraseRootFromParent_Done,
10582 /* 31147 */ // Label 452: @31147
10583 /* 31147 */ GIM_Try, /*On fail goto*//*Label 453*/ GIMT_Encode4(31174), // Rule ID 401 //
10584 /* 31152 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule269Enabled),
10585 /* 31155 */ // MIs[0] dst
10586 /* 31155 */ // No operand predicates
10587 /* 31155 */ // MIs[0] carry
10588 /* 31155 */ // No operand predicates
10589 /* 31155 */ // MIs[0] lhs
10590 /* 31155 */ // No operand predicates
10591 /* 31155 */ // MIs[0] rhs
10592 /* 31155 */ // No operand predicates
10593 /* 31155 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10594 /* 31159 */ // Combiner Rule #269: G_SMULO_commute_constant_to_rhs
10595 /* 31159 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMULO),
10596 /* 31162 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10597 /* 31164 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry
10598 /* 31166 */ GIR_RootToRootCopy, /*OpIdx*/3, // rhs
10599 /* 31168 */ GIR_RootToRootCopy, /*OpIdx*/2, // lhs
10600 /* 31170 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10601 /* 31173 */ GIR_EraseRootFromParent_Done,
10602 /* 31174 */ // Label 453: @31174
10603 /* 31174 */ GIM_Try, /*On fail goto*//*Label 454*/ GIMT_Encode4(31185), // Rule ID 227 //
10604 /* 31179 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled),
10605 /* 31182 */ // MIs[0] dst
10606 /* 31182 */ // No operand predicates
10607 /* 31182 */ // MIs[0] carry
10608 /* 31182 */ // No operand predicates
10609 /* 31182 */ // MIs[0] x
10610 /* 31182 */ // No operand predicates
10611 /* 31182 */ // MIs[0] y
10612 /* 31182 */ // No operand predicates
10613 /* 31182 */ // Combiner Rule #177: mulo_by_0_smulo
10614 /* 31182 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner66),
10615 /* 31185 */ // Label 454: @31185
10616 /* 31185 */ GIM_Reject,
10617 /* 31186 */ // Label 55: @31186
10618 /* 31186 */ GIM_Try, /*On fail goto*//*Label 455*/ GIMT_Encode4(31211), // Rule ID 390 //
10619 /* 31191 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule258Enabled),
10620 /* 31194 */ // MIs[0] dst
10621 /* 31194 */ // No operand predicates
10622 /* 31194 */ // MIs[0] lhs
10623 /* 31194 */ // No operand predicates
10624 /* 31194 */ // MIs[0] rhs
10625 /* 31194 */ // No operand predicates
10626 /* 31194 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10627 /* 31198 */ // Combiner Rule #258: G_UMULH_commute_constant_to_rhs
10628 /* 31198 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMULH),
10629 /* 31201 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10630 /* 31203 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10631 /* 31205 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10632 /* 31207 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10633 /* 31210 */ GIR_EraseRootFromParent_Done,
10634 /* 31211 */ // Label 455: @31211
10635 /* 31211 */ GIM_Try, /*On fail goto*//*Label 456*/ GIMT_Encode4(31222), // Rule ID 324 //
10636 /* 31216 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
10637 /* 31219 */ // MIs[0] dst
10638 /* 31219 */ // No operand predicates
10639 /* 31219 */ // MIs[0] src1
10640 /* 31219 */ // No operand predicates
10641 /* 31219 */ // MIs[0] src2
10642 /* 31219 */ // No operand predicates
10643 /* 31219 */ // Combiner Rule #216: mulh_to_lshr
10644 /* 31219 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
10645 /* 31222 */ // Label 456: @31222
10646 /* 31222 */ GIM_Reject,
10647 /* 31223 */ // Label 56: @31223
10648 /* 31223 */ GIM_Try, /*On fail goto*//*Label 457*/ GIMT_Encode4(31248), // Rule ID 391 //
10649 /* 31228 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule259Enabled),
10650 /* 31231 */ // MIs[0] dst
10651 /* 31231 */ // No operand predicates
10652 /* 31231 */ // MIs[0] lhs
10653 /* 31231 */ // No operand predicates
10654 /* 31231 */ // MIs[0] rhs
10655 /* 31231 */ // No operand predicates
10656 /* 31231 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10657 /* 31235 */ // Combiner Rule #259: G_SMULH_commute_constant_to_rhs
10658 /* 31235 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMULH),
10659 /* 31238 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10660 /* 31240 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10661 /* 31242 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10662 /* 31244 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10663 /* 31247 */ GIR_EraseRootFromParent_Done,
10664 /* 31248 */ // Label 457: @31248
10665 /* 31248 */ GIM_Reject,
10666 /* 31249 */ // Label 57: @31249
10667 /* 31249 */ GIM_Try, /*On fail goto*//*Label 458*/ GIMT_Encode4(31274), // Rule ID 392 //
10668 /* 31254 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule260Enabled),
10669 /* 31257 */ // MIs[0] dst
10670 /* 31257 */ // No operand predicates
10671 /* 31257 */ // MIs[0] lhs
10672 /* 31257 */ // No operand predicates
10673 /* 31257 */ // MIs[0] rhs
10674 /* 31257 */ // No operand predicates
10675 /* 31257 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10676 /* 31261 */ // Combiner Rule #260: G_UADDSAT_commute_constant_to_rhs
10677 /* 31261 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UADDSAT),
10678 /* 31264 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10679 /* 31266 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10680 /* 31268 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10681 /* 31270 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10682 /* 31273 */ GIR_EraseRootFromParent_Done,
10683 /* 31274 */ // Label 458: @31274
10684 /* 31274 */ GIM_Reject,
10685 /* 31275 */ // Label 58: @31275
10686 /* 31275 */ GIM_Try, /*On fail goto*//*Label 459*/ GIMT_Encode4(31300), // Rule ID 393 //
10687 /* 31280 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule261Enabled),
10688 /* 31283 */ // MIs[0] dst
10689 /* 31283 */ // No operand predicates
10690 /* 31283 */ // MIs[0] lhs
10691 /* 31283 */ // No operand predicates
10692 /* 31283 */ // MIs[0] rhs
10693 /* 31283 */ // No operand predicates
10694 /* 31283 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10695 /* 31287 */ // Combiner Rule #261: G_SADDSAT_commute_constant_to_rhs
10696 /* 31287 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SADDSAT),
10697 /* 31290 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10698 /* 31292 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10699 /* 31294 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10700 /* 31296 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10701 /* 31299 */ GIR_EraseRootFromParent_Done,
10702 /* 31300 */ // Label 459: @31300
10703 /* 31300 */ GIM_Reject,
10704 /* 31301 */ // Label 59: @31301
10705 /* 31301 */ GIM_Try, /*On fail goto*//*Label 460*/ GIMT_Encode4(31312), // Rule ID 248 //
10706 /* 31306 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
10707 /* 31309 */ // MIs[0] d
10708 /* 31309 */ // No operand predicates
10709 /* 31309 */ // MIs[0] mi.base
10710 /* 31309 */ // No operand predicates
10711 /* 31309 */ // MIs[0] mi.amt
10712 /* 31309 */ // No operand predicates
10713 /* 31309 */ // Combiner Rule #190: shift_immed_chain @ [mi[4]]
10714 /* 31309 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
10715 /* 31312 */ // Label 460: @31312
10716 /* 31312 */ GIM_Try, /*On fail goto*//*Label 461*/ GIMT_Encode4(31323), // Rule ID 253 //
10717 /* 31317 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
10718 /* 31320 */ // MIs[0] d
10719 /* 31320 */ // No operand predicates
10720 /* 31320 */ // MIs[0] mi.base
10721 /* 31320 */ // No operand predicates
10722 /* 31320 */ // MIs[0] mi.amt
10723 /* 31320 */ // No operand predicates
10724 /* 31320 */ // Combiner Rule #191: shift_of_shifted_logic_chain @ [mi[4]]
10725 /* 31320 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
10726 /* 31323 */ // Label 461: @31323
10727 /* 31323 */ GIM_Reject,
10728 /* 31324 */ // Label 60: @31324
10729 /* 31324 */ GIM_Try, /*On fail goto*//*Label 462*/ GIMT_Encode4(31335), // Rule ID 247 //
10730 /* 31329 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
10731 /* 31332 */ // MIs[0] d
10732 /* 31332 */ // No operand predicates
10733 /* 31332 */ // MIs[0] mi.base
10734 /* 31332 */ // No operand predicates
10735 /* 31332 */ // MIs[0] mi.amt
10736 /* 31332 */ // No operand predicates
10737 /* 31332 */ // Combiner Rule #190: shift_immed_chain @ [mi[3]]
10738 /* 31332 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
10739 /* 31335 */ // Label 462: @31335
10740 /* 31335 */ GIM_Try, /*On fail goto*//*Label 463*/ GIMT_Encode4(31346), // Rule ID 252 //
10741 /* 31340 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
10742 /* 31343 */ // MIs[0] d
10743 /* 31343 */ // No operand predicates
10744 /* 31343 */ // MIs[0] mi.base
10745 /* 31343 */ // No operand predicates
10746 /* 31343 */ // MIs[0] mi.amt
10747 /* 31343 */ // No operand predicates
10748 /* 31343 */ // Combiner Rule #191: shift_of_shifted_logic_chain @ [mi[3]]
10749 /* 31343 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
10750 /* 31346 */ // Label 463: @31346
10751 /* 31346 */ GIM_Reject,
10752 /* 31347 */ // Label 61: @31347
10753 /* 31347 */ GIM_Try, /*On fail goto*//*Label 464*/ GIMT_Encode4(31374), // Rule ID 394 //
10754 /* 31352 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule262Enabled),
10755 /* 31355 */ // MIs[0] dst
10756 /* 31355 */ // No operand predicates
10757 /* 31355 */ // MIs[0] lhs
10758 /* 31355 */ // No operand predicates
10759 /* 31355 */ // MIs[0] rhs
10760 /* 31355 */ // No operand predicates
10761 /* 31355 */ // MIs[0] scale
10762 /* 31355 */ // No operand predicates
10763 /* 31355 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10764 /* 31359 */ // Combiner Rule #262: G_SMULFIX_commute_constant_to_rhs
10765 /* 31359 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMULFIX),
10766 /* 31362 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10767 /* 31364 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10768 /* 31366 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10769 /* 31368 */ GIR_RootToRootCopy, /*OpIdx*/3, // scale
10770 /* 31370 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10771 /* 31373 */ GIR_EraseRootFromParent_Done,
10772 /* 31374 */ // Label 464: @31374
10773 /* 31374 */ GIM_Reject,
10774 /* 31375 */ // Label 62: @31375
10775 /* 31375 */ GIM_Try, /*On fail goto*//*Label 465*/ GIMT_Encode4(31402), // Rule ID 395 //
10776 /* 31380 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule263Enabled),
10777 /* 31383 */ // MIs[0] dst
10778 /* 31383 */ // No operand predicates
10779 /* 31383 */ // MIs[0] lhs
10780 /* 31383 */ // No operand predicates
10781 /* 31383 */ // MIs[0] rhs
10782 /* 31383 */ // No operand predicates
10783 /* 31383 */ // MIs[0] scale
10784 /* 31383 */ // No operand predicates
10785 /* 31383 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10786 /* 31387 */ // Combiner Rule #263: G_UMULFIX_commute_constant_to_rhs
10787 /* 31387 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMULFIX),
10788 /* 31390 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10789 /* 31392 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10790 /* 31394 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10791 /* 31396 */ GIR_RootToRootCopy, /*OpIdx*/3, // scale
10792 /* 31398 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10793 /* 31401 */ GIR_EraseRootFromParent_Done,
10794 /* 31402 */ // Label 465: @31402
10795 /* 31402 */ GIM_Reject,
10796 /* 31403 */ // Label 63: @31403
10797 /* 31403 */ GIM_Try, /*On fail goto*//*Label 466*/ GIMT_Encode4(31430), // Rule ID 396 //
10798 /* 31408 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule264Enabled),
10799 /* 31411 */ // MIs[0] dst
10800 /* 31411 */ // No operand predicates
10801 /* 31411 */ // MIs[0] lhs
10802 /* 31411 */ // No operand predicates
10803 /* 31411 */ // MIs[0] rhs
10804 /* 31411 */ // No operand predicates
10805 /* 31411 */ // MIs[0] scale
10806 /* 31411 */ // No operand predicates
10807 /* 31411 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10808 /* 31415 */ // Combiner Rule #264: G_SMULFIXSAT_commute_constant_to_rhs
10809 /* 31415 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMULFIXSAT),
10810 /* 31418 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10811 /* 31420 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10812 /* 31422 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10813 /* 31424 */ GIR_RootToRootCopy, /*OpIdx*/3, // scale
10814 /* 31426 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10815 /* 31429 */ GIR_EraseRootFromParent_Done,
10816 /* 31430 */ // Label 466: @31430
10817 /* 31430 */ GIM_Reject,
10818 /* 31431 */ // Label 64: @31431
10819 /* 31431 */ GIM_Try, /*On fail goto*//*Label 467*/ GIMT_Encode4(31458), // Rule ID 397 //
10820 /* 31436 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule265Enabled),
10821 /* 31439 */ // MIs[0] dst
10822 /* 31439 */ // No operand predicates
10823 /* 31439 */ // MIs[0] lhs
10824 /* 31439 */ // No operand predicates
10825 /* 31439 */ // MIs[0] rhs
10826 /* 31439 */ // No operand predicates
10827 /* 31439 */ // MIs[0] scale
10828 /* 31439 */ // No operand predicates
10829 /* 31439 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10830 /* 31443 */ // Combiner Rule #265: G_UMULFIXSAT_commute_constant_to_rhs
10831 /* 31443 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMULFIXSAT),
10832 /* 31446 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10833 /* 31448 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10834 /* 31450 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10835 /* 31452 */ GIR_RootToRootCopy, /*OpIdx*/3, // scale
10836 /* 31454 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10837 /* 31457 */ GIR_EraseRootFromParent_Done,
10838 /* 31458 */ // Label 467: @31458
10839 /* 31458 */ GIM_Reject,
10840 /* 31459 */ // Label 65: @31459
10841 /* 31459 */ GIM_Try, /*On fail goto*//*Label 468*/ GIMT_Encode4(31496), // Rule ID 326 //
10842 /* 31464 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule218Enabled),
10843 /* 31467 */ // MIs[0] dst
10844 /* 31467 */ // No operand predicates
10845 /* 31467 */ // MIs[0] negy
10846 /* 31467 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10847 /* 31471 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
10848 /* 31475 */ // MIs[1] y
10849 /* 31475 */ // No operand predicates
10850 /* 31475 */ // MIs[0] x
10851 /* 31475 */ // No operand predicates
10852 /* 31475 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner41),
10853 /* 31479 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10854 /* 31481 */ // Combiner Rule #218: redundant_neg_operands_fadd_lhs
10855 /* 31481 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FSUB),
10856 /* 31484 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10857 /* 31486 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10858 /* 31488 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // y
10859 /* 31492 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10860 /* 31495 */ GIR_EraseRootFromParent_Done,
10861 /* 31496 */ // Label 468: @31496
10862 /* 31496 */ GIM_Try, /*On fail goto*//*Label 469*/ GIMT_Encode4(31533), // Rule ID 325 //
10863 /* 31501 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
10864 /* 31504 */ // MIs[0] dst
10865 /* 31504 */ // No operand predicates
10866 /* 31504 */ // MIs[0] x
10867 /* 31504 */ // No operand predicates
10868 /* 31504 */ // MIs[0] negy
10869 /* 31504 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
10870 /* 31508 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
10871 /* 31512 */ // MIs[1] y
10872 /* 31512 */ // No operand predicates
10873 /* 31512 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner41),
10874 /* 31516 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10875 /* 31518 */ // Combiner Rule #217: redundant_neg_operands_fadd_rhs
10876 /* 31518 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FSUB),
10877 /* 31521 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10878 /* 31523 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
10879 /* 31525 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // y
10880 /* 31529 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10881 /* 31532 */ GIR_EraseRootFromParent_Done,
10882 /* 31533 */ // Label 469: @31533
10883 /* 31533 */ GIM_Try, /*On fail goto*//*Label 470*/ GIMT_Encode4(31556), // Rule ID 158 //
10884 /* 31538 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
10885 /* 31541 */ // MIs[0] dst
10886 /* 31541 */ // No operand predicates
10887 /* 31541 */ // MIs[0] x
10888 /* 31541 */ // No operand predicates
10889 /* 31541 */ // MIs[0] y
10890 /* 31541 */ // No operand predicates
10891 /* 31541 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner19),
10892 /* 31545 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10893 /* 31550 */ // Combiner Rule #113: right_identity_neg_zero_fp
10894 /* 31550 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10895 /* 31555 */ GIR_EraseRootFromParent_Done,
10896 /* 31556 */ // Label 470: @31556
10897 /* 31556 */ GIM_Try, /*On fail goto*//*Label 471*/ GIMT_Encode4(31581), // Rule ID 402 //
10898 /* 31561 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule270Enabled),
10899 /* 31564 */ // MIs[0] dst
10900 /* 31564 */ // No operand predicates
10901 /* 31564 */ // MIs[0] lhs
10902 /* 31564 */ // No operand predicates
10903 /* 31564 */ // MIs[0] rhs
10904 /* 31564 */ // No operand predicates
10905 /* 31564 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
10906 /* 31568 */ // Combiner Rule #270: G_FADD_commute_fp_constant_to_rhs
10907 /* 31568 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FADD),
10908 /* 31571 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10909 /* 31573 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10910 /* 31575 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10911 /* 31577 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10912 /* 31580 */ GIR_EraseRootFromParent_Done,
10913 /* 31581 */ // Label 471: @31581
10914 /* 31581 */ GIM_Try, /*On fail goto*//*Label 472*/ GIMT_Encode4(31610), // Rule ID 159 //
10915 /* 31586 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
10916 /* 31589 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmNsz),
10917 /* 31595 */ // MIs[0] dst
10918 /* 31595 */ // No operand predicates
10919 /* 31595 */ // MIs[0] x
10920 /* 31595 */ // No operand predicates
10921 /* 31595 */ // MIs[0] y
10922 /* 31595 */ // No operand predicates
10923 /* 31595 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner20),
10924 /* 31599 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10925 /* 31604 */ // Combiner Rule #114: right_identity_neg_zero_fp_nsz
10926 /* 31604 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10927 /* 31609 */ GIR_EraseRootFromParent_Done,
10928 /* 31610 */ // Label 472: @31610
10929 /* 31610 */ GIM_Try, /*On fail goto*//*Label 473*/ GIMT_Encode4(31621), // Rule ID 298 //
10930 /* 31615 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
10931 /* 31618 */ // MIs[0] d
10932 /* 31618 */ // No operand predicates
10933 /* 31618 */ // MIs[0] mi.src0
10934 /* 31618 */ // No operand predicates
10935 /* 31618 */ // MIs[0] mi.src1
10936 /* 31618 */ // No operand predicates
10937 /* 31618 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[0]]
10938 /* 31618 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
10939 /* 31621 */ // Label 473: @31621
10940 /* 31621 */ GIM_Try, /*On fail goto*//*Label 474*/ GIMT_Encode4(31632), // Rule ID 333 //
10941 /* 31626 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule225Enabled),
10942 /* 31629 */ // MIs[0] dst
10943 /* 31629 */ // No operand predicates
10944 /* 31629 */ // MIs[0] src1
10945 /* 31629 */ // No operand predicates
10946 /* 31629 */ // MIs[0] src2
10947 /* 31629 */ // No operand predicates
10948 /* 31629 */ // Combiner Rule #225: combine_fadd_fmul_to_fmad_or_fma
10949 /* 31629 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
10950 /* 31632 */ // Label 474: @31632
10951 /* 31632 */ GIM_Try, /*On fail goto*//*Label 475*/ GIMT_Encode4(31643), // Rule ID 334 //
10952 /* 31637 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule226Enabled),
10953 /* 31640 */ // MIs[0] dst
10954 /* 31640 */ // No operand predicates
10955 /* 31640 */ // MIs[0] src1
10956 /* 31640 */ // No operand predicates
10957 /* 31640 */ // MIs[0] src2
10958 /* 31640 */ // No operand predicates
10959 /* 31640 */ // Combiner Rule #226: combine_fadd_fpext_fmul_to_fmad_or_fma
10960 /* 31640 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
10961 /* 31643 */ // Label 475: @31643
10962 /* 31643 */ GIM_Try, /*On fail goto*//*Label 476*/ GIMT_Encode4(31654), // Rule ID 335 //
10963 /* 31648 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
10964 /* 31651 */ // MIs[0] dst
10965 /* 31651 */ // No operand predicates
10966 /* 31651 */ // MIs[0] src1
10967 /* 31651 */ // No operand predicates
10968 /* 31651 */ // MIs[0] src2
10969 /* 31651 */ // No operand predicates
10970 /* 31651 */ // Combiner Rule #227: combine_fadd_fma_fmul_to_fmad_or_fma
10971 /* 31651 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
10972 /* 31654 */ // Label 476: @31654
10973 /* 31654 */ GIM_Try, /*On fail goto*//*Label 477*/ GIMT_Encode4(31665), // Rule ID 336 //
10974 /* 31659 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
10975 /* 31662 */ // MIs[0] dst
10976 /* 31662 */ // No operand predicates
10977 /* 31662 */ // MIs[0] src1
10978 /* 31662 */ // No operand predicates
10979 /* 31662 */ // MIs[0] src2
10980 /* 31662 */ // No operand predicates
10981 /* 31662 */ // Combiner Rule #228: combine_fadd_fpext_fma_fmul_to_fmad_or_fma
10982 /* 31662 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner89),
10983 /* 31665 */ // Label 477: @31665
10984 /* 31665 */ GIM_Try, /*On fail goto*//*Label 478*/ GIMT_Encode4(31676), // Rule ID 359 //
10985 /* 31670 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
10986 /* 31673 */ // MIs[0] root
10987 /* 31673 */ // No operand predicates
10988 /* 31673 */ // MIs[0] mi.x
10989 /* 31673 */ // No operand predicates
10990 /* 31673 */ // MIs[0] mi.y
10991 /* 31673 */ // No operand predicates
10992 /* 31673 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[5]]
10993 /* 31673 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
10994 /* 31676 */ // Label 478: @31676
10995 /* 31676 */ GIM_Reject,
10996 /* 31677 */ // Label 66: @31677
10997 /* 31677 */ GIM_Try, /*On fail goto*//*Label 479*/ GIMT_Encode4(31718), // Rule ID 380 //
10998 /* 31682 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule248Enabled),
10999 /* 31685 */ // MIs[0] dst
11000 /* 31685 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
11001 /* 31689 */ // MIs[0] lhs
11002 /* 31689 */ // No operand predicates
11003 /* 31689 */ // MIs[0] rhs
11004 /* 31689 */ // No operand predicates
11005 /* 31689 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner47),
11006 /* 31693 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
11007 /* 31696 */ // Combiner Rule #248: fsub_to_fneg
11008 /* 31696 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FCANONICALIZE),
11009 /* 31699 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
11010 /* 31704 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11011 /* 31706 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
11012 /* 31710 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
11013 /* 31714 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
11014 /* 31717 */ GIR_EraseRootFromParent_Done,
11015 /* 31718 */ // Label 479: @31718
11016 /* 31718 */ GIM_Try, /*On fail goto*//*Label 480*/ GIMT_Encode4(31755), // Rule ID 327 //
11017 /* 31723 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule219Enabled),
11018 /* 31726 */ // MIs[0] dst
11019 /* 31726 */ // No operand predicates
11020 /* 31726 */ // MIs[0] x
11021 /* 31726 */ // No operand predicates
11022 /* 31726 */ // MIs[0] negy
11023 /* 31726 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
11024 /* 31730 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
11025 /* 31734 */ // MIs[1] y
11026 /* 31734 */ // No operand predicates
11027 /* 31734 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner42),
11028 /* 31738 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11029 /* 31740 */ // Combiner Rule #219: redundant_neg_operands_fsub
11030 /* 31740 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FADD),
11031 /* 31743 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11032 /* 31745 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
11033 /* 31747 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // y
11034 /* 31751 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11035 /* 31754 */ GIR_EraseRootFromParent_Done,
11036 /* 31755 */ // Label 480: @31755
11037 /* 31755 */ GIM_Try, /*On fail goto*//*Label 481*/ GIMT_Encode4(31766), // Rule ID 299 //
11038 /* 31760 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11039 /* 31763 */ // MIs[0] d
11040 /* 31763 */ // No operand predicates
11041 /* 31763 */ // MIs[0] mi.src0
11042 /* 31763 */ // No operand predicates
11043 /* 31763 */ // MIs[0] mi.src1
11044 /* 31763 */ // No operand predicates
11045 /* 31763 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[1]]
11046 /* 31763 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11047 /* 31766 */ // Label 481: @31766
11048 /* 31766 */ GIM_Try, /*On fail goto*//*Label 482*/ GIMT_Encode4(31777), // Rule ID 337 //
11049 /* 31771 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule229Enabled),
11050 /* 31774 */ // MIs[0] dst
11051 /* 31774 */ // No operand predicates
11052 /* 31774 */ // MIs[0] src1
11053 /* 31774 */ // No operand predicates
11054 /* 31774 */ // MIs[0] src2
11055 /* 31774 */ // No operand predicates
11056 /* 31774 */ // Combiner Rule #229: combine_fsub_fmul_to_fmad_or_fma
11057 /* 31774 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner90),
11058 /* 31777 */ // Label 482: @31777
11059 /* 31777 */ GIM_Try, /*On fail goto*//*Label 483*/ GIMT_Encode4(31788), // Rule ID 338 //
11060 /* 31782 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule230Enabled),
11061 /* 31785 */ // MIs[0] dst
11062 /* 31785 */ // No operand predicates
11063 /* 31785 */ // MIs[0] src1
11064 /* 31785 */ // No operand predicates
11065 /* 31785 */ // MIs[0] src2
11066 /* 31785 */ // No operand predicates
11067 /* 31785 */ // Combiner Rule #230: combine_fsub_fneg_fmul_to_fmad_or_fma
11068 /* 31785 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
11069 /* 31788 */ // Label 483: @31788
11070 /* 31788 */ GIM_Try, /*On fail goto*//*Label 484*/ GIMT_Encode4(31799), // Rule ID 339 //
11071 /* 31793 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule231Enabled),
11072 /* 31796 */ // MIs[0] dst
11073 /* 31796 */ // No operand predicates
11074 /* 31796 */ // MIs[0] src1
11075 /* 31796 */ // No operand predicates
11076 /* 31796 */ // MIs[0] src2
11077 /* 31796 */ // No operand predicates
11078 /* 31796 */ // Combiner Rule #231: combine_fsub_fpext_fmul_to_fmad_or_fma
11079 /* 31796 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
11080 /* 31799 */ // Label 484: @31799
11081 /* 31799 */ GIM_Try, /*On fail goto*//*Label 485*/ GIMT_Encode4(31810), // Rule ID 340 //
11082 /* 31804 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule232Enabled),
11083 /* 31807 */ // MIs[0] dst
11084 /* 31807 */ // No operand predicates
11085 /* 31807 */ // MIs[0] src1
11086 /* 31807 */ // No operand predicates
11087 /* 31807 */ // MIs[0] src2
11088 /* 31807 */ // No operand predicates
11089 /* 31807 */ // Combiner Rule #232: combine_fsub_fpext_fneg_fmul_to_fmad_or_fma
11090 /* 31807 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
11091 /* 31810 */ // Label 485: @31810
11092 /* 31810 */ GIM_Try, /*On fail goto*//*Label 486*/ GIMT_Encode4(31821), // Rule ID 360 //
11093 /* 31815 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11094 /* 31818 */ // MIs[0] root
11095 /* 31818 */ // No operand predicates
11096 /* 31818 */ // MIs[0] mi.x
11097 /* 31818 */ // No operand predicates
11098 /* 31818 */ // MIs[0] mi.y
11099 /* 31818 */ // No operand predicates
11100 /* 31818 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[6]]
11101 /* 31818 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11102 /* 31821 */ // Label 486: @31821
11103 /* 31821 */ GIM_Reject,
11104 /* 31822 */ // Label 67: @31822
11105 /* 31822 */ GIM_Try, /*On fail goto*//*Label 487*/ GIMT_Encode4(31865), // Rule ID 328 //
11106 /* 31827 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
11107 /* 31830 */ // MIs[0] dst
11108 /* 31830 */ // No operand predicates
11109 /* 31830 */ // MIs[0] nx
11110 /* 31830 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11111 /* 31834 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
11112 /* 31838 */ // MIs[1] x
11113 /* 31838 */ // No operand predicates
11114 /* 31838 */ // MIs[0] ny
11115 /* 31838 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
11116 /* 31842 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
11117 /* 31846 */ // MIs[2] y
11118 /* 31846 */ // No operand predicates
11119 /* 31846 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
11120 /* 31848 */ // Combiner Rule #220: G_FMUL_fneg_fneg
11121 /* 31848 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMUL),
11122 /* 31851 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11123 /* 31853 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
11124 /* 31857 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
11125 /* 31861 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11126 /* 31864 */ GIR_EraseRootFromParent_Done,
11127 /* 31865 */ // Label 487: @31865
11128 /* 31865 */ GIM_Try, /*On fail goto*//*Label 488*/ GIMT_Encode4(31886), // Rule ID 472 //
11129 /* 31870 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule334Enabled),
11130 /* 31873 */ // MIs[0] dst
11131 /* 31873 */ // No operand predicates
11132 /* 31873 */ // MIs[0] x
11133 /* 31873 */ // No operand predicates
11134 /* 31873 */ // MIs[0] select
11135 /* 31873 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
11136 /* 31877 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
11137 /* 31881 */ // MIs[1] y
11138 /* 31881 */ // No operand predicates
11139 /* 31881 */ // MIs[1] A
11140 /* 31881 */ // No operand predicates
11141 /* 31881 */ // MIs[1] B
11142 /* 31881 */ // No operand predicates
11143 /* 31881 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11144 /* 31883 */ // Combiner Rule #334: combine_fmul_with_select_to_fldexp
11145 /* 31883 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
11146 /* 31886 */ // Label 488: @31886
11147 /* 31886 */ GIM_Try, /*On fail goto*//*Label 489*/ GIMT_Encode4(31909), // Rule ID 148 //
11148 /* 31891 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
11149 /* 31894 */ // MIs[0] dst
11150 /* 31894 */ // No operand predicates
11151 /* 31894 */ // MIs[0] x
11152 /* 31894 */ // No operand predicates
11153 /* 31894 */ // MIs[0] y
11154 /* 31894 */ // No operand predicates
11155 /* 31894 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner17),
11156 /* 31898 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11157 /* 31903 */ // Combiner Rule #104: right_identity_one_fp
11158 /* 31903 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11159 /* 31908 */ GIR_EraseRootFromParent_Done,
11160 /* 31909 */ // Label 489: @31909
11161 /* 31909 */ GIM_Try, /*On fail goto*//*Label 490*/ GIMT_Encode4(31929), // Rule ID 160 //
11162 /* 31914 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule115Enabled),
11163 /* 31917 */ // MIs[0] dst
11164 /* 31917 */ // No operand predicates
11165 /* 31917 */ // MIs[0] x
11166 /* 31917 */ // No operand predicates
11167 /* 31917 */ // MIs[0] y
11168 /* 31917 */ // No operand predicates
11169 /* 31917 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner21),
11170 /* 31921 */ // Combiner Rule #115: right_identity_neg_one_fp
11171 /* 31921 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
11172 /* 31924 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11173 /* 31926 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
11174 /* 31928 */ GIR_EraseRootFromParent_Done,
11175 /* 31929 */ // Label 490: @31929
11176 /* 31929 */ GIM_Try, /*On fail goto*//*Label 491*/ GIMT_Encode4(31954), // Rule ID 403 //
11177 /* 31934 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule271Enabled),
11178 /* 31937 */ // MIs[0] dst
11179 /* 31937 */ // No operand predicates
11180 /* 31937 */ // MIs[0] lhs
11181 /* 31937 */ // No operand predicates
11182 /* 31937 */ // MIs[0] rhs
11183 /* 31937 */ // No operand predicates
11184 /* 31937 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
11185 /* 31941 */ // Combiner Rule #271: G_FMUL_commute_fp_constant_to_rhs
11186 /* 31941 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMUL),
11187 /* 31944 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11188 /* 31946 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11189 /* 31948 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11190 /* 31950 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11191 /* 31953 */ GIR_EraseRootFromParent_Done,
11192 /* 31954 */ // Label 491: @31954
11193 /* 31954 */ GIM_Try, /*On fail goto*//*Label 492*/ GIMT_Encode4(31965), // Rule ID 300 //
11194 /* 31959 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11195 /* 31962 */ // MIs[0] d
11196 /* 31962 */ // No operand predicates
11197 /* 31962 */ // MIs[0] mi.src0
11198 /* 31962 */ // No operand predicates
11199 /* 31962 */ // MIs[0] mi.src1
11200 /* 31962 */ // No operand predicates
11201 /* 31962 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[2]]
11202 /* 31962 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11203 /* 31965 */ // Label 492: @31965
11204 /* 31965 */ GIM_Try, /*On fail goto*//*Label 493*/ GIMT_Encode4(31976), // Rule ID 358 //
11205 /* 31970 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11206 /* 31973 */ // MIs[0] root
11207 /* 31973 */ // No operand predicates
11208 /* 31973 */ // MIs[0] mi.x
11209 /* 31973 */ // No operand predicates
11210 /* 31973 */ // MIs[0] mi.y
11211 /* 31973 */ // No operand predicates
11212 /* 31973 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[4]]
11213 /* 31973 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11214 /* 31976 */ // Label 493: @31976
11215 /* 31976 */ GIM_Reject,
11216 /* 31977 */ // Label 68: @31977
11217 /* 31977 */ GIM_Try, /*On fail goto*//*Label 494*/ GIMT_Encode4(32022), // Rule ID 331 //
11218 /* 31982 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule223Enabled),
11219 /* 31985 */ // MIs[0] dst
11220 /* 31985 */ // No operand predicates
11221 /* 31985 */ // MIs[0] nx
11222 /* 31985 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11223 /* 31989 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
11224 /* 31993 */ // MIs[1] x
11225 /* 31993 */ // No operand predicates
11226 /* 31993 */ // MIs[0] ny
11227 /* 31993 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
11228 /* 31997 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
11229 /* 32001 */ // MIs[2] y
11230 /* 32001 */ // No operand predicates
11231 /* 32001 */ // MIs[0] z
11232 /* 32001 */ // No operand predicates
11233 /* 32001 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
11234 /* 32003 */ // Combiner Rule #223: G_FMA_fneg_fneg
11235 /* 32003 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMA),
11236 /* 32006 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11237 /* 32008 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
11238 /* 32012 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
11239 /* 32016 */ GIR_RootToRootCopy, /*OpIdx*/3, // z
11240 /* 32018 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11241 /* 32021 */ GIR_EraseRootFromParent_Done,
11242 /* 32022 */ // Label 494: @32022
11243 /* 32022 */ GIM_Try, /*On fail goto*//*Label 495*/ GIMT_Encode4(32033), // Rule ID 311 //
11244 /* 32027 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
11245 /* 32030 */ // MIs[0] dst
11246 /* 32030 */ // No operand predicates
11247 /* 32030 */ // MIs[0] d.src0
11248 /* 32030 */ // No operand predicates
11249 /* 32030 */ // MIs[0] d.src1
11250 /* 32030 */ // No operand predicates
11251 /* 32030 */ // MIs[0] d.src2
11252 /* 32030 */ // No operand predicates
11253 /* 32030 */ // Combiner Rule #212: constant_fold_fma @ [d[1]]
11254 /* 32030 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
11255 /* 32033 */ // Label 495: @32033
11256 /* 32033 */ GIM_Reject,
11257 /* 32034 */ // Label 69: @32034
11258 /* 32034 */ GIM_Try, /*On fail goto*//*Label 496*/ GIMT_Encode4(32079), // Rule ID 330 //
11259 /* 32039 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule222Enabled),
11260 /* 32042 */ // MIs[0] dst
11261 /* 32042 */ // No operand predicates
11262 /* 32042 */ // MIs[0] nx
11263 /* 32042 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11264 /* 32046 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
11265 /* 32050 */ // MIs[1] x
11266 /* 32050 */ // No operand predicates
11267 /* 32050 */ // MIs[0] ny
11268 /* 32050 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
11269 /* 32054 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
11270 /* 32058 */ // MIs[2] y
11271 /* 32058 */ // No operand predicates
11272 /* 32058 */ // MIs[0] z
11273 /* 32058 */ // No operand predicates
11274 /* 32058 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
11275 /* 32060 */ // Combiner Rule #222: G_FMAD_fneg_fneg
11276 /* 32060 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMAD),
11277 /* 32063 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11278 /* 32065 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
11279 /* 32069 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
11280 /* 32073 */ GIR_RootToRootCopy, /*OpIdx*/3, // z
11281 /* 32075 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11282 /* 32078 */ GIR_EraseRootFromParent_Done,
11283 /* 32079 */ // Label 496: @32079
11284 /* 32079 */ GIM_Try, /*On fail goto*//*Label 497*/ GIMT_Encode4(32090), // Rule ID 310 //
11285 /* 32084 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
11286 /* 32087 */ // MIs[0] dst
11287 /* 32087 */ // No operand predicates
11288 /* 32087 */ // MIs[0] d.src0
11289 /* 32087 */ // No operand predicates
11290 /* 32087 */ // MIs[0] d.src1
11291 /* 32087 */ // No operand predicates
11292 /* 32087 */ // MIs[0] d.src2
11293 /* 32087 */ // No operand predicates
11294 /* 32087 */ // Combiner Rule #212: constant_fold_fma @ [d[0]]
11295 /* 32087 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
11296 /* 32090 */ // Label 497: @32090
11297 /* 32090 */ GIM_Reject,
11298 /* 32091 */ // Label 70: @32091
11299 /* 32091 */ GIM_Try, /*On fail goto*//*Label 498*/ GIMT_Encode4(32130), // Rule ID 486 //
11300 /* 32096 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule344Enabled),
11301 /* 32099 */ GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_f16,
11302 /* 32102 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_f16,
11303 /* 32105 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmContract),
11304 /* 32111 */ // MIs[0] y
11305 /* 32111 */ // No operand predicates
11306 /* 32111 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
11307 /* 32115 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSQRT),
11308 /* 32119 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::FmContract),
11309 /* 32125 */ // MIs[1] x
11310 /* 32125 */ // No operand predicates
11311 /* 32125 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11312 /* 32127 */ // Combiner Rule #344: fdiv_by_sqrt_to_rsq_f16
11313 /* 32127 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner135),
11314 /* 32130 */ // Label 498: @32130
11315 /* 32130 */ GIM_Try, /*On fail goto*//*Label 499*/ GIMT_Encode4(32173), // Rule ID 329 //
11316 /* 32135 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
11317 /* 32138 */ // MIs[0] dst
11318 /* 32138 */ // No operand predicates
11319 /* 32138 */ // MIs[0] nx
11320 /* 32138 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11321 /* 32142 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
11322 /* 32146 */ // MIs[1] x
11323 /* 32146 */ // No operand predicates
11324 /* 32146 */ // MIs[0] ny
11325 /* 32146 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
11326 /* 32150 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
11327 /* 32154 */ // MIs[2] y
11328 /* 32154 */ // No operand predicates
11329 /* 32154 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
11330 /* 32156 */ // Combiner Rule #221: G_FDIV_fneg_fneg
11331 /* 32156 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FDIV),
11332 /* 32159 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11333 /* 32161 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
11334 /* 32165 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
11335 /* 32169 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11336 /* 32172 */ GIR_EraseRootFromParent_Done,
11337 /* 32173 */ // Label 499: @32173
11338 /* 32173 */ GIM_Try, /*On fail goto*//*Label 500*/ GIMT_Encode4(32184), // Rule ID 301 //
11339 /* 32178 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11340 /* 32181 */ // MIs[0] d
11341 /* 32181 */ // No operand predicates
11342 /* 32181 */ // MIs[0] mi.src0
11343 /* 32181 */ // No operand predicates
11344 /* 32181 */ // MIs[0] mi.src1
11345 /* 32181 */ // No operand predicates
11346 /* 32181 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[3]]
11347 /* 32181 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11348 /* 32184 */ // Label 500: @32184
11349 /* 32184 */ GIM_Try, /*On fail goto*//*Label 501*/ GIMT_Encode4(32195), // Rule ID 361 //
11350 /* 32189 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11351 /* 32192 */ // MIs[0] root
11352 /* 32192 */ // No operand predicates
11353 /* 32192 */ // MIs[0] mi.x
11354 /* 32192 */ // No operand predicates
11355 /* 32192 */ // MIs[0] mi.y
11356 /* 32192 */ // No operand predicates
11357 /* 32192 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[7]]
11358 /* 32192 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11359 /* 32195 */ // Label 501: @32195
11360 /* 32195 */ GIM_Try, /*On fail goto*//*Label 502*/ GIMT_Encode4(32206), // Rule ID 374 //
11361 /* 32200 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule242Enabled),
11362 /* 32203 */ // MIs[0] dst
11363 /* 32203 */ // No operand predicates
11364 /* 32203 */ // MIs[0] src1
11365 /* 32203 */ // No operand predicates
11366 /* 32203 */ // MIs[0] src2
11367 /* 32203 */ // No operand predicates
11368 /* 32203 */ // Combiner Rule #242: fdiv_repeated_divison
11369 /* 32203 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner100),
11370 /* 32206 */ // Label 502: @32206
11371 /* 32206 */ GIM_Reject,
11372 /* 32207 */ // Label 71: @32207
11373 /* 32207 */ GIM_Try, /*On fail goto*//*Label 503*/ GIMT_Encode4(32218), // Rule ID 302 //
11374 /* 32212 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11375 /* 32215 */ // MIs[0] d
11376 /* 32215 */ // No operand predicates
11377 /* 32215 */ // MIs[0] mi.src0
11378 /* 32215 */ // No operand predicates
11379 /* 32215 */ // MIs[0] mi.src1
11380 /* 32215 */ // No operand predicates
11381 /* 32215 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[4]]
11382 /* 32215 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11383 /* 32218 */ // Label 503: @32218
11384 /* 32218 */ GIM_Try, /*On fail goto*//*Label 504*/ GIMT_Encode4(32229), // Rule ID 362 //
11385 /* 32223 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11386 /* 32226 */ // MIs[0] root
11387 /* 32226 */ // No operand predicates
11388 /* 32226 */ // MIs[0] mi.x
11389 /* 32226 */ // No operand predicates
11390 /* 32226 */ // MIs[0] mi.y
11391 /* 32226 */ // No operand predicates
11392 /* 32226 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[8]]
11393 /* 32226 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11394 /* 32229 */ // Label 504: @32229
11395 /* 32229 */ GIM_Reject,
11396 /* 32230 */ // Label 72: @32230
11397 /* 32230 */ GIM_Try, /*On fail goto*//*Label 505*/ GIMT_Encode4(32251), // Rule ID 240 //
11398 /* 32235 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
11399 /* 32238 */ // MIs[0] dst
11400 /* 32238 */ // No operand predicates
11401 /* 32238 */ // MIs[0] float
11402 /* 32238 */ // No operand predicates
11403 /* 32238 */ // MIs[0] int
11404 /* 32238 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
11405 /* 32242 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
11406 /* 32246 */ // MIs[1] imm
11407 /* 32246 */ // No operand predicates
11408 /* 32246 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11409 /* 32248 */ // Combiner Rule #186: expand_const_fpowi
11410 /* 32248 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner67),
11411 /* 32251 */ // Label 505: @32251
11412 /* 32251 */ GIM_Reject,
11413 /* 32252 */ // Label 73: @32252
11414 /* 32252 */ GIM_Try, /*On fail goto*//*Label 506*/ GIMT_Encode4(32273), // Rule ID 210 //
11415 /* 32257 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
11416 /* 32260 */ // MIs[0] dst
11417 /* 32260 */ // No operand predicates
11418 /* 32260 */ // MIs[0] src0
11419 /* 32260 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11420 /* 32264 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11421 /* 32268 */ // MIs[1] cst
11422 /* 32268 */ // No operand predicates
11423 /* 32268 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11424 /* 32270 */ // Combiner Rule #160: constant_fold_flog2
11425 /* 32270 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
11426 /* 32273 */ // Label 506: @32273
11427 /* 32273 */ GIM_Reject,
11428 /* 32274 */ // Label 74: @32274
11429 /* 32274 */ GIM_Try, /*On fail goto*//*Label 507*/ GIMT_Encode4(32295), // Rule ID 207 //
11430 /* 32279 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
11431 /* 32282 */ // MIs[0] dst
11432 /* 32282 */ // No operand predicates
11433 /* 32282 */ // MIs[0] src0
11434 /* 32282 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11435 /* 32286 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11436 /* 32290 */ // MIs[1] cst
11437 /* 32290 */ // No operand predicates
11438 /* 32290 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11439 /* 32292 */ // Combiner Rule #157: constant_fold_fneg
11440 /* 32292 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
11441 /* 32295 */ // Label 507: @32295
11442 /* 32295 */ GIM_Try, /*On fail goto*//*Label 508*/ GIMT_Encode4(32324), // Rule ID 146 //
11443 /* 32300 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
11444 /* 32303 */ // MIs[0] dst
11445 /* 32303 */ // No operand predicates
11446 /* 32303 */ // MIs[0] t
11447 /* 32303 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11448 /* 32307 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
11449 /* 32311 */ // MIs[1] src
11450 /* 32311 */ // No operand predicates
11451 /* 32311 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
11452 /* 32316 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11453 /* 32318 */ // Combiner Rule #102: fneg_fneg_fold
11454 /* 32318 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
11455 /* 32323 */ GIR_EraseRootFromParent_Done,
11456 /* 32324 */ // Label 508: @32324
11457 /* 32324 */ GIM_Try, /*On fail goto*//*Label 509*/ GIMT_Encode4(32335), // Rule ID 480 //
11458 /* 32329 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule338Enabled),
11459 /* 32332 */ // MIs[0] dst
11460 /* 32332 */ // No operand predicates
11461 /* 32332 */ // MIs[0] src
11462 /* 32332 */ // No operand predicates
11463 /* 32332 */ // Combiner Rule #338: foldable_fneg
11464 /* 32332 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
11465 /* 32335 */ // Label 509: @32335
11466 /* 32335 */ GIM_Reject,
11467 /* 32336 */ // Label 75: @32336
11468 /* 32336 */ GIM_Try, /*On fail goto*//*Label 510*/ GIMT_Encode4(32357), // Rule ID 212 //
11469 /* 32341 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
11470 /* 32344 */ // MIs[0] dst
11471 /* 32344 */ // No operand predicates
11472 /* 32344 */ // MIs[0] src0
11473 /* 32344 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11474 /* 32348 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11475 /* 32352 */ // MIs[1] cst
11476 /* 32352 */ // No operand predicates
11477 /* 32352 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11478 /* 32354 */ // Combiner Rule #162: constant_fold_fpext
11479 /* 32354 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
11480 /* 32357 */ // Label 510: @32357
11481 /* 32357 */ GIM_Reject,
11482 /* 32358 */ // Label 76: @32358
11483 /* 32358 */ GIM_Try_CheckFeatures, /*On fail goto*//*Label 511*/ GIMT_Encode4(32381), GIMT_Encode2(GIFBS_Has16BitInsts_NotHasMed3_16), // Rule ID 471 //
11484 /* 32365 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule333Enabled),
11485 /* 32368 */ // MIs[0] fptrunc_dst
11486 /* 32368 */ // No operand predicates
11487 /* 32368 */ // MIs[0] fmed3_dst
11488 /* 32368 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11489 /* 32372 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(AMDGPU::G_AMDGPU_FMED3),
11490 /* 32376 */ // MIs[1] src0
11491 /* 32376 */ // No operand predicates
11492 /* 32376 */ // MIs[1] src1
11493 /* 32376 */ // No operand predicates
11494 /* 32376 */ // MIs[1] src2
11495 /* 32376 */ // No operand predicates
11496 /* 32376 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11497 /* 32378 */ // Combiner Rule #333: expand_promoted_fmed3
11498 /* 32378 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
11499 /* 32381 */ // Label 511: @32381
11500 /* 32381 */ GIM_Try, /*On fail goto*//*Label 512*/ GIMT_Encode4(32402), // Rule ID 211 //
11501 /* 32386 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
11502 /* 32389 */ // MIs[0] dst
11503 /* 32389 */ // No operand predicates
11504 /* 32389 */ // MIs[0] src0
11505 /* 32389 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11506 /* 32393 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11507 /* 32397 */ // MIs[1] cst
11508 /* 32397 */ // No operand predicates
11509 /* 32397 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11510 /* 32399 */ // Combiner Rule #161: constant_fold_fptrunc
11511 /* 32399 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
11512 /* 32402 */ // Label 512: @32402
11513 /* 32402 */ GIM_Try, /*On fail goto*//*Label 513*/ GIMT_Encode4(32435), // Rule ID 157 //
11514 /* 32407 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
11515 /* 32410 */ // MIs[0] dst
11516 /* 32410 */ // No operand predicates
11517 /* 32410 */ // MIs[0] src1
11518 /* 32410 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11519 /* 32414 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
11520 /* 32418 */ // MIs[1] src0
11521 /* 32418 */ // No operand predicates
11522 /* 32418 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
11523 /* 32422 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
11524 /* 32427 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11525 /* 32429 */ // Combiner Rule #112: fptrunc_fpext_fold
11526 /* 32429 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
11527 /* 32434 */ GIR_EraseRootFromParent_Done,
11528 /* 32435 */ // Label 513: @32435
11529 /* 32435 */ GIM_Reject,
11530 /* 32436 */ // Label 77: @32436
11531 /* 32436 */ GIM_Try, /*On fail goto*//*Label 514*/ GIMT_Encode4(32460), // Rule ID 102 //
11532 /* 32441 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
11533 /* 32444 */ // MIs[0] dst
11534 /* 32444 */ // No operand predicates
11535 /* 32444 */ // MIs[0] __unary_undef_to_undef_match_0.x
11536 /* 32444 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11537 /* 32448 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11538 /* 32452 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11539 /* 32454 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[5]]
11540 /* 32454 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11541 /* 32457 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11542 /* 32459 */ GIR_EraseRootFromParent_Done,
11543 /* 32460 */ // Label 514: @32460
11544 /* 32460 */ GIM_Reject,
11545 /* 32461 */ // Label 78: @32461
11546 /* 32461 */ GIM_Try, /*On fail goto*//*Label 515*/ GIMT_Encode4(32485), // Rule ID 103 //
11547 /* 32466 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
11548 /* 32469 */ // MIs[0] dst
11549 /* 32469 */ // No operand predicates
11550 /* 32469 */ // MIs[0] __unary_undef_to_undef_match_0.x
11551 /* 32469 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11552 /* 32473 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11553 /* 32477 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11554 /* 32479 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[6]]
11555 /* 32479 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11556 /* 32482 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11557 /* 32484 */ GIR_EraseRootFromParent_Done,
11558 /* 32485 */ // Label 515: @32485
11559 /* 32485 */ GIM_Reject,
11560 /* 32486 */ // Label 79: @32486
11561 /* 32486 */ GIM_Try, /*On fail goto*//*Label 516*/ GIMT_Encode4(32507), // Rule ID 83 //
11562 /* 32491 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
11563 /* 32494 */ // MIs[0] dst
11564 /* 32494 */ // No operand predicates
11565 /* 32494 */ // MIs[0] __undef_to_fp_zero_match_0.x
11566 /* 32494 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11567 /* 32498 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11568 /* 32502 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11569 /* 32504 */ // Combiner Rule #76: undef_to_fp_zero @ [__undef_to_fp_zero_match_0[1]]
11570 /* 32504 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
11571 /* 32507 */ // Label 516: @32507
11572 /* 32507 */ GIM_Try, /*On fail goto*//*Label 517*/ GIMT_Encode4(32522), // Rule ID 220 //
11573 /* 32512 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
11574 /* 32515 */ // MIs[0] dst
11575 /* 32515 */ // No operand predicates
11576 /* 32515 */ // MIs[0] Operand 1
11577 /* 32515 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
11578 /* 32519 */ // Combiner Rule #170: itof_const_zero_fold_si
11579 /* 32519 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
11580 /* 32522 */ // Label 517: @32522
11581 /* 32522 */ GIM_Try, /*On fail goto*//*Label 518*/ GIMT_Encode4(32533), // Rule ID 474 //
11582 /* 32527 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule335Enabled),
11583 /* 32530 */ // MIs[0] dst
11584 /* 32530 */ // No operand predicates
11585 /* 32530 */ // MIs[0] itofp.src
11586 /* 32530 */ // No operand predicates
11587 /* 32530 */ // Combiner Rule #335: uchar_to_float @ [itofp[1]]
11588 /* 32530 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
11589 /* 32533 */ // Label 518: @32533
11590 /* 32533 */ GIM_Reject,
11591 /* 32534 */ // Label 80: @32534
11592 /* 32534 */ GIM_Try, /*On fail goto*//*Label 519*/ GIMT_Encode4(32555), // Rule ID 82 //
11593 /* 32539 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
11594 /* 32542 */ // MIs[0] dst
11595 /* 32542 */ // No operand predicates
11596 /* 32542 */ // MIs[0] __undef_to_fp_zero_match_0.x
11597 /* 32542 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11598 /* 32546 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11599 /* 32550 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11600 /* 32552 */ // Combiner Rule #76: undef_to_fp_zero @ [__undef_to_fp_zero_match_0[0]]
11601 /* 32552 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
11602 /* 32555 */ // Label 519: @32555
11603 /* 32555 */ GIM_Try, /*On fail goto*//*Label 520*/ GIMT_Encode4(32570), // Rule ID 221 //
11604 /* 32560 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
11605 /* 32563 */ // MIs[0] dst
11606 /* 32563 */ // No operand predicates
11607 /* 32563 */ // MIs[0] Operand 1
11608 /* 32563 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
11609 /* 32567 */ // Combiner Rule #171: itof_const_zero_fold_ui
11610 /* 32567 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
11611 /* 32570 */ // Label 520: @32570
11612 /* 32570 */ GIM_Try, /*On fail goto*//*Label 521*/ GIMT_Encode4(32581), // Rule ID 473 //
11613 /* 32575 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule335Enabled),
11614 /* 32578 */ // MIs[0] dst
11615 /* 32578 */ // No operand predicates
11616 /* 32578 */ // MIs[0] itofp.src
11617 /* 32578 */ // No operand predicates
11618 /* 32578 */ // Combiner Rule #335: uchar_to_float @ [itofp[0]]
11619 /* 32578 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
11620 /* 32581 */ // Label 521: @32581
11621 /* 32581 */ GIM_Reject,
11622 /* 32582 */ // Label 81: @32582
11623 /* 32582 */ GIM_Try, /*On fail goto*//*Label 522*/ GIMT_Encode4(32611), // Rule ID 26 //
11624 /* 32587 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
11625 /* 32590 */ // MIs[0] dst
11626 /* 32590 */ // No operand predicates
11627 /* 32590 */ // MIs[0] src
11628 /* 32590 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11629 /* 32594 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
11630 /* 32598 */ // MIs[1] __idempotent_prop_match_0.x
11631 /* 32598 */ // No operand predicates
11632 /* 32598 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11633 /* 32603 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11634 /* 32605 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[1]]
11635 /* 32605 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11636 /* 32610 */ GIR_EraseRootFromParent_Done,
11637 /* 32611 */ // Label 522: @32611
11638 /* 32611 */ GIM_Try, /*On fail goto*//*Label 523*/ GIMT_Encode4(32632), // Rule ID 208 //
11639 /* 32616 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
11640 /* 32619 */ // MIs[0] dst
11641 /* 32619 */ // No operand predicates
11642 /* 32619 */ // MIs[0] src0
11643 /* 32619 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11644 /* 32623 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11645 /* 32627 */ // MIs[1] cst
11646 /* 32627 */ // No operand predicates
11647 /* 32627 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11648 /* 32629 */ // Combiner Rule #158: constant_fold_fabs
11649 /* 32629 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
11650 /* 32632 */ // Label 523: @32632
11651 /* 32632 */ GIM_Try, /*On fail goto*//*Label 524*/ GIMT_Encode4(32660), // Rule ID 323 //
11652 /* 32637 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
11653 /* 32640 */ // MIs[0] dst
11654 /* 32640 */ // No operand predicates
11655 /* 32640 */ // MIs[0] tmp
11656 /* 32640 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11657 /* 32644 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
11658 /* 32648 */ // MIs[1] x
11659 /* 32648 */ // No operand predicates
11660 /* 32648 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11661 /* 32650 */ // Combiner Rule #215: fabs_fneg_fold
11662 /* 32650 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FABS),
11663 /* 32653 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11664 /* 32655 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
11665 /* 32659 */ GIR_EraseRootFromParent_Done,
11666 /* 32660 */ // Label 524: @32660
11667 /* 32660 */ GIM_Try, /*On fail goto*//*Label 525*/ GIMT_Encode4(32681), // Rule ID 481 //
11668 /* 32665 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule339Enabled),
11669 /* 32668 */ // MIs[0] dst
11670 /* 32668 */ // No operand predicates
11671 /* 32668 */ // MIs[0] round
11672 /* 32668 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11673 /* 32672 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPTRUNC),
11674 /* 32676 */ // MIs[1] src
11675 /* 32676 */ // No operand predicates
11676 /* 32676 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11677 /* 32678 */ // Combiner Rule #339: fold_fabs_fptrunc
11678 /* 32678 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner134),
11679 /* 32681 */ // Label 525: @32681
11680 /* 32681 */ GIM_Reject,
11681 /* 32682 */ // Label 82: @32682
11682 /* 32682 */ GIM_Try, /*On fail goto*//*Label 526*/ GIMT_Encode4(32693), // Rule ID 303 //
11683 /* 32687 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11684 /* 32690 */ // MIs[0] d
11685 /* 32690 */ // No operand predicates
11686 /* 32690 */ // MIs[0] mi.src0
11687 /* 32690 */ // No operand predicates
11688 /* 32690 */ // MIs[0] mi.src1
11689 /* 32690 */ // No operand predicates
11690 /* 32690 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[5]]
11691 /* 32690 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11692 /* 32693 */ // Label 526: @32693
11693 /* 32693 */ GIM_Reject,
11694 /* 32694 */ // Label 83: @32694
11695 /* 32694 */ GIM_Try, /*On fail goto*//*Label 527*/ GIMT_Encode4(32723), // Rule ID 27 //
11696 /* 32699 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
11697 /* 32702 */ // MIs[0] dst
11698 /* 32702 */ // No operand predicates
11699 /* 32702 */ // MIs[0] src
11700 /* 32702 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11701 /* 32706 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCANONICALIZE),
11702 /* 32710 */ // MIs[1] __idempotent_prop_match_0.x
11703 /* 32710 */ // No operand predicates
11704 /* 32710 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11705 /* 32715 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11706 /* 32717 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[2]]
11707 /* 32717 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11708 /* 32722 */ GIR_EraseRootFromParent_Done,
11709 /* 32723 */ // Label 527: @32723
11710 /* 32723 */ GIM_Try, /*On fail goto*//*Label 528*/ GIMT_Encode4(32746), // Rule ID 479 //
11711 /* 32728 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule337Enabled),
11712 /* 32731 */ // MIs[0] dst
11713 /* 32731 */ // No operand predicates
11714 /* 32731 */ // MIs[0] src
11715 /* 32731 */ // No operand predicates
11716 /* 32731 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner64),
11717 /* 32735 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11718 /* 32740 */ // Combiner Rule #337: remove_fcanonicalize
11719 /* 32740 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11720 /* 32745 */ GIR_EraseRootFromParent_Done,
11721 /* 32746 */ // Label 528: @32746
11722 /* 32746 */ GIM_Reject,
11723 /* 32747 */ // Label 84: @32747
11724 /* 32747 */ GIM_Try, /*On fail goto*//*Label 529*/ GIMT_Encode4(32770), // Rule ID 232 //
11725 /* 32752 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
11726 /* 32755 */ // MIs[0] dst
11727 /* 32755 */ // No operand predicates
11728 /* 32755 */ // MIs[0] lhs
11729 /* 32755 */ // No operand predicates
11730 /* 32755 */ // MIs[0] rhs
11731 /* 32755 */ // No operand predicates
11732 /* 32755 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner32),
11733 /* 32759 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11734 /* 32764 */ // Combiner Rule #182: minmax_nan_num_lhs @ [__minmax_nan_num_lhs_match_0[0]]
11735 /* 32764 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11736 /* 32769 */ GIR_EraseRootFromParent_Done,
11737 /* 32770 */ // Label 529: @32770
11738 /* 32770 */ GIM_Try, /*On fail goto*//*Label 530*/ GIMT_Encode4(32793), // Rule ID 234 //
11739 /* 32775 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
11740 /* 32778 */ // MIs[0] dst
11741 /* 32778 */ // No operand predicates
11742 /* 32778 */ // MIs[0] lhs
11743 /* 32778 */ // No operand predicates
11744 /* 32778 */ // MIs[0] rhs
11745 /* 32778 */ // No operand predicates
11746 /* 32778 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner33),
11747 /* 32782 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11748 /* 32787 */ // Combiner Rule #183: minmax_nan_num_rhs @ [__minmax_nan_num_rhs_match_0[0]]
11749 /* 32787 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11750 /* 32792 */ GIR_EraseRootFromParent_Done,
11751 /* 32793 */ // Label 530: @32793
11752 /* 32793 */ GIM_Try, /*On fail goto*//*Label 531*/ GIMT_Encode4(32818), // Rule ID 404 //
11753 /* 32798 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule272Enabled),
11754 /* 32801 */ // MIs[0] dst
11755 /* 32801 */ // No operand predicates
11756 /* 32801 */ // MIs[0] lhs
11757 /* 32801 */ // No operand predicates
11758 /* 32801 */ // MIs[0] rhs
11759 /* 32801 */ // No operand predicates
11760 /* 32801 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
11761 /* 32805 */ // Combiner Rule #272: G_FMINNUM_commute_fp_constant_to_rhs
11762 /* 32805 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMINNUM),
11763 /* 32808 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11764 /* 32810 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11765 /* 32812 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11766 /* 32814 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11767 /* 32817 */ GIR_EraseRootFromParent_Done,
11768 /* 32818 */ // Label 531: @32818
11769 /* 32818 */ GIM_Try, /*On fail goto*//*Label 532*/ GIMT_Encode4(32829), // Rule ID 304 //
11770 /* 32823 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11771 /* 32826 */ // MIs[0] d
11772 /* 32826 */ // No operand predicates
11773 /* 32826 */ // MIs[0] mi.src0
11774 /* 32826 */ // No operand predicates
11775 /* 32826 */ // MIs[0] mi.src1
11776 /* 32826 */ // No operand predicates
11777 /* 32826 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[6]]
11778 /* 32826 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11779 /* 32829 */ // Label 532: @32829
11780 /* 32829 */ GIM_Try, /*On fail goto*//*Label 533*/ GIMT_Encode4(32840), // Rule ID 363 //
11781 /* 32834 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11782 /* 32837 */ // MIs[0] root
11783 /* 32837 */ // No operand predicates
11784 /* 32837 */ // MIs[0] mi.x
11785 /* 32837 */ // No operand predicates
11786 /* 32837 */ // MIs[0] mi.y
11787 /* 32837 */ // No operand predicates
11788 /* 32837 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[9]]
11789 /* 32837 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11790 /* 32840 */ // Label 533: @32840
11791 /* 32840 */ GIM_Reject,
11792 /* 32841 */ // Label 85: @32841
11793 /* 32841 */ GIM_Try, /*On fail goto*//*Label 534*/ GIMT_Encode4(32864), // Rule ID 233 //
11794 /* 32846 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
11795 /* 32849 */ // MIs[0] dst
11796 /* 32849 */ // No operand predicates
11797 /* 32849 */ // MIs[0] lhs
11798 /* 32849 */ // No operand predicates
11799 /* 32849 */ // MIs[0] rhs
11800 /* 32849 */ // No operand predicates
11801 /* 32849 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner32),
11802 /* 32853 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11803 /* 32858 */ // Combiner Rule #182: minmax_nan_num_lhs @ [__minmax_nan_num_lhs_match_0[1]]
11804 /* 32858 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11805 /* 32863 */ GIR_EraseRootFromParent_Done,
11806 /* 32864 */ // Label 534: @32864
11807 /* 32864 */ GIM_Try, /*On fail goto*//*Label 535*/ GIMT_Encode4(32887), // Rule ID 235 //
11808 /* 32869 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
11809 /* 32872 */ // MIs[0] dst
11810 /* 32872 */ // No operand predicates
11811 /* 32872 */ // MIs[0] lhs
11812 /* 32872 */ // No operand predicates
11813 /* 32872 */ // MIs[0] rhs
11814 /* 32872 */ // No operand predicates
11815 /* 32872 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner33),
11816 /* 32876 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11817 /* 32881 */ // Combiner Rule #183: minmax_nan_num_rhs @ [__minmax_nan_num_rhs_match_0[1]]
11818 /* 32881 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11819 /* 32886 */ GIR_EraseRootFromParent_Done,
11820 /* 32887 */ // Label 535: @32887
11821 /* 32887 */ GIM_Try, /*On fail goto*//*Label 536*/ GIMT_Encode4(32912), // Rule ID 405 //
11822 /* 32892 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule273Enabled),
11823 /* 32895 */ // MIs[0] dst
11824 /* 32895 */ // No operand predicates
11825 /* 32895 */ // MIs[0] lhs
11826 /* 32895 */ // No operand predicates
11827 /* 32895 */ // MIs[0] rhs
11828 /* 32895 */ // No operand predicates
11829 /* 32895 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
11830 /* 32899 */ // Combiner Rule #273: G_FMAXNUM_commute_fp_constant_to_rhs
11831 /* 32899 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMAXNUM),
11832 /* 32902 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11833 /* 32904 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11834 /* 32906 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11835 /* 32908 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11836 /* 32911 */ GIR_EraseRootFromParent_Done,
11837 /* 32912 */ // Label 536: @32912
11838 /* 32912 */ GIM_Try, /*On fail goto*//*Label 537*/ GIMT_Encode4(32923), // Rule ID 305 //
11839 /* 32917 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11840 /* 32920 */ // MIs[0] d
11841 /* 32920 */ // No operand predicates
11842 /* 32920 */ // MIs[0] mi.src0
11843 /* 32920 */ // No operand predicates
11844 /* 32920 */ // MIs[0] mi.src1
11845 /* 32920 */ // No operand predicates
11846 /* 32920 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[7]]
11847 /* 32920 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11848 /* 32923 */ // Label 537: @32923
11849 /* 32923 */ GIM_Try, /*On fail goto*//*Label 538*/ GIMT_Encode4(32934), // Rule ID 364 //
11850 /* 32928 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11851 /* 32931 */ // MIs[0] root
11852 /* 32931 */ // No operand predicates
11853 /* 32931 */ // MIs[0] mi.x
11854 /* 32931 */ // No operand predicates
11855 /* 32931 */ // MIs[0] mi.y
11856 /* 32931 */ // No operand predicates
11857 /* 32931 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[10]]
11858 /* 32931 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11859 /* 32934 */ // Label 538: @32934
11860 /* 32934 */ GIM_Reject,
11861 /* 32935 */ // Label 86: @32935
11862 /* 32935 */ GIM_Try, /*On fail goto*//*Label 539*/ GIMT_Encode4(32960), // Rule ID 406 //
11863 /* 32940 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule274Enabled),
11864 /* 32943 */ // MIs[0] dst
11865 /* 32943 */ // No operand predicates
11866 /* 32943 */ // MIs[0] lhs
11867 /* 32943 */ // No operand predicates
11868 /* 32943 */ // MIs[0] rhs
11869 /* 32943 */ // No operand predicates
11870 /* 32943 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
11871 /* 32947 */ // Combiner Rule #274: G_FMINNUM_IEEE_commute_fp_constant_to_rhs
11872 /* 32947 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMINNUM_IEEE),
11873 /* 32950 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11874 /* 32952 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11875 /* 32954 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11876 /* 32956 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11877 /* 32959 */ GIR_EraseRootFromParent_Done,
11878 /* 32960 */ // Label 539: @32960
11879 /* 32960 */ GIM_Reject,
11880 /* 32961 */ // Label 87: @32961
11881 /* 32961 */ GIM_Try, /*On fail goto*//*Label 540*/ GIMT_Encode4(32986), // Rule ID 407 //
11882 /* 32966 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule275Enabled),
11883 /* 32969 */ // MIs[0] dst
11884 /* 32969 */ // No operand predicates
11885 /* 32969 */ // MIs[0] lhs
11886 /* 32969 */ // No operand predicates
11887 /* 32969 */ // MIs[0] rhs
11888 /* 32969 */ // No operand predicates
11889 /* 32969 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
11890 /* 32973 */ // Combiner Rule #275: G_FMAXNUM_IEEE_commute_fp_constant_to_rhs
11891 /* 32973 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMAXNUM_IEEE),
11892 /* 32976 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11893 /* 32978 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11894 /* 32980 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11895 /* 32982 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11896 /* 32985 */ GIR_EraseRootFromParent_Done,
11897 /* 32986 */ // Label 540: @32986
11898 /* 32986 */ GIM_Reject,
11899 /* 32987 */ // Label 88: @32987
11900 /* 32987 */ GIM_Try, /*On fail goto*//*Label 541*/ GIMT_Encode4(33010), // Rule ID 236 //
11901 /* 32992 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
11902 /* 32995 */ // MIs[0] dst
11903 /* 32995 */ // No operand predicates
11904 /* 32995 */ // MIs[0] lhs
11905 /* 32995 */ // No operand predicates
11906 /* 32995 */ // MIs[0] rhs
11907 /* 32995 */ // No operand predicates
11908 /* 32995 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner32),
11909 /* 32999 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11910 /* 33004 */ // Combiner Rule #184: minmax_nan_ieee_lhs @ [__minmax_nan_ieee_lhs_match_0[0]]
11911 /* 33004 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11912 /* 33009 */ GIR_EraseRootFromParent_Done,
11913 /* 33010 */ // Label 541: @33010
11914 /* 33010 */ GIM_Try, /*On fail goto*//*Label 542*/ GIMT_Encode4(33033), // Rule ID 238 //
11915 /* 33015 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
11916 /* 33018 */ // MIs[0] dst
11917 /* 33018 */ // No operand predicates
11918 /* 33018 */ // MIs[0] lhs
11919 /* 33018 */ // No operand predicates
11920 /* 33018 */ // MIs[0] rhs
11921 /* 33018 */ // No operand predicates
11922 /* 33018 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner33),
11923 /* 33022 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11924 /* 33027 */ // Combiner Rule #185: minmax_nan_ieee_rhs @ [__minmax_nan_ieee_rhs_match_0[0]]
11925 /* 33027 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11926 /* 33032 */ GIR_EraseRootFromParent_Done,
11927 /* 33033 */ // Label 542: @33033
11928 /* 33033 */ GIM_Try, /*On fail goto*//*Label 543*/ GIMT_Encode4(33058), // Rule ID 408 //
11929 /* 33038 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule276Enabled),
11930 /* 33041 */ // MIs[0] dst
11931 /* 33041 */ // No operand predicates
11932 /* 33041 */ // MIs[0] lhs
11933 /* 33041 */ // No operand predicates
11934 /* 33041 */ // MIs[0] rhs
11935 /* 33041 */ // No operand predicates
11936 /* 33041 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
11937 /* 33045 */ // Combiner Rule #276: G_FMINIMUM_commute_fp_constant_to_rhs
11938 /* 33045 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMINIMUM),
11939 /* 33048 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11940 /* 33050 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11941 /* 33052 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11942 /* 33054 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11943 /* 33057 */ GIR_EraseRootFromParent_Done,
11944 /* 33058 */ // Label 543: @33058
11945 /* 33058 */ GIM_Try, /*On fail goto*//*Label 544*/ GIMT_Encode4(33069), // Rule ID 306 //
11946 /* 33063 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11947 /* 33066 */ // MIs[0] d
11948 /* 33066 */ // No operand predicates
11949 /* 33066 */ // MIs[0] mi.src0
11950 /* 33066 */ // No operand predicates
11951 /* 33066 */ // MIs[0] mi.src1
11952 /* 33066 */ // No operand predicates
11953 /* 33066 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[8]]
11954 /* 33066 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11955 /* 33069 */ // Label 544: @33069
11956 /* 33069 */ GIM_Try, /*On fail goto*//*Label 545*/ GIMT_Encode4(33080), // Rule ID 365 //
11957 /* 33074 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11958 /* 33077 */ // MIs[0] root
11959 /* 33077 */ // No operand predicates
11960 /* 33077 */ // MIs[0] mi.x
11961 /* 33077 */ // No operand predicates
11962 /* 33077 */ // MIs[0] mi.y
11963 /* 33077 */ // No operand predicates
11964 /* 33077 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[11]]
11965 /* 33077 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11966 /* 33080 */ // Label 545: @33080
11967 /* 33080 */ GIM_Reject,
11968 /* 33081 */ // Label 89: @33081
11969 /* 33081 */ GIM_Try, /*On fail goto*//*Label 546*/ GIMT_Encode4(33104), // Rule ID 237 //
11970 /* 33086 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
11971 /* 33089 */ // MIs[0] dst
11972 /* 33089 */ // No operand predicates
11973 /* 33089 */ // MIs[0] lhs
11974 /* 33089 */ // No operand predicates
11975 /* 33089 */ // MIs[0] rhs
11976 /* 33089 */ // No operand predicates
11977 /* 33089 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner32),
11978 /* 33093 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11979 /* 33098 */ // Combiner Rule #184: minmax_nan_ieee_lhs @ [__minmax_nan_ieee_lhs_match_0[1]]
11980 /* 33098 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11981 /* 33103 */ GIR_EraseRootFromParent_Done,
11982 /* 33104 */ // Label 546: @33104
11983 /* 33104 */ GIM_Try, /*On fail goto*//*Label 547*/ GIMT_Encode4(33127), // Rule ID 239 //
11984 /* 33109 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
11985 /* 33112 */ // MIs[0] dst
11986 /* 33112 */ // No operand predicates
11987 /* 33112 */ // MIs[0] lhs
11988 /* 33112 */ // No operand predicates
11989 /* 33112 */ // MIs[0] rhs
11990 /* 33112 */ // No operand predicates
11991 /* 33112 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner33),
11992 /* 33116 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11993 /* 33121 */ // Combiner Rule #185: minmax_nan_ieee_rhs @ [__minmax_nan_ieee_rhs_match_0[1]]
11994 /* 33121 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11995 /* 33126 */ GIR_EraseRootFromParent_Done,
11996 /* 33127 */ // Label 547: @33127
11997 /* 33127 */ GIM_Try, /*On fail goto*//*Label 548*/ GIMT_Encode4(33152), // Rule ID 409 //
11998 /* 33132 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule277Enabled),
11999 /* 33135 */ // MIs[0] dst
12000 /* 33135 */ // No operand predicates
12001 /* 33135 */ // MIs[0] lhs
12002 /* 33135 */ // No operand predicates
12003 /* 33135 */ // MIs[0] rhs
12004 /* 33135 */ // No operand predicates
12005 /* 33135 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
12006 /* 33139 */ // Combiner Rule #277: G_FMAXIMUM_commute_fp_constant_to_rhs
12007 /* 33139 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMAXIMUM),
12008 /* 33142 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
12009 /* 33144 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
12010 /* 33146 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
12011 /* 33148 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
12012 /* 33151 */ GIR_EraseRootFromParent_Done,
12013 /* 33152 */ // Label 548: @33152
12014 /* 33152 */ GIM_Try, /*On fail goto*//*Label 549*/ GIMT_Encode4(33163), // Rule ID 307 //
12015 /* 33157 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
12016 /* 33160 */ // MIs[0] d
12017 /* 33160 */ // No operand predicates
12018 /* 33160 */ // MIs[0] mi.src0
12019 /* 33160 */ // No operand predicates
12020 /* 33160 */ // MIs[0] mi.src1
12021 /* 33160 */ // No operand predicates
12022 /* 33160 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[9]]
12023 /* 33160 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
12024 /* 33163 */ // Label 549: @33163
12025 /* 33163 */ GIM_Try, /*On fail goto*//*Label 550*/ GIMT_Encode4(33174), // Rule ID 366 //
12026 /* 33168 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
12027 /* 33171 */ // MIs[0] root
12028 /* 33171 */ // No operand predicates
12029 /* 33171 */ // MIs[0] mi.x
12030 /* 33171 */ // No operand predicates
12031 /* 33171 */ // MIs[0] mi.y
12032 /* 33171 */ // No operand predicates
12033 /* 33171 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[12]]
12034 /* 33171 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
12035 /* 33174 */ // Label 550: @33174
12036 /* 33174 */ GIM_Reject,
12037 /* 33175 */ // Label 90: @33175
12038 /* 33175 */ GIM_Try, /*On fail goto*//*Label 551*/ GIMT_Encode4(33186), // Rule ID 308 //
12039 /* 33180 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
12040 /* 33183 */ // MIs[0] d
12041 /* 33183 */ // No operand predicates
12042 /* 33183 */ // MIs[0] mi.src0
12043 /* 33183 */ // No operand predicates
12044 /* 33183 */ // MIs[0] mi.src1
12045 /* 33183 */ // No operand predicates
12046 /* 33183 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[10]]
12047 /* 33183 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
12048 /* 33186 */ // Label 551: @33186
12049 /* 33186 */ GIM_Reject,
12050 /* 33187 */ // Label 91: @33187
12051 /* 33187 */ GIM_Try, /*On fail goto*//*Label 552*/ GIMT_Encode4(33198), // Rule ID 309 //
12052 /* 33192 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
12053 /* 33195 */ // MIs[0] d
12054 /* 33195 */ // No operand predicates
12055 /* 33195 */ // MIs[0] mi.src0
12056 /* 33195 */ // No operand predicates
12057 /* 33195 */ // MIs[0] mi.src1
12058 /* 33195 */ // No operand predicates
12059 /* 33195 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[11]]
12060 /* 33195 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
12061 /* 33198 */ // Label 552: @33198
12062 /* 33198 */ GIM_Reject,
12063 /* 33199 */ // Label 92: @33199
12064 /* 33199 */ GIM_Try, /*On fail goto*//*Label 553*/ GIMT_Encode4(33236), // Rule ID 222 //
12065 /* 33204 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
12066 /* 33207 */ // MIs[0] dst
12067 /* 33207 */ // No operand predicates
12068 /* 33207 */ // MIs[0] base
12069 /* 33207 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12070 /* 33211 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
12071 /* 33215 */ // MIs[1] c1reg
12072 /* 33215 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
12073 /* 33219 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
12074 /* 33223 */ // MIs[2] c1imm
12075 /* 33223 */ // No operand predicates
12076 /* 33223 */ // MIs[0] c2reg
12077 /* 33223 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
12078 /* 33227 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
12079 /* 33231 */ // MIs[3] c2imm
12080 /* 33231 */ // No operand predicates
12081 /* 33231 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
12082 /* 33233 */ // Combiner Rule #172: const_ptradd_to_i2p
12083 /* 33233 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner64),
12084 /* 33236 */ // Label 553: @33236
12085 /* 33236 */ GIM_Try, /*On fail goto*//*Label 554*/ GIMT_Encode4(33277), // Rule ID 242 //
12086 /* 33241 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
12087 /* 33244 */ // MIs[0] dst
12088 /* 33244 */ // No operand predicates
12089 /* 33244 */ // MIs[0] base
12090 /* 33244 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12091 /* 33248 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
12092 /* 33252 */ // MIs[1] Operand 1
12093 /* 33252 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
12094 /* 33263 */ // MIs[0] offset
12095 /* 33263 */ // No operand predicates
12096 /* 33263 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner34),
12097 /* 33267 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12098 /* 33269 */ // Combiner Rule #188: ptr_add_with_zero_scalar
12099 /* 33269 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_INTTOPTR),
12100 /* 33272 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
12101 /* 33274 */ GIR_RootToRootCopy, /*OpIdx*/2, // offset
12102 /* 33276 */ GIR_EraseRootFromParent_Done,
12103 /* 33277 */ // Label 554: @33277
12104 /* 33277 */ GIM_Try, /*On fail goto*//*Label 555*/ GIMT_Encode4(33300), // Rule ID 125 //
12105 /* 33282 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
12106 /* 33285 */ // MIs[0] dst
12107 /* 33285 */ // No operand predicates
12108 /* 33285 */ // MIs[0] lhs
12109 /* 33285 */ // No operand predicates
12110 /* 33285 */ // MIs[0] Operand 2
12111 /* 33285 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
12112 /* 33289 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
12113 /* 33294 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[7]]
12114 /* 33294 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
12115 /* 33299 */ GIR_EraseRootFromParent_Done,
12116 /* 33300 */ // Label 555: @33300
12117 /* 33300 */ GIM_Try, /*On fail goto*//*Label 556*/ GIMT_Encode4(33320), // Rule ID 243 //
12118 /* 33305 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule189Enabled),
12119 /* 33308 */ // MIs[0] dst
12120 /* 33308 */ // No operand predicates
12121 /* 33308 */ // MIs[0] base
12122 /* 33308 */ // No operand predicates
12123 /* 33308 */ // MIs[0] offset
12124 /* 33308 */ // No operand predicates
12125 /* 33308 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner35),
12126 /* 33312 */ // Combiner Rule #189: ptr_add_with_zero_vector
12127 /* 33312 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_INTTOPTR),
12128 /* 33315 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
12129 /* 33317 */ GIR_RootToRootCopy, /*OpIdx*/2, // offset
12130 /* 33319 */ GIR_EraseRootFromParent_Done,
12131 /* 33320 */ // Label 556: @33320
12132 /* 33320 */ GIM_Try, /*On fail goto*//*Label 557*/ GIMT_Encode4(33331), // Rule ID 170 //
12133 /* 33325 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule120Enabled),
12134 /* 33328 */ // MIs[0] dst
12135 /* 33328 */ // No operand predicates
12136 /* 33328 */ // MIs[0] base
12137 /* 33328 */ // No operand predicates
12138 /* 33328 */ // MIs[0] offset
12139 /* 33328 */ // No operand predicates
12140 /* 33328 */ // Combiner Rule #120: reassoc_ptradd
12141 /* 33328 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
12142 /* 33331 */ // Label 557: @33331
12143 /* 33331 */ GIM_Try, /*On fail goto*//*Label 558*/ GIMT_Encode4(33342), // Rule ID 172 //
12144 /* 33336 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule122Enabled),
12145 /* 33339 */ // MIs[0] dst
12146 /* 33339 */ // No operand predicates
12147 /* 33339 */ // MIs[0] base
12148 /* 33339 */ // No operand predicates
12149 /* 33339 */ // MIs[0] offset
12150 /* 33339 */ // No operand predicates
12151 /* 33339 */ // Combiner Rule #122: ptr_add_immed_chain
12152 /* 33339 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner42),
12153 /* 33342 */ // Label 558: @33342
12154 /* 33342 */ GIM_Try, /*On fail goto*//*Label 559*/ GIMT_Encode4(33353), // Rule ID 281 //
12155 /* 33347 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
12156 /* 33350 */ // MIs[0] d
12157 /* 33350 */ // No operand predicates
12158 /* 33350 */ // MIs[0] mi.src0
12159 /* 33350 */ // No operand predicates
12160 /* 33350 */ // MIs[0] mi.src1
12161 /* 33350 */ // No operand predicates
12162 /* 33350 */ // Combiner Rule #210: constant_fold_binop @ [mi[1]]
12163 /* 33350 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
12164 /* 33353 */ // Label 559: @33353
12165 /* 33353 */ GIM_Try, /*On fail goto*//*Label 560*/ GIMT_Encode4(33364), // Rule ID 343 //
12166 /* 33358 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
12167 /* 33361 */ // MIs[0] root
12168 /* 33361 */ // No operand predicates
12169 /* 33361 */ // MIs[0] mi.x
12170 /* 33361 */ // No operand predicates
12171 /* 33361 */ // MIs[0] mi.y
12172 /* 33361 */ // No operand predicates
12173 /* 33361 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[2]]
12174 /* 33361 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
12175 /* 33364 */ // Label 560: @33364
12176 /* 33364 */ GIM_Reject,
12177 /* 33365 */ // Label 93: @33365
12178 /* 33365 */ GIM_Try, /*On fail goto*//*Label 561*/ GIMT_Encode4(33390), // Rule ID 386 //
12179 /* 33370 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule254Enabled),
12180 /* 33373 */ // MIs[0] dst
12181 /* 33373 */ // No operand predicates
12182 /* 33373 */ // MIs[0] lhs
12183 /* 33373 */ // No operand predicates
12184 /* 33373 */ // MIs[0] rhs
12185 /* 33373 */ // No operand predicates
12186 /* 33373 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
12187 /* 33377 */ // Combiner Rule #254: G_SMIN_commute_constant_to_rhs
12188 /* 33377 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMIN),
12189 /* 33380 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
12190 /* 33382 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
12191 /* 33384 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
12192 /* 33386 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
12193 /* 33389 */ GIR_EraseRootFromParent_Done,
12194 /* 33390 */ // Label 561: @33390
12195 /* 33390 */ GIM_Try, /*On fail goto*//*Label 562*/ GIMT_Encode4(33401), // Rule ID 294 //
12196 /* 33395 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
12197 /* 33398 */ // MIs[0] d
12198 /* 33398 */ // No operand predicates
12199 /* 33398 */ // MIs[0] mi.src0
12200 /* 33398 */ // No operand predicates
12201 /* 33398 */ // MIs[0] mi.src1
12202 /* 33398 */ // No operand predicates
12203 /* 33398 */ // Combiner Rule #210: constant_fold_binop @ [mi[14]]
12204 /* 33398 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
12205 /* 33401 */ // Label 562: @33401
12206 /* 33401 */ GIM_Try, /*On fail goto*//*Label 563*/ GIMT_Encode4(33412), // Rule ID 354 //
12207 /* 33406 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
12208 /* 33409 */ // MIs[0] root
12209 /* 33409 */ // No operand predicates
12210 /* 33409 */ // MIs[0] mi.x
12211 /* 33409 */ // No operand predicates
12212 /* 33409 */ // MIs[0] mi.y
12213 /* 33409 */ // No operand predicates
12214 /* 33409 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[0]]
12215 /* 33409 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
12216 /* 33412 */ // Label 563: @33412
12217 /* 33412 */ GIM_Reject,
12218 /* 33413 */ // Label 94: @33413
12219 /* 33413 */ GIM_Try, /*On fail goto*//*Label 564*/ GIMT_Encode4(33438), // Rule ID 387 //
12220 /* 33418 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule255Enabled),
12221 /* 33421 */ // MIs[0] dst
12222 /* 33421 */ // No operand predicates
12223 /* 33421 */ // MIs[0] lhs
12224 /* 33421 */ // No operand predicates
12225 /* 33421 */ // MIs[0] rhs
12226 /* 33421 */ // No operand predicates
12227 /* 33421 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
12228 /* 33425 */ // Combiner Rule #255: G_SMAX_commute_constant_to_rhs
12229 /* 33425 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMAX),
12230 /* 33428 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
12231 /* 33430 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
12232 /* 33432 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
12233 /* 33434 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
12234 /* 33437 */ GIR_EraseRootFromParent_Done,
12235 /* 33438 */ // Label 564: @33438
12236 /* 33438 */ GIM_Try, /*On fail goto*//*Label 565*/ GIMT_Encode4(33449), // Rule ID 295 //
12237 /* 33443 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
12238 /* 33446 */ // MIs[0] d
12239 /* 33446 */ // No operand predicates
12240 /* 33446 */ // MIs[0] mi.src0
12241 /* 33446 */ // No operand predicates
12242 /* 33446 */ // MIs[0] mi.src1
12243 /* 33446 */ // No operand predicates
12244 /* 33446 */ // Combiner Rule #210: constant_fold_binop @ [mi[15]]
12245 /* 33446 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
12246 /* 33449 */ // Label 565: @33449
12247 /* 33449 */ GIM_Try, /*On fail goto*//*Label 566*/ GIMT_Encode4(33460), // Rule ID 355 //
12248 /* 33454 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
12249 /* 33457 */ // MIs[0] root
12250 /* 33457 */ // No operand predicates
12251 /* 33457 */ // MIs[0] mi.x
12252 /* 33457 */ // No operand predicates
12253 /* 33457 */ // MIs[0] mi.y
12254 /* 33457 */ // No operand predicates
12255 /* 33457 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[1]]
12256 /* 33457 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
12257 /* 33460 */ // Label 566: @33460
12258 /* 33460 */ GIM_Reject,
12259 /* 33461 */ // Label 95: @33461
12260 /* 33461 */ GIM_Try, /*On fail goto*//*Label 567*/ GIMT_Encode4(33486), // Rule ID 388 //
12261 /* 33466 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule256Enabled),
12262 /* 33469 */ // MIs[0] dst
12263 /* 33469 */ // No operand predicates
12264 /* 33469 */ // MIs[0] lhs
12265 /* 33469 */ // No operand predicates
12266 /* 33469 */ // MIs[0] rhs
12267 /* 33469 */ // No operand predicates
12268 /* 33469 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
12269 /* 33473 */ // Combiner Rule #256: G_UMIN_commute_constant_to_rhs
12270 /* 33473 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMIN),
12271 /* 33476 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
12272 /* 33478 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
12273 /* 33480 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
12274 /* 33482 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
12275 /* 33485 */ GIR_EraseRootFromParent_Done,
12276 /* 33486 */ // Label 567: @33486
12277 /* 33486 */ GIM_Try, /*On fail goto*//*Label 568*/ GIMT_Encode4(33497), // Rule ID 296 //
12278 /* 33491 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
12279 /* 33494 */ // MIs[0] d
12280 /* 33494 */ // No operand predicates
12281 /* 33494 */ // MIs[0] mi.src0
12282 /* 33494 */ // No operand predicates
12283 /* 33494 */ // MIs[0] mi.src1
12284 /* 33494 */ // No operand predicates
12285 /* 33494 */ // Combiner Rule #210: constant_fold_binop @ [mi[16]]
12286 /* 33494 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
12287 /* 33497 */ // Label 568: @33497
12288 /* 33497 */ GIM_Try, /*On fail goto*//*Label 569*/ GIMT_Encode4(33508), // Rule ID 356 //
12289 /* 33502 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
12290 /* 33505 */ // MIs[0] root
12291 /* 33505 */ // No operand predicates
12292 /* 33505 */ // MIs[0] mi.x
12293 /* 33505 */ // No operand predicates
12294 /* 33505 */ // MIs[0] mi.y
12295 /* 33505 */ // No operand predicates
12296 /* 33505 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[2]]
12297 /* 33505 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
12298 /* 33508 */ // Label 569: @33508
12299 /* 33508 */ GIM_Reject,
12300 /* 33509 */ // Label 96: @33509
12301 /* 33509 */ GIM_Try, /*On fail goto*//*Label 570*/ GIMT_Encode4(33534), // Rule ID 389 //
12302 /* 33514 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule257Enabled),
12303 /* 33517 */ // MIs[0] dst
12304 /* 33517 */ // No operand predicates
12305 /* 33517 */ // MIs[0] lhs
12306 /* 33517 */ // No operand predicates
12307 /* 33517 */ // MIs[0] rhs
12308 /* 33517 */ // No operand predicates
12309 /* 33517 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
12310 /* 33521 */ // Combiner Rule #257: G_UMAX_commute_constant_to_rhs
12311 /* 33521 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMAX),
12312 /* 33524 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
12313 /* 33526 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
12314 /* 33528 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
12315 /* 33530 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
12316 /* 33533 */ GIR_EraseRootFromParent_Done,
12317 /* 33534 */ // Label 570: @33534
12318 /* 33534 */ GIM_Try, /*On fail goto*//*Label 571*/ GIMT_Encode4(33545), // Rule ID 297 //
12319 /* 33539 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
12320 /* 33542 */ // MIs[0] d
12321 /* 33542 */ // No operand predicates
12322 /* 33542 */ // MIs[0] mi.src0
12323 /* 33542 */ // No operand predicates
12324 /* 33542 */ // MIs[0] mi.src1
12325 /* 33542 */ // No operand predicates
12326 /* 33542 */ // Combiner Rule #210: constant_fold_binop @ [mi[17]]
12327 /* 33542 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
12328 /* 33545 */ // Label 571: @33545
12329 /* 33545 */ GIM_Try, /*On fail goto*//*Label 572*/ GIMT_Encode4(33556), // Rule ID 357 //
12330 /* 33550 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
12331 /* 33553 */ // MIs[0] root
12332 /* 33553 */ // No operand predicates
12333 /* 33553 */ // MIs[0] mi.x
12334 /* 33553 */ // No operand predicates
12335 /* 33553 */ // MIs[0] mi.y
12336 /* 33553 */ // No operand predicates
12337 /* 33553 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[3]]
12338 /* 33553 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
12339 /* 33556 */ // Label 572: @33556
12340 /* 33556 */ GIM_Reject,
12341 /* 33557 */ // Label 97: @33557
12342 /* 33557 */ GIM_Try, /*On fail goto*//*Label 573*/ GIMT_Encode4(33578), // Rule ID 96 //
12343 /* 33562 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
12344 /* 33565 */ // MIs[0] dst
12345 /* 33565 */ // No operand predicates
12346 /* 33565 */ // MIs[0] __unary_undef_to_zero_match_0.x
12347 /* 33565 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12348 /* 33569 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12349 /* 33573 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12350 /* 33575 */ // Combiner Rule #81: unary_undef_to_zero @ [__unary_undef_to_zero_match_0[0]]
12351 /* 33575 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
12352 /* 33578 */ // Label 573: @33578
12353 /* 33578 */ GIM_Try, /*On fail goto*//*Label 574*/ GIMT_Encode4(33589), // Rule ID 320 //
12354 /* 33583 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
12355 /* 33586 */ // MIs[0] dst
12356 /* 33586 */ // No operand predicates
12357 /* 33586 */ // MIs[0] mi.src
12358 /* 33586 */ // No operand predicates
12359 /* 33586 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[5]]
12360 /* 33586 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
12361 /* 33589 */ // Label 574: @33589
12362 /* 33589 */ GIM_Reject,
12363 /* 33590 */ // Label 98: @33590
12364 /* 33590 */ GIM_Try, /*On fail goto*//*Label 575*/ GIMT_Encode4(33601), // Rule ID 206 //
12365 /* 33595 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
12366 /* 33598 */ // MIs[0] tgt
12367 /* 33598 */ // No operand predicates
12368 /* 33598 */ // Combiner Rule #156: opt_brcond_by_inverting_cond
12369 /* 33598 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner62),
12370 /* 33601 */ // Label 575: @33601
12371 /* 33601 */ GIM_Reject,
12372 /* 33602 */ // Label 99: @33602
12373 /* 33602 */ GIM_Try, /*On fail goto*//*Label 576*/ GIMT_Encode4(33641), // Rule ID 45 //
12374 /* 33607 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
12375 /* 33610 */ // MIs[0] root
12376 /* 33610 */ // No operand predicates
12377 /* 33610 */ // MIs[0] src
12378 /* 33610 */ // No operand predicates
12379 /* 33610 */ // MIs[0] elt
12380 /* 33610 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
12381 /* 33614 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_EXTRACT_VECTOR_ELT),
12382 /* 33618 */ // MIs[1] src
12383 /* 33618 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
12384 /* 33623 */ // MIs[1] idx
12385 /* 33623 */ // No operand predicates
12386 /* 33623 */ // MIs[0] idx
12387 /* 33623 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
12388 /* 33628 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
12389 /* 33633 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12390 /* 33635 */ // Combiner Rule #41: insert_vector_element_extract_vector_element
12391 /* 33635 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
12392 /* 33640 */ GIR_EraseRootFromParent_Done,
12393 /* 33641 */ // Label 576: @33641
12394 /* 33641 */ GIM_Try, /*On fail goto*//*Label 577*/ GIMT_Encode4(33674), // Rule ID 31 //
12395 /* 33646 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
12396 /* 33649 */ // MIs[0] root
12397 /* 33649 */ // No operand predicates
12398 /* 33649 */ // MIs[0] src
12399 /* 33649 */ // No operand predicates
12400 /* 33649 */ // MIs[0] elt
12401 /* 33649 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
12402 /* 33653 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12403 /* 33657 */ // MIs[0] idx
12404 /* 33657 */ // No operand predicates
12405 /* 33657 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
12406 /* 33661 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
12407 /* 33666 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12408 /* 33668 */ // Combiner Rule #27: insert_vector_element_elt_undef
12409 /* 33668 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
12410 /* 33673 */ GIR_EraseRootFromParent_Done,
12411 /* 33674 */ // Label 577: @33674
12412 /* 33674 */ GIM_Try, /*On fail goto*//*Label 578*/ GIMT_Encode4(33698), // Rule ID 30 //
12413 /* 33679 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
12414 /* 33682 */ // MIs[0] root
12415 /* 33682 */ // No operand predicates
12416 /* 33682 */ // MIs[0] src
12417 /* 33682 */ // No operand predicates
12418 /* 33682 */ // MIs[0] elt
12419 /* 33682 */ // No operand predicates
12420 /* 33682 */ // MIs[0] idx
12421 /* 33682 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
12422 /* 33686 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12423 /* 33690 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12424 /* 33692 */ // Combiner Rule #26: insert_vector_element_idx_undef
12425 /* 33692 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12426 /* 33695 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
12427 /* 33697 */ GIR_EraseRootFromParent_Done,
12428 /* 33698 */ // Label 578: @33698
12429 /* 33698 */ GIM_Try, /*On fail goto*//*Label 579*/ GIMT_Encode4(33716), // Rule ID 33 //
12430 /* 33703 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
12431 /* 33706 */ // MIs[0] dst
12432 /* 33706 */ // No operand predicates
12433 /* 33706 */ // MIs[0] src
12434 /* 33706 */ // No operand predicates
12435 /* 33706 */ // MIs[0] elt
12436 /* 33706 */ // No operand predicates
12437 /* 33706 */ // MIs[0] idx
12438 /* 33706 */ // No operand predicates
12439 /* 33706 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner5),
12440 /* 33710 */ // Combiner Rule #29: insert_vector_elt_oob
12441 /* 33710 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12442 /* 33713 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
12443 /* 33715 */ GIR_EraseRootFromParent_Done,
12444 /* 33716 */ // Label 579: @33716
12445 /* 33716 */ GIM_Try, /*On fail goto*//*Label 580*/ GIMT_Encode4(33734), // Rule ID 114 //
12446 /* 33721 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
12447 /* 33724 */ // MIs[0] root
12448 /* 33724 */ // No operand predicates
12449 /* 33724 */ // MIs[0] vec
12450 /* 33724 */ // No operand predicates
12451 /* 33724 */ // MIs[0] elt
12452 /* 33724 */ // No operand predicates
12453 /* 33724 */ // MIs[0] idx
12454 /* 33724 */ // No operand predicates
12455 /* 33724 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
12456 /* 33728 */ // Combiner Rule #88: insert_vec_elt_out_of_bounds
12457 /* 33728 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12458 /* 33731 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
12459 /* 33733 */ GIR_EraseRootFromParent_Done,
12460 /* 33734 */ // Label 580: @33734
12461 /* 33734 */ GIM_Try, /*On fail goto*//*Label 581*/ GIMT_Encode4(33745), // Rule ID 74 //
12462 /* 33739 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
12463 /* 33742 */ // MIs[0] dst
12464 /* 33742 */ // No operand predicates
12465 /* 33742 */ // MIs[0] src
12466 /* 33742 */ // No operand predicates
12467 /* 33742 */ // MIs[0] elt
12468 /* 33742 */ // No operand predicates
12469 /* 33742 */ // MIs[0] idx
12470 /* 33742 */ // No operand predicates
12471 /* 33742 */ // Combiner Rule #70: combine_insert_vec_elts_build_vector
12472 /* 33742 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
12473 /* 33745 */ // Label 581: @33745
12474 /* 33745 */ GIM_Reject,
12475 /* 33746 */ // Label 100: @33746
12476 /* 33746 */ GIM_Try, /*On fail goto*//*Label 582*/ GIMT_Encode4(33770), // Rule ID 43 //
12477 /* 33751 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
12478 /* 33754 */ // MIs[0] root
12479 /* 33754 */ // No operand predicates
12480 /* 33754 */ // MIs[0] src
12481 /* 33754 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12482 /* 33758 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
12483 /* 33762 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/9,
12484 /* 33765 */ // MIs[1] x
12485 /* 33765 */ // No operand predicates
12486 /* 33765 */ // MIs[1] y
12487 /* 33765 */ // No operand predicates
12488 /* 33765 */ // MIs[1] z
12489 /* 33765 */ // No operand predicates
12490 /* 33765 */ // MIs[1] a
12491 /* 33765 */ // No operand predicates
12492 /* 33765 */ // MIs[1] b
12493 /* 33765 */ // No operand predicates
12494 /* 33765 */ // MIs[1] c
12495 /* 33765 */ // No operand predicates
12496 /* 33765 */ // MIs[1] d
12497 /* 33765 */ // No operand predicates
12498 /* 33765 */ // MIs[1] e
12499 /* 33765 */ // No operand predicates
12500 /* 33765 */ // MIs[0] idx
12501 /* 33765 */ // No operand predicates
12502 /* 33765 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12503 /* 33767 */ // Combiner Rule #39: extract_vector_element_build_vector_trunc8
12504 /* 33767 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
12505 /* 33770 */ // Label 582: @33770
12506 /* 33770 */ GIM_Try, /*On fail goto*//*Label 583*/ GIMT_Encode4(33794), // Rule ID 42 //
12507 /* 33775 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
12508 /* 33778 */ // MIs[0] root
12509 /* 33778 */ // No operand predicates
12510 /* 33778 */ // MIs[0] src
12511 /* 33778 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12512 /* 33782 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
12513 /* 33786 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/8,
12514 /* 33789 */ // MIs[1] x
12515 /* 33789 */ // No operand predicates
12516 /* 33789 */ // MIs[1] y
12517 /* 33789 */ // No operand predicates
12518 /* 33789 */ // MIs[1] z
12519 /* 33789 */ // No operand predicates
12520 /* 33789 */ // MIs[1] a
12521 /* 33789 */ // No operand predicates
12522 /* 33789 */ // MIs[1] b
12523 /* 33789 */ // No operand predicates
12524 /* 33789 */ // MIs[1] c
12525 /* 33789 */ // No operand predicates
12526 /* 33789 */ // MIs[1] d
12527 /* 33789 */ // No operand predicates
12528 /* 33789 */ // MIs[0] idx
12529 /* 33789 */ // No operand predicates
12530 /* 33789 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12531 /* 33791 */ // Combiner Rule #38: extract_vector_element_build_vector_trunc7
12532 /* 33791 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
12533 /* 33794 */ // Label 583: @33794
12534 /* 33794 */ GIM_Try, /*On fail goto*//*Label 584*/ GIMT_Encode4(33818), // Rule ID 41 //
12535 /* 33799 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
12536 /* 33802 */ // MIs[0] root
12537 /* 33802 */ // No operand predicates
12538 /* 33802 */ // MIs[0] src
12539 /* 33802 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12540 /* 33806 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
12541 /* 33810 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/7,
12542 /* 33813 */ // MIs[1] x
12543 /* 33813 */ // No operand predicates
12544 /* 33813 */ // MIs[1] y
12545 /* 33813 */ // No operand predicates
12546 /* 33813 */ // MIs[1] z
12547 /* 33813 */ // No operand predicates
12548 /* 33813 */ // MIs[1] a
12549 /* 33813 */ // No operand predicates
12550 /* 33813 */ // MIs[1] b
12551 /* 33813 */ // No operand predicates
12552 /* 33813 */ // MIs[1] c
12553 /* 33813 */ // No operand predicates
12554 /* 33813 */ // MIs[0] idx
12555 /* 33813 */ // No operand predicates
12556 /* 33813 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12557 /* 33815 */ // Combiner Rule #37: extract_vector_element_build_vector_trunc6
12558 /* 33815 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
12559 /* 33818 */ // Label 584: @33818
12560 /* 33818 */ GIM_Try, /*On fail goto*//*Label 585*/ GIMT_Encode4(33842), // Rule ID 40 //
12561 /* 33823 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
12562 /* 33826 */ // MIs[0] root
12563 /* 33826 */ // No operand predicates
12564 /* 33826 */ // MIs[0] src
12565 /* 33826 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12566 /* 33830 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
12567 /* 33834 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/6,
12568 /* 33837 */ // MIs[1] x
12569 /* 33837 */ // No operand predicates
12570 /* 33837 */ // MIs[1] y
12571 /* 33837 */ // No operand predicates
12572 /* 33837 */ // MIs[1] z
12573 /* 33837 */ // No operand predicates
12574 /* 33837 */ // MIs[1] a
12575 /* 33837 */ // No operand predicates
12576 /* 33837 */ // MIs[1] b
12577 /* 33837 */ // No operand predicates
12578 /* 33837 */ // MIs[0] idx
12579 /* 33837 */ // No operand predicates
12580 /* 33837 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12581 /* 33839 */ // Combiner Rule #36: extract_vector_element_build_vector_trunc5
12582 /* 33839 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
12583 /* 33842 */ // Label 585: @33842
12584 /* 33842 */ GIM_Try, /*On fail goto*//*Label 586*/ GIMT_Encode4(33866), // Rule ID 39 //
12585 /* 33847 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
12586 /* 33850 */ // MIs[0] root
12587 /* 33850 */ // No operand predicates
12588 /* 33850 */ // MIs[0] src
12589 /* 33850 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12590 /* 33854 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
12591 /* 33858 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/5,
12592 /* 33861 */ // MIs[1] x
12593 /* 33861 */ // No operand predicates
12594 /* 33861 */ // MIs[1] y
12595 /* 33861 */ // No operand predicates
12596 /* 33861 */ // MIs[1] z
12597 /* 33861 */ // No operand predicates
12598 /* 33861 */ // MIs[1] a
12599 /* 33861 */ // No operand predicates
12600 /* 33861 */ // MIs[0] idx
12601 /* 33861 */ // No operand predicates
12602 /* 33861 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12603 /* 33863 */ // Combiner Rule #35: extract_vector_element_build_vector_trunc4
12604 /* 33863 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
12605 /* 33866 */ // Label 586: @33866
12606 /* 33866 */ GIM_Try, /*On fail goto*//*Label 587*/ GIMT_Encode4(33890), // Rule ID 38 //
12607 /* 33871 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
12608 /* 33874 */ // MIs[0] root
12609 /* 33874 */ // No operand predicates
12610 /* 33874 */ // MIs[0] src
12611 /* 33874 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12612 /* 33878 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
12613 /* 33882 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
12614 /* 33885 */ // MIs[1] x
12615 /* 33885 */ // No operand predicates
12616 /* 33885 */ // MIs[1] y
12617 /* 33885 */ // No operand predicates
12618 /* 33885 */ // MIs[1] z
12619 /* 33885 */ // No operand predicates
12620 /* 33885 */ // MIs[0] idx
12621 /* 33885 */ // No operand predicates
12622 /* 33885 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12623 /* 33887 */ // Combiner Rule #34: extract_vector_element_build_vector_trunc3
12624 /* 33887 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
12625 /* 33890 */ // Label 587: @33890
12626 /* 33890 */ GIM_Try, /*On fail goto*//*Label 588*/ GIMT_Encode4(33924), // Rule ID 34 //
12627 /* 33895 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
12628 /* 33898 */ // MIs[0] root
12629 /* 33898 */ // No operand predicates
12630 /* 33898 */ // MIs[0] src
12631 /* 33898 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12632 /* 33902 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
12633 /* 33906 */ // MIs[1] x
12634 /* 33906 */ // No operand predicates
12635 /* 33906 */ // MIs[1] value
12636 /* 33906 */ // No operand predicates
12637 /* 33906 */ // MIs[1] idx
12638 /* 33906 */ // No operand predicates
12639 /* 33906 */ // MIs[0] idx
12640 /* 33906 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
12641 /* 33911 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
12642 /* 33916 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12643 /* 33918 */ // Combiner Rule #30: extract_vector_element_not_const
12644 /* 33918 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
12645 /* 33923 */ GIR_EraseRootFromParent_Done,
12646 /* 33924 */ // Label 588: @33924
12647 /* 33924 */ GIM_Try, /*On fail goto*//*Label 589*/ GIMT_Encode4(33945), // Rule ID 35 //
12648 /* 33929 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
12649 /* 33932 */ // MIs[0] root
12650 /* 33932 */ // No operand predicates
12651 /* 33932 */ // MIs[0] src
12652 /* 33932 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12653 /* 33936 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
12654 /* 33940 */ // MIs[1] x
12655 /* 33940 */ // No operand predicates
12656 /* 33940 */ // MIs[1] value
12657 /* 33940 */ // No operand predicates
12658 /* 33940 */ // MIs[1] idx2
12659 /* 33940 */ // No operand predicates
12660 /* 33940 */ // MIs[0] idx1
12661 /* 33940 */ // No operand predicates
12662 /* 33940 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12663 /* 33942 */ // Combiner Rule #31: extract_vector_element_different_indices
12664 /* 33942 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
12665 /* 33945 */ // Label 589: @33945
12666 /* 33945 */ GIM_Try, /*On fail goto*//*Label 590*/ GIMT_Encode4(33974), // Rule ID 44 //
12667 /* 33950 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
12668 /* 33953 */ // MIs[0] root
12669 /* 33953 */ // No operand predicates
12670 /* 33953 */ // MIs[0] src
12671 /* 33953 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12672 /* 33957 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHUFFLE_VECTOR),
12673 /* 33961 */ // MIs[1] src1
12674 /* 33961 */ // No operand predicates
12675 /* 33961 */ // MIs[1] src2
12676 /* 33961 */ // No operand predicates
12677 /* 33961 */ // MIs[1] mask
12678 /* 33961 */ // No operand predicates
12679 /* 33961 */ // MIs[0] idx
12680 /* 33961 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
12681 /* 33965 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
12682 /* 33969 */ // MIs[2] imm
12683 /* 33969 */ // No operand predicates
12684 /* 33969 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
12685 /* 33971 */ // Combiner Rule #40: extract_vector_element_shuffle_vector
12686 /* 33971 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
12687 /* 33974 */ // Label 590: @33974
12688 /* 33974 */ GIM_Try, /*On fail goto*//*Label 591*/ GIMT_Encode4(33998), // Rule ID 37 //
12689 /* 33979 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
12690 /* 33982 */ // MIs[0] root
12691 /* 33982 */ // No operand predicates
12692 /* 33982 */ // MIs[0] src
12693 /* 33982 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12694 /* 33986 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
12695 /* 33990 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
12696 /* 33993 */ // MIs[1] x
12697 /* 33993 */ // No operand predicates
12698 /* 33993 */ // MIs[1] y
12699 /* 33993 */ // No operand predicates
12700 /* 33993 */ // MIs[0] idx
12701 /* 33993 */ // No operand predicates
12702 /* 33993 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12703 /* 33995 */ // Combiner Rule #33: extract_vector_element_build_vector_trunc2
12704 /* 33995 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
12705 /* 33998 */ // Label 591: @33998
12706 /* 33998 */ GIM_Try, /*On fail goto*//*Label 592*/ GIMT_Encode4(34030), // Rule ID 36 //
12707 /* 34003 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
12708 /* 34006 */ // MIs[0] root
12709 /* 34006 */ // No operand predicates
12710 /* 34006 */ // MIs[0] src
12711 /* 34006 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12712 /* 34010 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
12713 /* 34014 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
12714 /* 34017 */ // MIs[1] unused
12715 /* 34017 */ // No operand predicates
12716 /* 34017 */ // MIs[0] idx
12717 /* 34017 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
12718 /* 34021 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
12719 /* 34025 */ // MIs[2] imm
12720 /* 34025 */ // No operand predicates
12721 /* 34025 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
12722 /* 34027 */ // Combiner Rule #32: extract_vector_element_build_vector
12723 /* 34027 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
12724 /* 34030 */ // Label 592: @34030
12725 /* 34030 */ GIM_Try, /*On fail goto*//*Label 593*/ GIMT_Encode4(34054), // Rule ID 28 //
12726 /* 34035 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
12727 /* 34038 */ // MIs[0] root
12728 /* 34038 */ // No operand predicates
12729 /* 34038 */ // MIs[0] __extract_vector_element_undef_match_0.x
12730 /* 34038 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12731 /* 34042 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12732 /* 34046 */ // MIs[0] __extract_vector_element_undef_match_0.y
12733 /* 34046 */ // No operand predicates
12734 /* 34046 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12735 /* 34048 */ // Combiner Rule #25: extract_vector_element_undef @ [__extract_vector_element_undef_match_0[0]]
12736 /* 34048 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12737 /* 34051 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
12738 /* 34053 */ GIR_EraseRootFromParent_Done,
12739 /* 34054 */ // Label 593: @34054
12740 /* 34054 */ GIM_Try, /*On fail goto*//*Label 594*/ GIMT_Encode4(34078), // Rule ID 29 //
12741 /* 34059 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
12742 /* 34062 */ // MIs[0] root
12743 /* 34062 */ // No operand predicates
12744 /* 34062 */ // MIs[0] __extract_vector_element_undef_match_0.x
12745 /* 34062 */ // No operand predicates
12746 /* 34062 */ // MIs[0] __extract_vector_element_undef_match_0.y
12747 /* 34062 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
12748 /* 34066 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12749 /* 34070 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12750 /* 34072 */ // Combiner Rule #25: extract_vector_element_undef @ [__extract_vector_element_undef_match_0[1]]
12751 /* 34072 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12752 /* 34075 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
12753 /* 34077 */ GIR_EraseRootFromParent_Done,
12754 /* 34078 */ // Label 594: @34078
12755 /* 34078 */ GIM_Try, /*On fail goto*//*Label 595*/ GIMT_Encode4(34096), // Rule ID 32 //
12756 /* 34083 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
12757 /* 34086 */ // MIs[0] dst
12758 /* 34086 */ // No operand predicates
12759 /* 34086 */ // MIs[0] src
12760 /* 34086 */ // No operand predicates
12761 /* 34086 */ // MIs[0] idx
12762 /* 34086 */ // No operand predicates
12763 /* 34086 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
12764 /* 34090 */ // Combiner Rule #28: match_extract_of_element
12765 /* 34090 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12766 /* 34093 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
12767 /* 34095 */ GIR_EraseRootFromParent_Done,
12768 /* 34096 */ // Label 595: @34096
12769 /* 34096 */ GIM_Try, /*On fail goto*//*Label 596*/ GIMT_Encode4(34114), // Rule ID 115 //
12770 /* 34101 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
12771 /* 34104 */ // MIs[0] root
12772 /* 34104 */ // No operand predicates
12773 /* 34104 */ // MIs[0] vec
12774 /* 34104 */ // No operand predicates
12775 /* 34104 */ // MIs[0] idx
12776 /* 34104 */ // No operand predicates
12777 /* 34104 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
12778 /* 34108 */ // Combiner Rule #89: extract_vec_elt_out_of_bounds
12779 /* 34108 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12780 /* 34111 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
12781 /* 34113 */ GIR_EraseRootFromParent_Done,
12782 /* 34114 */ // Label 596: @34114
12783 /* 34114 */ GIM_Try, /*On fail goto*//*Label 597*/ GIMT_Encode4(34125), // Rule ID 75 //
12784 /* 34119 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
12785 /* 34122 */ // MIs[0] dst
12786 /* 34122 */ // No operand predicates
12787 /* 34122 */ // MIs[0] src
12788 /* 34122 */ // No operand predicates
12789 /* 34122 */ // MIs[0] idx
12790 /* 34122 */ // No operand predicates
12791 /* 34122 */ // Combiner Rule #71: extract_vec_elt_build_vec
12792 /* 34122 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
12793 /* 34125 */ // Label 597: @34125
12794 /* 34125 */ GIM_Try, /*On fail goto*//*Label 598*/ GIMT_Encode4(34136), // Rule ID 81 //
12795 /* 34130 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
12796 /* 34133 */ // MIs[0] dst
12797 /* 34133 */ // No operand predicates
12798 /* 34133 */ // MIs[0] src
12799 /* 34133 */ // No operand predicates
12800 /* 34133 */ // MIs[0] idx
12801 /* 34133 */ // No operand predicates
12802 /* 34133 */ // Combiner Rule #75: combine_extracted_vector_load
12803 /* 34133 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
12804 /* 34136 */ // Label 598: @34136
12805 /* 34136 */ GIM_Reject,
12806 /* 34137 */ // Label 101: @34137
12807 /* 34137 */ GIM_Try, /*On fail goto*//*Label 599*/ GIMT_Encode4(34158), // Rule ID 424 //
12808 /* 34142 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule292Enabled),
12809 /* 34145 */ // MIs[0] root
12810 /* 34145 */ // No operand predicates
12811 /* 34145 */ // MIs[0] src1
12812 /* 34145 */ // No operand predicates
12813 /* 34145 */ // MIs[0] undef
12814 /* 34145 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
12815 /* 34149 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12816 /* 34153 */ // MIs[0] mask
12817 /* 34153 */ // No operand predicates
12818 /* 34153 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12819 /* 34155 */ // Combiner Rule #292: combine_shuffle_undef_rhs
12820 /* 34155 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
12821 /* 34158 */ // Label 599: @34158
12822 /* 34158 */ GIM_Try, /*On fail goto*//*Label 600*/ GIMT_Encode4(34176), // Rule ID 110 //
12823 /* 34163 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
12824 /* 34166 */ // MIs[0] root
12825 /* 34166 */ // No operand predicates
12826 /* 34166 */ // MIs[0] src1
12827 /* 34166 */ // No operand predicates
12828 /* 34166 */ // MIs[0] src2
12829 /* 34166 */ // No operand predicates
12830 /* 34166 */ // MIs[0] mask
12831 /* 34166 */ // No operand predicates
12832 /* 34166 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
12833 /* 34170 */ // Combiner Rule #84: propagate_undef_all_ops_shuffle_vector
12834 /* 34170 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12835 /* 34173 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
12836 /* 34175 */ GIR_EraseRootFromParent_Done,
12837 /* 34176 */ // Label 600: @34176
12838 /* 34176 */ GIM_Try, /*On fail goto*//*Label 601*/ GIMT_Encode4(34194), // Rule ID 112 //
12839 /* 34181 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
12840 /* 34184 */ // MIs[0] dst
12841 /* 34184 */ // No operand predicates
12842 /* 34184 */ // MIs[0] src1
12843 /* 34184 */ // No operand predicates
12844 /* 34184 */ // MIs[0] src2
12845 /* 34184 */ // No operand predicates
12846 /* 34184 */ // MIs[0] mask
12847 /* 34184 */ // No operand predicates
12848 /* 34184 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner8),
12849 /* 34188 */ // Combiner Rule #86: propagate_undef_shuffle_mask
12850 /* 34188 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12851 /* 34191 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
12852 /* 34193 */ GIR_EraseRootFromParent_Done,
12853 /* 34194 */ // Label 601: @34194
12854 /* 34194 */ GIM_Try, /*On fail goto*//*Label 602*/ GIMT_Encode4(34205), // Rule ID 423 //
12855 /* 34199 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule291Enabled),
12856 /* 34202 */ // MIs[0] dst
12857 /* 34202 */ // No operand predicates
12858 /* 34202 */ // MIs[0] src1
12859 /* 34202 */ // No operand predicates
12860 /* 34202 */ // MIs[0] src2
12861 /* 34202 */ // No operand predicates
12862 /* 34202 */ // MIs[0] mask
12863 /* 34202 */ // No operand predicates
12864 /* 34202 */ // Combiner Rule #291: combine_shuffle_concat
12865 /* 34202 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
12866 /* 34205 */ // Label 602: @34205
12867 /* 34205 */ GIM_Try, /*On fail goto*//*Label 603*/ GIMT_Encode4(34216), // Rule ID 425 //
12868 /* 34210 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule293Enabled),
12869 /* 34213 */ // MIs[0] dst
12870 /* 34213 */ // No operand predicates
12871 /* 34213 */ // MIs[0] src1
12872 /* 34213 */ // No operand predicates
12873 /* 34213 */ // MIs[0] src2
12874 /* 34213 */ // No operand predicates
12875 /* 34213 */ // MIs[0] mask
12876 /* 34213 */ // No operand predicates
12877 /* 34213 */ // Combiner Rule #293: combine_shuffle_disjoint_mask
12878 /* 34213 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner111),
12879 /* 34216 */ // Label 603: @34216
12880 /* 34216 */ GIM_Reject,
12881 /* 34217 */ // Label 102: @34217
12882 /* 34217 */ GIM_Try, /*On fail goto*//*Label 604*/ GIMT_Encode4(34240), // Rule ID 451 //
12883 /* 34222 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule319Enabled),
12884 /* 34225 */ // MIs[0] dst
12885 /* 34225 */ // No operand predicates
12886 /* 34225 */ // MIs[0] src
12887 /* 34225 */ // No operand predicates
12888 /* 34225 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner56),
12889 /* 34229 */ // Combiner Rule #319: cttz_to_cttz_zero_poison
12890 /* 34229 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_CTTZ_ZERO_POISON),
12891 /* 34232 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
12892 /* 34234 */ GIR_RootToRootCopy, /*OpIdx*/1, // src
12893 /* 34236 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
12894 /* 34239 */ GIR_EraseRootFromParent_Done,
12895 /* 34240 */ // Label 604: @34240
12896 /* 34240 */ GIM_Try, /*On fail goto*//*Label 605*/ GIMT_Encode4(34251), // Rule ID 317 //
12897 /* 34245 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
12898 /* 34248 */ // MIs[0] dst
12899 /* 34248 */ // No operand predicates
12900 /* 34248 */ // MIs[0] mi.src
12901 /* 34248 */ // No operand predicates
12902 /* 34248 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[2]]
12903 /* 34248 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
12904 /* 34251 */ // Label 605: @34251
12905 /* 34251 */ GIM_Reject,
12906 /* 34252 */ // Label 103: @34252
12907 /* 34252 */ GIM_Try, /*On fail goto*//*Label 606*/ GIMT_Encode4(34263), // Rule ID 318 //
12908 /* 34257 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
12909 /* 34260 */ // MIs[0] dst
12910 /* 34260 */ // No operand predicates
12911 /* 34260 */ // MIs[0] mi.src
12912 /* 34260 */ // No operand predicates
12913 /* 34260 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[3]]
12914 /* 34260 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
12915 /* 34263 */ // Label 606: @34263
12916 /* 34263 */ GIM_Reject,
12917 /* 34264 */ // Label 104: @34264
12918 /* 34264 */ GIM_Try, /*On fail goto*//*Label 607*/ GIMT_Encode4(34287), // Rule ID 450 //
12919 /* 34269 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule318Enabled),
12920 /* 34272 */ // MIs[0] dst
12921 /* 34272 */ // No operand predicates
12922 /* 34272 */ // MIs[0] src
12923 /* 34272 */ // No operand predicates
12924 /* 34272 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner55),
12925 /* 34276 */ // Combiner Rule #318: ctlz_to_ctlz_zero_poison
12926 /* 34276 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_CTLZ_ZERO_POISON),
12927 /* 34279 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
12928 /* 34281 */ GIR_RootToRootCopy, /*OpIdx*/1, // src
12929 /* 34283 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
12930 /* 34286 */ GIR_EraseRootFromParent_Done,
12931 /* 34287 */ // Label 607: @34287
12932 /* 34287 */ GIM_Try, /*On fail goto*//*Label 608*/ GIMT_Encode4(34298), // Rule ID 315 //
12933 /* 34292 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
12934 /* 34295 */ // MIs[0] dst
12935 /* 34295 */ // No operand predicates
12936 /* 34295 */ // MIs[0] mi.src
12937 /* 34295 */ // No operand predicates
12938 /* 34295 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[0]]
12939 /* 34295 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
12940 /* 34298 */ // Label 608: @34298
12941 /* 34298 */ GIM_Try, /*On fail goto*//*Label 609*/ GIMT_Encode4(34309), // Rule ID 448 //
12942 /* 34303 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule316Enabled),
12943 /* 34306 */ // MIs[0] dst
12944 /* 34306 */ // No operand predicates
12945 /* 34306 */ // MIs[0] src
12946 /* 34306 */ // No operand predicates
12947 /* 34306 */ // Combiner Rule #316: ctlz_to_ctls
12948 /* 34306 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner126),
12949 /* 34309 */ // Label 609: @34309
12950 /* 34309 */ GIM_Reject,
12951 /* 34310 */ // Label 105: @34310
12952 /* 34310 */ GIM_Try, /*On fail goto*//*Label 610*/ GIMT_Encode4(34321), // Rule ID 316 //
12953 /* 34315 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
12954 /* 34318 */ // MIs[0] dst
12955 /* 34318 */ // No operand predicates
12956 /* 34318 */ // MIs[0] mi.src
12957 /* 34318 */ // No operand predicates
12958 /* 34318 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[1]]
12959 /* 34318 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
12960 /* 34321 */ // Label 610: @34321
12961 /* 34321 */ GIM_Try, /*On fail goto*//*Label 611*/ GIMT_Encode4(34332), // Rule ID 449 //
12962 /* 34326 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule317Enabled),
12963 /* 34329 */ // MIs[0] dst
12964 /* 34329 */ // No operand predicates
12965 /* 34329 */ // MIs[0] src
12966 /* 34329 */ // No operand predicates
12967 /* 34329 */ // Combiner Rule #317: ctlz_zero_poison_to_ctls
12968 /* 34329 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner126),
12969 /* 34332 */ // Label 611: @34332
12970 /* 34332 */ GIM_Reject,
12971 /* 34333 */ // Label 106: @34333
12972 /* 34333 */ GIM_Try, /*On fail goto*//*Label 612*/ GIMT_Encode4(34344), // Rule ID 319 //
12973 /* 34338 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
12974 /* 34341 */ // MIs[0] dst
12975 /* 34341 */ // No operand predicates
12976 /* 34341 */ // MIs[0] mi.src
12977 /* 34341 */ // No operand predicates
12978 /* 34341 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[4]]
12979 /* 34341 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
12980 /* 34344 */ // Label 612: @34344
12981 /* 34344 */ GIM_Reject,
12982 /* 34345 */ // Label 107: @34345
12983 /* 34345 */ GIM_Try, /*On fail goto*//*Label 613*/ GIMT_Encode4(34356), // Rule ID 321 //
12984 /* 34350 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
12985 /* 34353 */ // MIs[0] dst
12986 /* 34353 */ // No operand predicates
12987 /* 34353 */ // MIs[0] mi.src
12988 /* 34353 */ // No operand predicates
12989 /* 34353 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[6]]
12990 /* 34353 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
12991 /* 34356 */ // Label 613: @34356
12992 /* 34356 */ GIM_Reject,
12993 /* 34357 */ // Label 108: @34357
12994 /* 34357 */ GIM_Try, /*On fail goto*//*Label 614*/ GIMT_Encode4(34401), // Rule ID 271 //
12995 /* 34362 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule203Enabled),
12996 /* 34365 */ // MIs[0] d
12997 /* 34365 */ // No operand predicates
12998 /* 34365 */ // MIs[0] src
12999 /* 34365 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
13000 /* 34369 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
13001 /* 34373 */ // MIs[1] rev
13002 /* 34373 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
13003 /* 34377 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
13004 /* 34381 */ // MIs[2] val
13005 /* 34381 */ // No operand predicates
13006 /* 34381 */ // MIs[1] amt
13007 /* 34381 */ // No operand predicates
13008 /* 34381 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner39),
13009 /* 34385 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
13010 /* 34387 */ // Combiner Rule #203: bitreverse_lshr
13011 /* 34387 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
13012 /* 34390 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
13013 /* 34392 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
13014 /* 34396 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
13015 /* 34400 */ GIR_EraseRootFromParent_Done,
13016 /* 34401 */ // Label 614: @34401
13017 /* 34401 */ GIM_Try, /*On fail goto*//*Label 615*/ GIMT_Encode4(34445), // Rule ID 270 //
13018 /* 34406 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule202Enabled),
13019 /* 34409 */ // MIs[0] d
13020 /* 34409 */ // No operand predicates
13021 /* 34409 */ // MIs[0] src
13022 /* 34409 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
13023 /* 34413 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
13024 /* 34417 */ // MIs[1] rev
13025 /* 34417 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
13026 /* 34421 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
13027 /* 34425 */ // MIs[2] val
13028 /* 34425 */ // No operand predicates
13029 /* 34425 */ // MIs[1] amt
13030 /* 34425 */ // No operand predicates
13031 /* 34425 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner38),
13032 /* 34429 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
13033 /* 34431 */ // Combiner Rule #202: bitreverse_shl
13034 /* 34431 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_LSHR),
13035 /* 34434 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
13036 /* 34436 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
13037 /* 34440 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
13038 /* 34444 */ GIR_EraseRootFromParent_Done,
13039 /* 34445 */ // Label 615: @34445
13040 /* 34445 */ GIM_Try, /*On fail goto*//*Label 616*/ GIMT_Encode4(34456), // Rule ID 322 //
13041 /* 34450 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
13042 /* 34453 */ // MIs[0] dst
13043 /* 34453 */ // No operand predicates
13044 /* 34453 */ // MIs[0] mi.src
13045 /* 34453 */ // No operand predicates
13046 /* 34453 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[7]]
13047 /* 34453 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
13048 /* 34456 */ // Label 616: @34456
13049 /* 34456 */ GIM_Reject,
13050 /* 34457 */ // Label 109: @34457
13051 /* 34457 */ GIM_Try, /*On fail goto*//*Label 617*/ GIMT_Encode4(34478), // Rule ID 213 //
13052 /* 34462 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
13053 /* 34465 */ // MIs[0] dst
13054 /* 34465 */ // No operand predicates
13055 /* 34465 */ // MIs[0] src0
13056 /* 34465 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
13057 /* 34469 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
13058 /* 34473 */ // MIs[1] cst
13059 /* 34473 */ // No operand predicates
13060 /* 34473 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
13061 /* 34475 */ // Combiner Rule #163: constant_fold_fceil
13062 /* 34475 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
13063 /* 34478 */ // Label 617: @34478
13064 /* 34478 */ GIM_Reject,
13065 /* 34479 */ // Label 110: @34479
13066 /* 34479 */ GIM_Try, /*On fail goto*//*Label 618*/ GIMT_Encode4(34539), // Rule ID 484 //
13067 /* 34484 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule342Enabled),
13068 /* 34487 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmContract),
13069 /* 34493 */ // MIs[0] dst
13070 /* 34493 */ // No operand predicates
13071 /* 34493 */ // MIs[0] rcp
13072 /* 34493 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
13073 /* 34497 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC),
13074 /* 34501 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
13075 /* 34504 */ GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, GIMT_Encode2(Intrinsic::amdgcn_rcp),
13076 /* 34509 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::FmContract),
13077 /* 34515 */ // MIs[1] rcp
13078 /* 34515 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/1,
13079 /* 34520 */ // MIs[1] x
13080 /* 34520 */ // No operand predicates
13081 /* 34520 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
13082 /* 34522 */ // Combiner Rule #342: fsqrt_of_rcp_to_rsq
13083 /* 34522 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_INTRINSIC),
13084 /* 34525 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
13085 /* 34527 */ GIR_AddIntrinsicID, /*MI*/0, GIMT_Encode2(Intrinsic::amdgcn_rsq),
13086 /* 34531 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // x
13087 /* 34535 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
13088 /* 34538 */ GIR_EraseRootFromParent_Done,
13089 /* 34539 */ // Label 618: @34539
13090 /* 34539 */ GIM_Try, /*On fail goto*//*Label 619*/ GIMT_Encode4(34560), // Rule ID 209 //
13091 /* 34544 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
13092 /* 34547 */ // MIs[0] dst
13093 /* 34547 */ // No operand predicates
13094 /* 34547 */ // MIs[0] src0
13095 /* 34547 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
13096 /* 34551 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
13097 /* 34555 */ // MIs[1] cst
13098 /* 34555 */ // No operand predicates
13099 /* 34555 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
13100 /* 34557 */ // Combiner Rule #159: constant_fold_fsqrt
13101 /* 34557 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
13102 /* 34560 */ // Label 619: @34560
13103 /* 34560 */ GIM_Reject,
13104 /* 34561 */ // Label 111: @34561
13105 /* 34561 */ GIM_Try, /*On fail goto*//*Label 620*/ GIMT_Encode4(34582), // Rule ID 214 //
13106 /* 34566 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
13107 /* 34569 */ // MIs[0] dst
13108 /* 34569 */ // No operand predicates
13109 /* 34569 */ // MIs[0] src0
13110 /* 34569 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
13111 /* 34573 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
13112 /* 34577 */ // MIs[1] cst
13113 /* 34577 */ // No operand predicates
13114 /* 34577 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
13115 /* 34579 */ // Combiner Rule #164: constant_fold_ffloor
13116 /* 34579 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
13117 /* 34582 */ // Label 620: @34582
13118 /* 34582 */ GIM_Reject,
13119 /* 34583 */ // Label 112: @34583
13120 /* 34583 */ GIM_Try, /*On fail goto*//*Label 621*/ GIMT_Encode4(34604), // Rule ID 218 //
13121 /* 34588 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
13122 /* 34591 */ // MIs[0] dst
13123 /* 34591 */ // No operand predicates
13124 /* 34591 */ // MIs[0] src0
13125 /* 34591 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
13126 /* 34595 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
13127 /* 34599 */ // MIs[1] cst
13128 /* 34599 */ // No operand predicates
13129 /* 34599 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
13130 /* 34601 */ // Combiner Rule #168: constant_fold_frint
13131 /* 34601 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
13132 /* 34604 */ // Label 621: @34604
13133 /* 34604 */ GIM_Reject,
13134 /* 34605 */ // Label 113: @34605
13135 /* 34605 */ GIM_Try, /*On fail goto*//*Label 622*/ GIMT_Encode4(34626), // Rule ID 219 //
13136 /* 34610 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
13137 /* 34613 */ // MIs[0] dst
13138 /* 34613 */ // No operand predicates
13139 /* 34613 */ // MIs[0] src0
13140 /* 34613 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
13141 /* 34617 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
13142 /* 34621 */ // MIs[1] cst
13143 /* 34621 */ // No operand predicates
13144 /* 34621 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
13145 /* 34623 */ // Combiner Rule #169: constant_fold_fnearbyint
13146 /* 34623 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
13147 /* 34626 */ // Label 622: @34626
13148 /* 34626 */ GIM_Reject,
13149 /* 34627 */ // Label 114: @34627
13150 /* 34627 */ GIM_Try, /*On fail goto*//*Label 623*/ GIMT_Encode4(34638), // Rule ID 475 //
13151 /* 34632 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule336Enabled),
13152 /* 34635 */ // MIs[0] dst
13153 /* 34635 */ // No operand predicates
13154 /* 34635 */ // MIs[0] cvt_f32_ubyteN.src
13155 /* 34635 */ // No operand predicates
13156 /* 34635 */ // Combiner Rule #336: cvt_f32_ubyteN @ [cvt_f32_ubyteN[0]]
13157 /* 34635 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132),
13158 /* 34638 */ // Label 623: @34638
13159 /* 34638 */ GIM_Reject,
13160 /* 34639 */ // Label 115: @34639
13161 /* 34639 */ GIM_Try, /*On fail goto*//*Label 624*/ GIMT_Encode4(34650), // Rule ID 476 //
13162 /* 34644 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule336Enabled),
13163 /* 34647 */ // MIs[0] dst
13164 /* 34647 */ // No operand predicates
13165 /* 34647 */ // MIs[0] cvt_f32_ubyteN.src
13166 /* 34647 */ // No operand predicates
13167 /* 34647 */ // Combiner Rule #336: cvt_f32_ubyteN @ [cvt_f32_ubyteN[1]]
13168 /* 34647 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132),
13169 /* 34650 */ // Label 624: @34650
13170 /* 34650 */ GIM_Reject,
13171 /* 34651 */ // Label 116: @34651
13172 /* 34651 */ GIM_Try, /*On fail goto*//*Label 625*/ GIMT_Encode4(34662), // Rule ID 477 //
13173 /* 34656 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule336Enabled),
13174 /* 34659 */ // MIs[0] dst
13175 /* 34659 */ // No operand predicates
13176 /* 34659 */ // MIs[0] cvt_f32_ubyteN.src
13177 /* 34659 */ // No operand predicates
13178 /* 34659 */ // Combiner Rule #336: cvt_f32_ubyteN @ [cvt_f32_ubyteN[2]]
13179 /* 34659 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132),
13180 /* 34662 */ // Label 625: @34662
13181 /* 34662 */ GIM_Reject,
13182 /* 34663 */ // Label 117: @34663
13183 /* 34663 */ GIM_Try, /*On fail goto*//*Label 626*/ GIMT_Encode4(34674), // Rule ID 478 //
13184 /* 34668 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule336Enabled),
13185 /* 34671 */ // MIs[0] dst
13186 /* 34671 */ // No operand predicates
13187 /* 34671 */ // MIs[0] cvt_f32_ubyteN.src
13188 /* 34671 */ // No operand predicates
13189 /* 34671 */ // Combiner Rule #336: cvt_f32_ubyteN @ [cvt_f32_ubyteN[3]]
13190 /* 34671 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132),
13191 /* 34674 */ // Label 626: @34674
13192 /* 34674 */ GIM_Reject,
13193 /* 34675 */ // Label 118: @34675
13194 /* 34675 */ GIM_Reject,
13195 /* 34676 */ }; // Size: 34676 bytes
13196 return MatchTable0;
13197}
13198#undef GIMT_Encode2
13199#undef GIMT_Encode4
13200#undef GIMT_Encode8
13201
13202
13203#endif // GET_GICOMBINER_IMPL
13204
13205#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
13206
13207AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
13208AvailableFunctionFeatures()
13209
13210#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
13211
13212#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
13213
13214, State(0),
13215ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
13216
13217#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
13218
13219