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 293; // "smulu64"
45 case 9: // 7 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 267; // "add_shift"
52 case 'c': // 1 string to match.
53 if (memcmp(RuleIdentifier.data()+1, "opy_prop", 8) != 0)
54 break;
55 return 19; // "copy_prop"
56 case 'm': // 3 strings to match.
57 switch (RuleIdentifier[1]) {
58 default: break;
59 case 'a': // 1 string to match.
60 if (memcmp(RuleIdentifier.data()+2, "tch_ors", 7) != 0)
61 break;
62 return 230; // "match_ors"
63 case 'u': // 2 strings to match.
64 if (memcmp(RuleIdentifier.data()+2, "lo_by_", 6) != 0)
65 break;
66 switch (RuleIdentifier[8]) {
67 default: break;
68 case '0': // 1 string to match.
69 return 169; // "mulo_by_0"
70 case '2': // 1 string to match.
71 return 168; // "mulo_by_2"
72 }
73 break;
74 }
75 break;
76 case 'n': // 1 string to match.
77 if (memcmp(RuleIdentifier.data()+1, "neg_zext", 8) != 0)
78 break;
79 return 241; // "nneg_zext"
80 case 'o': // 1 string to match.
81 if (memcmp(RuleIdentifier.data()+1, "r_xor_or", 8) != 0)
82 break;
83 return 235; // "or_xor_or"
84 }
85 break;
86 case 10: // 11 strings to match.
87 switch (RuleIdentifier[0]) {
88 default: break;
89 case 'S': // 2 strings to match.
90 if (memcmp(RuleIdentifier.data()+1, "ub", 2) != 0)
91 break;
92 switch (RuleIdentifier[3]) {
93 default: break;
94 case 'S': // 1 string to match.
95 if (memcmp(RuleIdentifier.data()+4, "maxSub", 6) != 0)
96 break;
97 return 272; // "SubSmaxSub"
98 case 'U': // 1 string to match.
99 if (memcmp(RuleIdentifier.data()+4, "maxSub", 6) != 0)
100 break;
101 return 273; // "SubUmaxSub"
102 }
103 break;
104 case 'i': // 1 string to match.
105 if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i", 9) != 0)
106 break;
107 return 96; // "i2p_to_p2i"
108 case 'm': // 2 strings to match.
109 switch (RuleIdentifier[1]) {
110 default: break;
111 case 'a': // 1 string to match.
112 if (memcmp(RuleIdentifier.data()+2, "tch_ands", 8) != 0)
113 break;
114 return 229; // "match_ands"
115 case 'u': // 1 string to match.
116 if (memcmp(RuleIdentifier.data()+2, "l_to_shl", 8) != 0)
117 break;
118 return 20; // "mul_to_shl"
119 }
120 break;
121 case 'o': // 1 string to match.
122 if (memcmp(RuleIdentifier.data()+1, "r_xor_and", 9) != 0)
123 break;
124 return 236; // "or_xor_and"
125 case 'p': // 1 string to match.
126 if (memcmp(RuleIdentifier.data()+1, "2i_to_i2p", 9) != 0)
127 break;
128 return 95; // "p2i_to_i2p"
129 case 's': // 3 strings to match.
130 switch (RuleIdentifier[1]) {
131 default: break;
132 case 'e': // 2 strings to match.
133 switch (RuleIdentifier[2]) {
134 default: break;
135 case 'l': // 1 string to match.
136 if (memcmp(RuleIdentifier.data()+3, "ect_not", 7) != 0)
137 break;
138 return 137; // "select_not"
139 case 'x': // 1 string to match.
140 if (memcmp(RuleIdentifier.data()+3, "t_trunc", 7) != 0)
141 break;
142 return 239; // "sext_trunc"
143 }
144 break;
145 case 'u': // 1 string to match.
146 if (memcmp(RuleIdentifier.data()+2, "b_to_add", 8) != 0)
147 break;
148 return 21; // "sub_to_add"
149 }
150 break;
151 case 'z': // 1 string to match.
152 if (memcmp(RuleIdentifier.data()+1, "ext_trunc", 9) != 0)
153 break;
154 return 240; // "zext_trunc"
155 }
156 break;
157 case 11: // 8 strings to match.
158 switch (RuleIdentifier[0]) {
159 default: break;
160 case 'a': // 1 string to match.
161 if (memcmp(RuleIdentifier.data()+1, "dd_sub_reg", 10) != 0)
162 break;
163 return 101; // "add_sub_reg"
164 case 'm': // 1 string to match.
165 if (memcmp(RuleIdentifier.data()+1, "atch_addos", 10) != 0)
166 break;
167 return 256; // "match_addos"
168 case 's': // 1 string to match.
169 if (memcmp(RuleIdentifier.data()+1, "ub_add_reg", 10) != 0)
170 break;
171 return 224; // "sub_add_reg"
172 case 't': // 4 strings to match.
173 if (memcmp(RuleIdentifier.data()+1, "runc_", 5) != 0)
174 break;
175 switch (RuleIdentifier[6]) {
176 default: break;
177 case 's': // 3 strings to match.
178 switch (RuleIdentifier[7]) {
179 default: break;
180 case 'h': // 1 string to match.
181 if (memcmp(RuleIdentifier.data()+8, "ift", 3) != 0)
182 break;
183 return 148; // "trunc_shift"
184 case 's': // 2 strings to match.
185 if (memcmp(RuleIdentifier.data()+8, "at", 2) != 0)
186 break;
187 switch (RuleIdentifier[10]) {
188 default: break;
189 case 's': // 1 string to match.
190 return 258; // "trunc_ssats"
191 case 'u': // 1 string to match.
192 return 259; // "trunc_ssatu"
193 }
194 break;
195 }
196 break;
197 case 'u': // 1 string to match.
198 if (memcmp(RuleIdentifier.data()+7, "satu", 4) != 0)
199 break;
200 return 260; // "trunc_usatu"
201 }
202 break;
203 case 'u': // 1 string to match.
204 if (memcmp(RuleIdentifier.data()+1, "nmerge_cst", 10) != 0)
205 break;
206 return 249; // "unmerge_cst"
207 }
208 break;
209 case 12: // 12 strings to match.
210 switch (RuleIdentifier[0]) {
211 default: break;
212 case 'A': // 1 string to match.
213 if (memcmp(RuleIdentifier.data()+1, "PlusBMinusB", 11) != 0)
214 break;
215 return 4; // "APlusBMinusB"
216 case 'B': // 1 string to match.
217 if (memcmp(RuleIdentifier.data()+1, "MinusAPlusA", 11) != 0)
218 break;
219 return 5; // "BMinusAPlusA"
220 case 'a': // 1 string to match.
221 if (memcmp(RuleIdentifier.data()+1, "dde_to_addo", 11) != 0)
222 break;
223 return 170; // "adde_to_addo"
224 case 'c': // 1 string to match.
225 if (memcmp(RuleIdentifier.data()+1, "tlz_to_ctls", 11) != 0)
226 break;
227 return 263; // "ctlz_to_ctls"
228 case 'f': // 1 string to match.
229 if (memcmp(RuleIdentifier.data()+1, "sub_to_fneg", 11) != 0)
230 break;
231 return 226; // "fsub_to_fneg"
232 case 'm': // 1 string to match.
233 if (memcmp(RuleIdentifier.data()+1, "ulh_to_lshr", 11) != 0)
234 break;
235 return 200; // "mulh_to_lshr"
236 case 'n': // 1 string to match.
237 if (memcmp(RuleIdentifier.data()+1, "ot_cmp_fold", 11) != 0)
238 break;
239 return 149; // "not_cmp_fold"
240 case 'r': // 1 string to match.
241 if (memcmp(RuleIdentifier.data()+1, "edundant_or", 11) != 0)
242 break;
243 return 144; // "redundant_or"
244 case 's': // 2 strings to match.
245 switch (RuleIdentifier[1]) {
246 default: break;
247 case 'd': // 1 string to match.
248 if (memcmp(RuleIdentifier.data()+2, "iv_by_pow2", 10) != 0)
249 break;
250 return 220; // "sdiv_by_pow2"
251 case 'e': // 1 string to match.
252 if (memcmp(RuleIdentifier.data()+2, "xt_of_sext", 10) != 0)
253 break;
254 return 53; // "sext_of_sext"
255 }
256 break;
257 case 'u': // 1 string to match.
258 if (memcmp(RuleIdentifier.data()+1, "div_by_pow2", 11) != 0)
259 break;
260 return 219; // "udiv_by_pow2"
261 case 'z': // 1 string to match.
262 if (memcmp(RuleIdentifier.data()+1, "ext_of_zext", 11) != 0)
263 break;
264 return 51; // "zext_of_zext"
265 }
266 break;
267 case 13: // 19 strings to match.
268 switch (RuleIdentifier[0]) {
269 default: break;
270 case 'A': // 2 strings to match.
271 if (memcmp(RuleIdentifier.data()+1, "MinusBMinus", 11) != 0)
272 break;
273 switch (RuleIdentifier[12]) {
274 default: break;
275 case 'A': // 1 string to match.
276 return 12; // "AMinusBMinusA"
277 case 'C': // 1 string to match.
278 return 9; // "AMinusBMinusC"
279 }
280 break;
281 case 'a': // 1 string to match.
282 if (memcmp(RuleIdentifier.data()+1, "dd_of_vscale", 12) != 0)
283 break;
284 return 42; // "add_of_vscale"
285 case 'f': // 1 string to match.
286 if (memcmp(RuleIdentifier.data()+1, "oldable_fneg", 12) != 0)
287 break;
288 return 285; // "foldable_fneg"
289 case 'l': // 1 string to match.
290 if (memcmp(RuleIdentifier.data()+1, "oad_and_mask", 12) != 0)
291 break;
292 return 74; // "load_and_mask"
293 case 'm': // 3 strings to match.
294 switch (RuleIdentifier[1]) {
295 default: break;
296 case 'a': // 1 string to match.
297 if (memcmp(RuleIdentifier.data()+2, "tch_selects", 11) != 0)
298 break;
299 return 135; // "match_selects"
300 case 'e': // 1 string to match.
301 if (memcmp(RuleIdentifier.data()+2, "rge_unmerge", 11) != 0)
302 break;
303 return 248; // "merge_unmerge"
304 case 'u': // 1 string to match.
305 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
306 break;
307 return 43; // "mul_of_vscale"
308 }
309 break;
310 case 'r': // 1 string to match.
311 if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
312 break;
313 return 143; // "redundant_and"
314 case 's': // 6 strings to match.
315 switch (RuleIdentifier[1]) {
316 default: break;
317 case 'a': // 1 string to match.
318 if (memcmp(RuleIdentifier.data()+2, "me_val_zero", 11) != 0)
319 break;
320 return 92; // "same_val_zero"
321 case 'd': // 1 string to match.
322 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
323 break;
324 return 222; // "sdiv_by_const"
325 case 'h': // 1 string to match.
326 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
327 break;
328 return 44; // "shl_of_vscale"
329 case 'r': // 1 string to match.
330 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
331 break;
332 return 218; // "srem_by_const"
333 case 'u': // 2 strings to match.
334 if (memcmp(RuleIdentifier.data()+2, "b_", 2) != 0)
335 break;
336 switch (RuleIdentifier[4]) {
337 default: break;
338 case 'm': // 1 string to match.
339 if (memcmp(RuleIdentifier.data()+5, "inus_one", 8) != 0)
340 break;
341 return 270; // "sub_minus_one"
342 case 'o': // 1 string to match.
343 if (memcmp(RuleIdentifier.data()+5, "f_vscale", 8) != 0)
344 break;
345 return 45; // "sub_of_vscale"
346 }
347 break;
348 }
349 break;
350 case 'u': // 4 strings to match.
351 switch (RuleIdentifier[1]) {
352 default: break;
353 case 'd': // 1 string to match.
354 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
355 break;
356 return 221; // "udiv_by_const"
357 case 'n': // 2 strings to match.
358 if (memcmp(RuleIdentifier.data()+2, "merge_", 6) != 0)
359 break;
360 switch (RuleIdentifier[8]) {
361 default: break;
362 case 'm': // 1 string to match.
363 if (memcmp(RuleIdentifier.data()+9, "erge", 4) != 0)
364 break;
365 return 247; // "unmerge_merge"
366 case 'u': // 1 string to match.
367 if (memcmp(RuleIdentifier.data()+9, "ndef", 4) != 0)
368 break;
369 return 250; // "unmerge_undef"
370 }
371 break;
372 case 'r': // 1 string to match.
373 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
374 break;
375 return 217; // "urem_by_const"
376 }
377 break;
378 }
379 break;
380 case 14: // 19 strings to match.
381 switch (RuleIdentifier[0]) {
382 default: break;
383 case 'A': // 2 strings to match.
384 switch (RuleIdentifier[1]) {
385 default: break;
386 case 'M': // 1 string to match.
387 if (memcmp(RuleIdentifier.data()+2, "inusC1PlusC2", 12) != 0)
388 break;
389 return 18; // "AMinusC1PlusC2"
390 case 'P': // 1 string to match.
391 if (memcmp(RuleIdentifier.data()+2, "lusC1MinusC2", 12) != 0)
392 break;
393 return 14; // "APlusC1MinusC2"
394 }
395 break;
396 case 'C': // 1 string to match.
397 if (memcmp(RuleIdentifier.data()+1, "2MinusAPlusC1", 13) != 0)
398 break;
399 return 15; // "C2MinusAPlusC1"
400 case 'N': // 1 string to match.
401 if (memcmp(RuleIdentifier.data()+1, "otAPlusNegOne", 13) != 0)
402 break;
403 return 13; // "NotAPlusNegOne"
404 case 'a': // 2 strings to match.
405 if (memcmp(RuleIdentifier.data()+1, "nyext_of_", 9) != 0)
406 break;
407 switch (RuleIdentifier[10]) {
408 default: break;
409 case 's': // 1 string to match.
410 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
411 break;
412 return 57; // "anyext_of_sext"
413 case 'z': // 1 string to match.
414 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
415 break;
416 return 56; // "anyext_of_zext"
417 }
418 break;
419 case 'b': // 3 strings to match.
420 if (RuleIdentifier[1] != 'i')
421 break;
422 switch (RuleIdentifier[2]) {
423 default: break;
424 case 'n': // 2 strings to match.
425 if (memcmp(RuleIdentifier.data()+3, "op_", 3) != 0)
426 break;
427 switch (RuleIdentifier[6]) {
428 default: break;
429 case 's': // 1 string to match.
430 if (memcmp(RuleIdentifier.data()+7, "ame_val", 7) != 0)
431 break;
432 return 91; // "binop_same_val"
433 case 'w': // 1 string to match.
434 if (memcmp(RuleIdentifier.data()+7, "ith_neg", 7) != 0)
435 break;
436 return 269; // "binop_with_neg"
437 }
438 break;
439 case 't': // 1 string to match.
440 if (memcmp(RuleIdentifier.data()+3, "reverse_shl", 11) != 0)
441 break;
442 return 186; // "bitreverse_shl"
443 }
444 break;
445 case 'c': // 1 string to match.
446 if (memcmp(RuleIdentifier.data()+1, "vt_f32_ubyteN", 13) != 0)
447 break;
448 return 283; // "cvt_f32_ubyteN"
449 case 'f': // 2 strings to match.
450 switch (RuleIdentifier[1]) {
451 default: break;
452 case 'a': // 1 string to match.
453 if (memcmp(RuleIdentifier.data()+2, "bs_fneg_fold", 12) != 0)
454 break;
455 return 199; // "fabs_fneg_fold"
456 case 'n': // 1 string to match.
457 if (memcmp(RuleIdentifier.data()+2, "eg_fneg_fold", 12) != 0)
458 break;
459 return 98; // "fneg_fneg_fold"
460 }
461 break;
462 case 'm': // 1 string to match.
463 if (memcmp(RuleIdentifier.data()+1, "ul_by_neg_one", 13) != 0)
464 break;
465 return 23; // "mul_by_neg_one"
466 case 'r': // 1 string to match.
467 if (memcmp(RuleIdentifier.data()+1, "eassoc_ptradd", 13) != 0)
468 break;
469 return 115; // "reassoc_ptradd"
470 case 's': // 3 strings to match.
471 switch (RuleIdentifier[1]) {
472 default: break;
473 case 'e': // 2 strings to match.
474 switch (RuleIdentifier[2]) {
475 default: break;
476 case 'l': // 1 string to match.
477 if (memcmp(RuleIdentifier.data()+3, "ect_of_zext", 11) != 0)
478 break;
479 return 59; // "select_of_zext"
480 case 'x': // 1 string to match.
481 if (memcmp(RuleIdentifier.data()+3, "t_of_anyext", 11) != 0)
482 break;
483 return 54; // "sext_of_anyext"
484 }
485 break;
486 case 'h': // 1 string to match.
487 if (memcmp(RuleIdentifier.data()+2, "ifts_too_big", 12) != 0)
488 break;
489 return 114; // "shifts_too_big"
490 }
491 break;
492 case 'u': // 1 string to match.
493 if (memcmp(RuleIdentifier.data()+1, "char_to_float", 13) != 0)
494 break;
495 return 282; // "uchar_to_float"
496 case 'z': // 1 string to match.
497 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
498 break;
499 return 52; // "zext_of_anyext"
500 }
501 break;
502 case 15: // 17 strings to match.
503 switch (RuleIdentifier[0]) {
504 default: break;
505 case 'A': // 2 strings to match.
506 switch (RuleIdentifier[1]) {
507 default: break;
508 case 'M': // 1 string to match.
509 if (memcmp(RuleIdentifier.data()+2, "inusC1MinusC2", 13) != 0)
510 break;
511 return 16; // "AMinusC1MinusC2"
512 case 'P': // 1 string to match.
513 if (memcmp(RuleIdentifier.data()+2, "lusZeroMinusB", 13) != 0)
514 break;
515 return 3; // "APlusZeroMinusB"
516 }
517 break;
518 case 'C': // 1 string to match.
519 if (memcmp(RuleIdentifier.data()+1, "1Minus2MinusC2", 14) != 0)
520 break;
521 return 17; // "C1Minus2MinusC2"
522 case 'G': // 1 string to match.
523 if (memcmp(RuleIdentifier.data()+1, "_FMA_fneg_fneg", 14) != 0)
524 break;
525 return 205; // "G_FMA_fneg_fneg"
526 case 'Z': // 1 string to match.
527 if (memcmp(RuleIdentifier.data()+1, "eroMinusAPlusB", 14) != 0)
528 break;
529 return 2; // "ZeroMinusAPlusB"
530 case 'a': // 5 strings to match.
531 switch (RuleIdentifier[1]) {
532 default: break;
533 case 'n': // 3 strings to match.
534 if (memcmp(RuleIdentifier.data()+2, "onymous_5576", 12) != 0)
535 break;
536 switch (RuleIdentifier[14]) {
537 default: break;
538 case '7': // 1 string to match.
539 return 300; // "anonymous_55767"
540 case '8': // 1 string to match.
541 return 301; // "anonymous_55768"
542 case '9': // 1 string to match.
543 return 302; // "anonymous_55769"
544 }
545 break;
546 case 'v': // 2 strings to match.
547 if (memcmp(RuleIdentifier.data()+2, "gceil_", 6) != 0)
548 break;
549 switch (RuleIdentifier[8]) {
550 default: break;
551 case 's': // 1 string to match.
552 if (memcmp(RuleIdentifier.data()+9, "_match", 6) != 0)
553 break;
554 return 277; // "avgceil_s_match"
555 case 'u': // 1 string to match.
556 if (memcmp(RuleIdentifier.data()+9, "_match", 6) != 0)
557 break;
558 return 276; // "avgceil_u_match"
559 }
560 break;
561 }
562 break;
563 case 'b': // 1 string to match.
564 if (memcmp(RuleIdentifier.data()+1, "itreverse_lshr", 14) != 0)
565 break;
566 return 187; // "bitreverse_lshr"
567 case 'e': // 1 string to match.
568 if (memcmp(RuleIdentifier.data()+1, "xtending_loads", 14) != 0)
569 break;
570 return 73; // "extending_loads"
571 case 'i': // 1 string to match.
572 if (memcmp(RuleIdentifier.data()+1, "dempotent_prop", 14) != 0)
573 break;
574 return 24; // "idempotent_prop"
575 case 'l': // 1 string to match.
576 if (memcmp(RuleIdentifier.data()+1, "oad_or_combine", 14) != 0)
577 break;
578 return 177; // "load_or_combine"
579 case 'n': // 1 string to match.
580 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_or", 14) != 0)
581 break;
582 return 67; // "narrow_binop_or"
583 case 'o': // 1 string to match.
584 if (memcmp(RuleIdentifier.data()+1, "verlapping_and", 14) != 0)
585 break;
586 return 167; // "overlapping_and"
587 case 'z': // 1 string to match.
588 if (memcmp(RuleIdentifier.data()+1, "ext_trunc_fold", 14) != 0)
589 break;
590 return 146; // "zext_trunc_fold"
591 }
592 break;
593 case 16: // 22 strings to match.
594 switch (RuleIdentifier[0]) {
595 default: break;
596 case 'A': // 1 string to match.
597 if (memcmp(RuleIdentifier.data()+1, "MinusZeroMinusB", 15) != 0)
598 break;
599 return 11; // "AMinusZeroMinusB"
600 case 'G': // 3 strings to match.
601 if (memcmp(RuleIdentifier.data()+1, "_F", 2) != 0)
602 break;
603 switch (RuleIdentifier[3]) {
604 default: break;
605 case 'D': // 1 string to match.
606 if (memcmp(RuleIdentifier.data()+4, "IV_fneg_fneg", 12) != 0)
607 break;
608 return 203; // "G_FDIV_fneg_fneg"
609 case 'M': // 2 strings to match.
610 switch (RuleIdentifier[4]) {
611 default: break;
612 case 'A': // 1 string to match.
613 if (memcmp(RuleIdentifier.data()+5, "D_fneg_fneg", 11) != 0)
614 break;
615 return 204; // "G_FMAD_fneg_fneg"
616 case 'U': // 1 string to match.
617 if (memcmp(RuleIdentifier.data()+5, "L_fneg_fneg", 11) != 0)
618 break;
619 return 202; // "G_FMUL_fneg_fneg"
620 }
621 break;
622 }
623 break;
624 case 'a': // 3 strings to match.
625 switch (RuleIdentifier[1]) {
626 default: break;
627 case 'n': // 1 string to match.
628 if (memcmp(RuleIdentifier.data()+2, "yext_of_anyext", 14) != 0)
629 break;
630 return 55; // "anyext_of_anyext"
631 case 'v': // 2 strings to match.
632 if (memcmp(RuleIdentifier.data()+2, "gfloor_", 7) != 0)
633 break;
634 switch (RuleIdentifier[9]) {
635 default: break;
636 case 's': // 1 string to match.
637 if (memcmp(RuleIdentifier.data()+10, "_match", 6) != 0)
638 break;
639 return 275; // "avgfloor_s_match"
640 case 'u': // 1 string to match.
641 if (memcmp(RuleIdentifier.data()+10, "_match", 6) != 0)
642 break;
643 return 274; // "avgfloor_u_match"
644 }
645 break;
646 }
647 break;
648 case 'c': // 1 string to match.
649 if (memcmp(RuleIdentifier.data()+1, "ommute_shift_or", 15) != 0)
650 break;
651 return 189; // "commute_shift_or"
652 case 'n': // 5 strings to match.
653 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_", 12) != 0)
654 break;
655 switch (RuleIdentifier[13]) {
656 default: break;
657 case 'a': // 2 strings to match.
658 switch (RuleIdentifier[14]) {
659 default: break;
660 case 'd': // 1 string to match.
661 if (RuleIdentifier[15] != 'd')
662 break;
663 return 63; // "narrow_binop_add"
664 case 'n': // 1 string to match.
665 if (RuleIdentifier[15] != 'd')
666 break;
667 return 66; // "narrow_binop_and"
668 }
669 break;
670 case 'm': // 1 string to match.
671 if (memcmp(RuleIdentifier.data()+14, "ul", 2) != 0)
672 break;
673 return 65; // "narrow_binop_mul"
674 case 's': // 1 string to match.
675 if (memcmp(RuleIdentifier.data()+14, "ub", 2) != 0)
676 break;
677 return 64; // "narrow_binop_sub"
678 case 'x': // 1 string to match.
679 if (memcmp(RuleIdentifier.data()+14, "or", 2) != 0)
680 break;
681 return 68; // "narrow_binop_xor"
682 }
683 break;
684 case 'o': // 1 string to match.
685 if (memcmp(RuleIdentifier.data()+1, "r_and_xor_to_or", 15) != 0)
686 break;
687 return 231; // "or_and_xor_to_or"
688 case 's': // 5 strings to match.
689 switch (RuleIdentifier[1]) {
690 default: break;
691 case 'e': // 3 strings to match.
692 if (memcmp(RuleIdentifier.data()+2, "lect_", 5) != 0)
693 break;
694 switch (RuleIdentifier[7]) {
695 default: break;
696 case 'o': // 1 string to match.
697 if (memcmp(RuleIdentifier.data()+8, "f_anyext", 8) != 0)
698 break;
699 return 60; // "select_of_anyext"
700 case 't': // 1 string to match.
701 if (memcmp(RuleIdentifier.data()+8, "o_minmax", 8) != 0)
702 break;
703 return 225; // "select_to_minmax"
704 case 'u': // 1 string to match.
705 if (memcmp(RuleIdentifier.data()+8, "ndef_cmp", 8) != 0)
706 break;
707 return 130; // "select_undef_cmp"
708 }
709 break;
710 case 'u': // 2 strings to match.
711 if (memcmp(RuleIdentifier.data()+2, "b_o", 3) != 0)
712 break;
713 switch (RuleIdentifier[5]) {
714 default: break;
715 case 'f': // 1 string to match.
716 if (memcmp(RuleIdentifier.data()+6, "_mul_const", 10) != 0)
717 break;
718 return 271; // "sub_of_mul_const"
719 case 'n': // 1 string to match.
720 if (memcmp(RuleIdentifier.data()+6, "e_from_sub", 10) != 0)
721 break;
722 return 268; // "sub_one_from_sub"
723 }
724 break;
725 }
726 break;
727 case 't': // 2 strings to match.
728 if (memcmp(RuleIdentifier.data()+1, "runcate_of_", 11) != 0)
729 break;
730 switch (RuleIdentifier[12]) {
731 default: break;
732 case 's': // 1 string to match.
733 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
734 break;
735 return 49; // "truncate_of_sext"
736 case 'z': // 1 string to match.
737 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
738 break;
739 return 48; // "truncate_of_zext"
740 }
741 break;
742 case 'u': // 1 string to match.
743 if (memcmp(RuleIdentifier.data()+1, "ndef_to_fp_zero", 15) != 0)
744 break;
745 return 76; // "undef_to_fp_zero"
746 }
747 break;
748 case 17: // 20 strings to match.
749 switch (RuleIdentifier[0]) {
750 default: break;
751 case 'A': // 2 strings to match.
752 if (memcmp(RuleIdentifier.data()+1, "PlusBMinus", 10) != 0)
753 break;
754 switch (RuleIdentifier[11]) {
755 default: break;
756 case 'A': // 1 string to match.
757 if (memcmp(RuleIdentifier.data()+12, "plusC", 5) != 0)
758 break;
759 return 8; // "APlusBMinusAplusC"
760 case 'C': // 1 string to match.
761 if (memcmp(RuleIdentifier.data()+12, "PlusA", 5) != 0)
762 break;
763 return 10; // "APlusBMinusCPlusA"
764 }
765 break;
766 case 'a': // 3 strings to match.
767 switch (RuleIdentifier[1]) {
768 default: break;
769 case 'd': // 1 string to match.
770 if (memcmp(RuleIdentifier.data()+2, "d_p2i_to_ptradd", 15) != 0)
771 break;
772 return 22; // "add_p2i_to_ptradd"
773 case 'n': // 2 strings to match.
774 switch (RuleIdentifier[2]) {
775 default: break;
776 case 'd': // 1 string to match.
777 if (memcmp(RuleIdentifier.data()+3, "_xor_or_to_and", 14) != 0)
778 break;
779 return 233; // "and_xor_or_to_and"
780 case 'y': // 1 string to match.
781 if (memcmp(RuleIdentifier.data()+3, "ext_trunc_fold", 14) != 0)
782 break;
783 return 97; // "anyext_trunc_fold"
784 }
785 break;
786 }
787 break;
788 case 'c': // 5 strings to match.
789 switch (RuleIdentifier[1]) {
790 default: break;
791 case 'a': // 2 strings to match.
792 if (memcmp(RuleIdentifier.data()+2, "nonicalize_", 11) != 0)
793 break;
794 switch (RuleIdentifier[13]) {
795 default: break;
796 case 'f': // 1 string to match.
797 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
798 break;
799 return 119; // "canonicalize_fcmp"
800 case 'i': // 1 string to match.
801 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
802 break;
803 return 118; // "canonicalize_icmp"
804 }
805 break;
806 case 'o': // 3 strings to match.
807 switch (RuleIdentifier[2]) {
808 default: break;
809 case 'm': // 2 strings to match.
810 switch (RuleIdentifier[3]) {
811 default: break;
812 case 'b': // 1 string to match.
813 if (memcmp(RuleIdentifier.data()+4, "ine_or_of_and", 13) != 0)
814 break;
815 return 278; // "combine_or_of_and"
816 case 'm': // 1 string to match.
817 if (memcmp(RuleIdentifier.data()+4, "ute_shift_add", 13) != 0)
818 break;
819 return 188; // "commute_shift_add"
820 }
821 break;
822 case 'n': // 1 string to match.
823 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fma", 14) != 0)
824 break;
825 return 196; // "constant_fold_fma"
826 }
827 break;
828 }
829 break;
830 case 'd': // 1 string to match.
831 if (memcmp(RuleIdentifier.data()+1, "iv_rem_to_divrem", 16) != 0)
832 break;
833 return 178; // "div_rem_to_divrem"
834 case 'e': // 1 string to match.
835 if (memcmp(RuleIdentifier.data()+1, "rase_undef_store", 16) != 0)
836 break;
837 return 86; // "erase_undef_store"
838 case 'f': // 1 string to match.
839 if (memcmp(RuleIdentifier.data()+1, "old_fabs_fptrunc", 16) != 0)
840 break;
841 return 286; // "fold_fabs_fptrunc"
842 case 'p': // 1 string to match.
843 if (memcmp(RuleIdentifier.data()+1, "tr_add_with_zero", 16) != 0)
844 break;
845 return 174; // "ptr_add_with_zero"
846 case 's': // 4 strings to match.
847 switch (RuleIdentifier[1]) {
848 default: break;
849 case 'e': // 2 strings to match.
850 if (memcmp(RuleIdentifier.data()+2, "lect_", 5) != 0)
851 break;
852 switch (RuleIdentifier[7]) {
853 default: break;
854 case 't': // 1 string to match.
855 if (memcmp(RuleIdentifier.data()+8, "o_iminmax", 9) != 0)
856 break;
857 return 134; // "select_to_iminmax"
858 case 'z': // 1 string to match.
859 if (memcmp(RuleIdentifier.data()+8, "ero_false", 9) != 0)
860 break;
861 return 136; // "select_zero_false"
862 }
863 break;
864 case 'h': // 1 string to match.
865 if (memcmp(RuleIdentifier.data()+2, "ift_immed_chain", 15) != 0)
866 break;
867 return 175; // "shift_immed_chain"
868 case 'r': // 1 string to match.
869 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
870 break;
871 return 216; // "srem_pow2_to_mask"
872 }
873 break;
874 case 'u': // 2 strings to match.
875 switch (RuleIdentifier[1]) {
876 default: break;
877 case 'n': // 1 string to match.
878 if (memcmp(RuleIdentifier.data()+2, "def_to_int_zero", 15) != 0)
879 break;
880 return 77; // "undef_to_int_zero"
881 case 'r': // 1 string to match.
882 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
883 break;
884 return 145; // "urem_pow2_to_mask"
885 }
886 break;
887 }
888 break;
889 case 18: // 13 strings to match.
890 switch (RuleIdentifier[0]) {
891 default: break;
892 case 'A': // 3 strings to match.
893 switch (RuleIdentifier[1]) {
894 default: break;
895 case 'M': // 2 strings to match.
896 if (memcmp(RuleIdentifier.data()+2, "inusBPlus", 9) != 0)
897 break;
898 switch (RuleIdentifier[11]) {
899 default: break;
900 case 'B': // 1 string to match.
901 if (memcmp(RuleIdentifier.data()+12, "MinusC", 6) != 0)
902 break;
903 return 7; // "AMinusBPlusBMinusC"
904 case 'C': // 1 string to match.
905 if (memcmp(RuleIdentifier.data()+12, "MinusA", 6) != 0)
906 break;
907 return 6; // "AMinusBPlusCMinusA"
908 }
909 break;
910 case 'P': // 1 string to match.
911 if (memcmp(RuleIdentifier.data()+2, "lusBMinusCMinusB", 16) != 0)
912 break;
913 return 0; // "APlusBMinusCMinusB"
914 }
915 break;
916 case 'b': // 1 string to match.
917 if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
918 break;
919 return 93; // "binop_left_to_zero"
920 case 'c': // 4 strings to match.
921 if (RuleIdentifier[1] != 'o')
922 break;
923 switch (RuleIdentifier[2]) {
924 default: break;
925 case 'm': // 2 strings to match.
926 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
927 break;
928 switch (RuleIdentifier[8]) {
929 default: break;
930 case 'm': // 1 string to match.
931 if (memcmp(RuleIdentifier.data()+9, "inmax_nan", 9) != 0)
932 break;
933 return 171; // "combine_minmax_nan"
934 case 'o': // 1 string to match.
935 if (memcmp(RuleIdentifier.data()+9, "r_s64_s32", 9) != 0)
936 break;
937 return 299; // "combine_or_s64_s32"
938 }
939 break;
940 case 'n': // 2 strings to match.
941 if (memcmp(RuleIdentifier.data()+3, "stant_fold_f", 12) != 0)
942 break;
943 switch (RuleIdentifier[15]) {
944 default: break;
945 case 'a': // 1 string to match.
946 if (memcmp(RuleIdentifier.data()+16, "bs", 2) != 0)
947 break;
948 return 152; // "constant_fold_fabs"
949 case 'n': // 1 string to match.
950 if (memcmp(RuleIdentifier.data()+16, "eg", 2) != 0)
951 break;
952 return 151; // "constant_fold_fneg"
953 }
954 break;
955 }
956 break;
957 case 'e': // 1 string to match.
958 if (memcmp(RuleIdentifier.data()+1, "xpand_const_fpowi", 17) != 0)
959 break;
960 return 172; // "expand_const_fpowi"
961 case 'f': // 1 string to match.
962 if (memcmp(RuleIdentifier.data()+1, "ptrunc_fpext_fold", 17) != 0)
963 break;
964 return 107; // "fptrunc_fpext_fold"
965 case 's': // 2 strings to match.
966 if (RuleIdentifier[1] != 'e')
967 break;
968 switch (RuleIdentifier[2]) {
969 default: break;
970 case 'l': // 1 string to match.
971 if (memcmp(RuleIdentifier.data()+3, "ect_of_truncate", 15) != 0)
972 break;
973 return 61; // "select_of_truncate"
974 case 'x': // 1 string to match.
975 if (memcmp(RuleIdentifier.data()+3, "t_inreg_of_load", 15) != 0)
976 break;
977 return 127; // "sext_inreg_of_load"
978 }
979 break;
980 case 't': // 1 string to match.
981 if (memcmp(RuleIdentifier.data()+1, "runcate_of_anyext", 17) != 0)
982 break;
983 return 50; // "truncate_of_anyext"
984 }
985 break;
986 case 19: // 20 strings to match.
987 switch (RuleIdentifier[0]) {
988 default: break;
989 case 'A': // 1 string to match.
990 if (memcmp(RuleIdentifier.data()+1, "MinusBMinusCMinusC", 18) != 0)
991 break;
992 return 1; // "AMinusBMinusCMinusC"
993 case 'b': // 1 string to match.
994 if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
995 break;
996 return 94; // "binop_right_to_zero"
997 case 'c': // 7 strings to match.
998 if (memcmp(RuleIdentifier.data()+1, "onst", 4) != 0)
999 break;
1000 switch (RuleIdentifier[5]) {
1001 default: break;
1002 case '_': // 1 string to match.
1003 if (memcmp(RuleIdentifier.data()+6, "ptradd_to_i2p", 13) != 0)
1004 break;
1005 return 166; // "const_ptradd_to_i2p"
1006 case 'a': // 6 strings to match.
1007 if (memcmp(RuleIdentifier.data()+6, "nt_fold_", 8) != 0)
1008 break;
1009 switch (RuleIdentifier[14]) {
1010 default: break;
1011 case 'b': // 1 string to match.
1012 if (memcmp(RuleIdentifier.data()+15, "inop", 4) != 0)
1013 break;
1014 return 194; // "constant_fold_binop"
1015 case 'f': // 5 strings to match.
1016 switch (RuleIdentifier[15]) {
1017 default: break;
1018 case 'c': // 1 string to match.
1019 if (memcmp(RuleIdentifier.data()+16, "eil", 3) != 0)
1020 break;
1021 return 157; // "constant_fold_fceil"
1022 case 'l': // 1 string to match.
1023 if (memcmp(RuleIdentifier.data()+16, "og2", 3) != 0)
1024 break;
1025 return 154; // "constant_fold_flog2"
1026 case 'p': // 1 string to match.
1027 if (memcmp(RuleIdentifier.data()+16, "ext", 3) != 0)
1028 break;
1029 return 156; // "constant_fold_fpext"
1030 case 'r': // 1 string to match.
1031 if (memcmp(RuleIdentifier.data()+16, "int", 3) != 0)
1032 break;
1033 return 162; // "constant_fold_frint"
1034 case 's': // 1 string to match.
1035 if (memcmp(RuleIdentifier.data()+16, "qrt", 3) != 0)
1036 break;
1037 return 153; // "constant_fold_fsqrt"
1038 }
1039 break;
1040 }
1041 break;
1042 }
1043 break;
1044 case 'e': // 1 string to match.
1045 if (memcmp(RuleIdentifier.data()+1, "xtend_through_phis", 18) != 0)
1046 break;
1047 return 111; // "extend_through_phis"
1048 case 'f': // 1 string to match.
1049 if (memcmp(RuleIdentifier.data()+1, "sqrt_of_rcp_to_rsq", 18) != 0)
1050 break;
1051 return 289; // "fsqrt_of_rcp_to_rsq"
1052 case 'i': // 1 string to match.
1053 if (memcmp(RuleIdentifier.data()+1, "nteger_of_truncate", 18) != 0)
1054 break;
1055 return 69; // "integer_of_truncate"
1056 case 'm': // 1 string to match.
1057 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_zero", 18) != 0)
1058 break;
1059 return 254; // "merge_of_x_and_zero"
1060 case 'p': // 1 string to match.
1061 if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
1062 break;
1063 return 117; // "ptr_add_immed_chain"
1064 case 'r': // 3 strings to match.
1065 switch (RuleIdentifier[1]) {
1066 default: break;
1067 case 'c': // 1 string to match.
1068 if (memcmp(RuleIdentifier.data()+2, "p_of_fsqrt_to_rsq", 17) != 0)
1069 break;
1070 return 287; // "rcp_of_fsqrt_to_rsq"
1071 case 'e': // 1 string to match.
1072 if (memcmp(RuleIdentifier.data()+2, "assoc_comm_binops", 17) != 0)
1073 break;
1074 return 116; // "reassoc_comm_binops"
1075 case 'i': // 1 string to match.
1076 if (memcmp(RuleIdentifier.data()+2, "ght_identity_zero", 17) != 0)
1077 break;
1078 return 90; // "right_identity_zero"
1079 }
1080 break;
1081 case 's': // 2 strings to match.
1082 if (memcmp(RuleIdentifier.data()+1, "implify_", 8) != 0)
1083 break;
1084 switch (RuleIdentifier[9]) {
1085 default: break;
1086 case 'a': // 1 string to match.
1087 if (memcmp(RuleIdentifier.data()+10, "dd_to_sub", 9) != 0)
1088 break;
1089 return 112; // "simplify_add_to_sub"
1090 case 'n': // 1 string to match.
1091 if (memcmp(RuleIdentifier.data()+10, "eg_minmax", 9) != 0)
1092 break;
1093 return 237; // "simplify_neg_minmax"
1094 }
1095 break;
1096 case 'u': // 1 string to match.
1097 if (memcmp(RuleIdentifier.data()+1, "nary_undef_to_zero", 18) != 0)
1098 break;
1099 return 81; // "unary_undef_to_zero"
1100 }
1101 break;
1102 case 20: // 10 strings to match.
1103 switch (RuleIdentifier[0]) {
1104 default: break;
1105 case 'a': // 1 string to match.
1106 if (memcmp(RuleIdentifier.data()+1, "nd_or_disjoint_mask", 19) != 0)
1107 break;
1108 return 206; // "and_or_disjoint_mask"
1109 case 'b': // 1 string to match.
1110 if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold", 19) != 0)
1111 break;
1112 return 105; // "bitcast_bitcast_fold"
1113 case 'c': // 1 string to match.
1114 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_ffloor", 19) != 0)
1115 break;
1116 return 158; // "constant_fold_ffloor"
1117 case 'm': // 1 string to match.
1118 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_undef", 19) != 0)
1119 break;
1120 return 253; // "merge_of_x_and_undef"
1121 case 'o': // 1 string to match.
1122 if (memcmp(RuleIdentifier.data()+1, "r_and_xor_to_xor_or", 19) != 0)
1123 break;
1124 return 232; // "or_and_xor_to_xor_or"
1125 case 'r': // 3 strings to match.
1126 if (RuleIdentifier[1] != 'e')
1127 break;
1128 switch (RuleIdentifier[2]) {
1129 default: break;
1130 case 'd': // 2 strings to match.
1131 if (RuleIdentifier[3] != 'u')
1132 break;
1133 switch (RuleIdentifier[4]) {
1134 default: break;
1135 case 'c': // 1 string to match.
1136 if (memcmp(RuleIdentifier.data()+5, "e_shl_of_extend", 15) != 0)
1137 break;
1138 return 128; // "reduce_shl_of_extend"
1139 case 'n': // 1 string to match.
1140 if (memcmp(RuleIdentifier.data()+5, "dant_sext_inreg", 15) != 0)
1141 break;
1142 return 138; // "redundant_sext_inreg"
1143 }
1144 break;
1145 case 'm': // 1 string to match.
1146 if (memcmp(RuleIdentifier.data()+3, "ove_fcanonicalize", 17) != 0)
1147 break;
1148 return 284; // "remove_fcanonicalize"
1149 }
1150 break;
1151 case 'u': // 2 strings to match.
1152 if (RuleIdentifier[1] != 'n')
1153 break;
1154 switch (RuleIdentifier[2]) {
1155 default: break;
1156 case 'a': // 1 string to match.
1157 if (memcmp(RuleIdentifier.data()+3, "ry_undef_to_undef", 17) != 0)
1158 break;
1159 return 82; // "unary_undef_to_undef"
1160 case 'm': // 1 string to match.
1161 if (memcmp(RuleIdentifier.data()+3, "erge_zext_to_zext", 17) != 0)
1162 break;
1163 return 252; // "unmerge_zext_to_zext"
1164 }
1165 break;
1166 }
1167 break;
1168 case 21: // 14 strings to match.
1169 switch (RuleIdentifier[0]) {
1170 default: break;
1171 case 'a': // 1 string to match.
1172 if (memcmp(RuleIdentifier.data()+1, "nd_xor_or_to_xor_and", 20) != 0)
1173 break;
1174 return 234; // "and_xor_or_to_xor_and"
1175 case 'c': // 4 strings to match.
1176 if (RuleIdentifier[1] != 'o')
1177 break;
1178 switch (RuleIdentifier[2]) {
1179 default: break;
1180 case 'm': // 2 strings to match.
1181 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1182 break;
1183 switch (RuleIdentifier[8]) {
1184 default: break;
1185 case 'b': // 1 string to match.
1186 if (memcmp(RuleIdentifier.data()+9, "uild_unmerge", 12) != 0)
1187 break;
1188 return 255; // "combine_build_unmerge"
1189 case 'c': // 1 string to match.
1190 if (memcmp(RuleIdentifier.data()+9, "oncat_vector", 12) != 0)
1191 break;
1192 return 238; // "combine_concat_vector"
1193 }
1194 break;
1195 case 'n': // 2 strings to match.
1196 if (memcmp(RuleIdentifier.data()+3, "stant_fold_", 11) != 0)
1197 break;
1198 switch (RuleIdentifier[14]) {
1199 default: break;
1200 case 'c': // 1 string to match.
1201 if (memcmp(RuleIdentifier.data()+15, "ast_op", 6) != 0)
1202 break;
1203 return 197; // "constant_fold_cast_op"
1204 case 'f': // 1 string to match.
1205 if (memcmp(RuleIdentifier.data()+15, "ptrunc", 6) != 0)
1206 break;
1207 return 155; // "constant_fold_fptrunc"
1208 }
1209 break;
1210 }
1211 break;
1212 case 'e': // 1 string to match.
1213 if (memcmp(RuleIdentifier.data()+1, "xpand_promoted_fmed3", 20) != 0)
1214 break;
1215 return 280; // "expand_promoted_fmed3"
1216 case 'f': // 1 string to match.
1217 if (memcmp(RuleIdentifier.data()+1, "div_repeated_divison", 20) != 0)
1218 break;
1219 return 223; // "fdiv_repeated_divison"
1220 case 'i': // 1 string to match.
1221 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_elt_oob", 20) != 0)
1222 break;
1223 return 29; // "insert_vector_elt_oob"
1224 case 'l': // 1 string to match.
1225 if (memcmp(RuleIdentifier.data()+1, "shr_of_trunc_of_lshr", 20) != 0)
1226 break;
1227 return 262; // "lshr_of_trunc_of_lshr"
1228 case 'r': // 1 string to match.
1229 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
1230 break;
1231 return 100; // "right_identity_one_fp"
1232 case 's': // 2 strings to match.
1233 switch (RuleIdentifier[1]) {
1234 default: break;
1235 case 'e': // 1 string to match.
1236 if (memcmp(RuleIdentifier.data()+2, "lect_same_val_equiv", 19) != 0)
1237 break;
1238 return 89; // "select_same_val_equiv"
1239 case 'i': // 1 string to match.
1240 if (memcmp(RuleIdentifier.data()+2, "gn_extension_in_reg", 19) != 0)
1241 break;
1242 return 292; // "sign_extension_in_reg"
1243 }
1244 break;
1245 case 'u': // 2 strings to match.
1246 if (RuleIdentifier[1] != 'n')
1247 break;
1248 switch (RuleIdentifier[2]) {
1249 default: break;
1250 case 'd': // 1 string to match.
1251 if (memcmp(RuleIdentifier.data()+3, "ef_to_negative_one", 18) != 0)
1252 break;
1253 return 78; // "undef_to_negative_one"
1254 case 'm': // 1 string to match.
1255 if (memcmp(RuleIdentifier.data()+3, "erge_dead_to_trunc", 18) != 0)
1256 break;
1257 return 251; // "unmerge_dead_to_trunc"
1258 }
1259 break;
1260 }
1261 break;
1262 case 22: // 12 strings to match.
1263 switch (RuleIdentifier[0]) {
1264 default: break;
1265 case 'c': // 2 strings to match.
1266 if (RuleIdentifier[1] != 'o')
1267 break;
1268 switch (RuleIdentifier[2]) {
1269 default: break;
1270 case 'm': // 1 string to match.
1271 if (memcmp(RuleIdentifier.data()+3, "bine_shuffle_concat", 19) != 0)
1272 break;
1273 return 242; // "combine_shuffle_concat"
1274 case 'n': // 1 string to match.
1275 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fp_binop", 19) != 0)
1276 break;
1277 return 195; // "constant_fold_fp_binop"
1278 }
1279 break;
1280 case 'f': // 4 strings to match.
1281 switch (RuleIdentifier[1]) {
1282 default: break;
1283 case 'o': // 1 string to match.
1284 if (memcmp(RuleIdentifier.data()+2, "ld_binop_into_select", 20) != 0)
1285 break;
1286 return 215; // "fold_binop_into_select"
1287 case 'u': // 3 strings to match.
1288 if (memcmp(RuleIdentifier.data()+2, "nnel_shift_", 11) != 0)
1289 break;
1290 switch (RuleIdentifier[13]) {
1291 default: break;
1292 case 'l': // 1 string to match.
1293 if (memcmp(RuleIdentifier.data()+14, "eft_zero", 8) != 0)
1294 break;
1295 return 182; // "funnel_shift_left_zero"
1296 case 'o': // 1 string to match.
1297 if (memcmp(RuleIdentifier.data()+14, "vershift", 8) != 0)
1298 break;
1299 return 183; // "funnel_shift_overshift"
1300 case 't': // 1 string to match.
1301 if (memcmp(RuleIdentifier.data()+14, "o_rotate", 8) != 0)
1302 break;
1303 return 180; // "funnel_shift_to_rotate"
1304 }
1305 break;
1306 }
1307 break;
1308 case 'i': // 1 string to match.
1309 if (memcmp(RuleIdentifier.data()+1, "cmp_to_lhs_known_bits", 21) != 0)
1310 break;
1311 return 121; // "icmp_to_lhs_known_bits"
1312 case 'm': // 1 string to match.
1313 if (memcmp(RuleIdentifier.data()+1, "atch_subo_no_overflow", 21) != 0)
1314 break;
1315 return 257; // "match_subo_no_overflow"
1316 case 'p': // 1 string to match.
1317 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_any_op", 21) != 0)
1318 break;
1319 return 83; // "propagate_undef_any_op"
1320 case 'r': // 1 string to match.
1321 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_int", 21) != 0)
1322 break;
1323 return 99; // "right_identity_one_int"
1324 case 's': // 1 string to match.
1325 if (memcmp(RuleIdentifier.data()+1, "hl_ashr_to_sext_inreg", 21) != 0)
1326 break;
1327 return 125; // "shl_ashr_to_sext_inreg"
1328 case 't': // 1 string to match.
1329 if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold", 21) != 0)
1330 break;
1331 return 103; // "trunc_buildvector_fold"
1332 }
1333 break;
1334 case 23: // 8 strings to match.
1335 switch (RuleIdentifier[0]) {
1336 default: break;
1337 case 'b': // 1 string to match.
1338 if (memcmp(RuleIdentifier.data()+1, "uildvector_of_truncate", 22) != 0)
1339 break;
1340 return 62; // "buildvector_of_truncate"
1341 case 'f': // 2 strings to match.
1342 switch (RuleIdentifier[1]) {
1343 default: break;
1344 case 'd': // 1 string to match.
1345 if (memcmp(RuleIdentifier.data()+2, "iv_by_sqrt_to_rsq_f16", 21) != 0)
1346 break;
1347 return 291; // "fdiv_by_sqrt_to_rsq_f16"
1348 case 'u': // 1 string to match.
1349 if (memcmp(RuleIdentifier.data()+2, "nnel_shift_right_zero", 21) != 0)
1350 break;
1351 return 181; // "funnel_shift_right_zero"
1352 }
1353 break;
1354 case 'i': // 2 strings to match.
1355 if (memcmp(RuleIdentifier.data()+1, "tof_const_zero_fold_", 20) != 0)
1356 break;
1357 switch (RuleIdentifier[21]) {
1358 default: break;
1359 case 's': // 1 string to match.
1360 if (RuleIdentifier[22] != 'i')
1361 break;
1362 return 164; // "itof_const_zero_fold_si"
1363 case 'u': // 1 string to match.
1364 if (RuleIdentifier[22] != 'i')
1365 break;
1366 return 165; // "itof_const_zero_fold_ui"
1367 }
1368 break;
1369 case 'p': // 1 string to match.
1370 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_all_ops", 22) != 0)
1371 break;
1372 return 84; // "propagate_undef_all_ops"
1373 case 's': // 1 string to match.
1374 if (memcmp(RuleIdentifier.data()+1, "elect_same_val_trivial", 22) != 0)
1375 break;
1376 return 88; // "select_same_val_trivial"
1377 case 't': // 1 string to match.
1378 if (memcmp(RuleIdentifier.data()+1, "runcusatu_to_fptouisat", 22) != 0)
1379 break;
1380 return 261; // "truncusatu_to_fptouisat"
1381 }
1382 break;
1383 case 24: // 13 strings to match.
1384 switch (RuleIdentifier[0]) {
1385 default: break;
1386 case 'b': // 1 string to match.
1387 if (memcmp(RuleIdentifier.data()+1, "inop_left_undef_to_zero", 23) != 0)
1388 break;
1389 return 79; // "binop_left_undef_to_zero"
1390 case 'c': // 4 strings to match.
1391 switch (RuleIdentifier[1]) {
1392 default: break;
1393 case 'o': // 1 string to match.
1394 if (memcmp(RuleIdentifier.data()+2, "nstant_fold_fnearbyint", 22) != 0)
1395 break;
1396 return 163; // "constant_fold_fnearbyint"
1397 case 't': // 3 strings to match.
1398 switch (RuleIdentifier[2]) {
1399 default: break;
1400 case 'l': // 2 strings to match.
1401 if (memcmp(RuleIdentifier.data()+3, "z_", 2) != 0)
1402 break;
1403 switch (RuleIdentifier[5]) {
1404 default: break;
1405 case 't': // 1 string to match.
1406 if (memcmp(RuleIdentifier.data()+6, "o_ctlz_zero_poison", 18) != 0)
1407 break;
1408 return 265; // "ctlz_to_ctlz_zero_poison"
1409 case 'z': // 1 string to match.
1410 if (memcmp(RuleIdentifier.data()+6, "ero_poison_to_ctls", 18) != 0)
1411 break;
1412 return 264; // "ctlz_zero_poison_to_ctls"
1413 }
1414 break;
1415 case 't': // 1 string to match.
1416 if (memcmp(RuleIdentifier.data()+3, "z_to_cttz_zero_poison", 21) != 0)
1417 break;
1418 return 266; // "cttz_to_cttz_zero_poison"
1419 }
1420 break;
1421 }
1422 break;
1423 case 'm': // 1 string to match.
1424 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element", 23) != 0)
1425 break;
1426 return 28; // "match_extract_of_element"
1427 case 'n': // 1 string to match.
1428 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_feeding_and", 23) != 0)
1429 break;
1430 return 129; // "narrow_binop_feeding_and"
1431 case 's': // 3 strings to match.
1432 if (RuleIdentifier[1] != 'e')
1433 break;
1434 switch (RuleIdentifier[2]) {
1435 default: break;
1436 case 'l': // 1 string to match.
1437 if (memcmp(RuleIdentifier.data()+3, "ect_constant_cmp_true", 21) != 0)
1438 break;
1439 return 132; // "select_constant_cmp_true"
1440 case 'x': // 2 strings to match.
1441 if (memcmp(RuleIdentifier.data()+3, "t_inreg_", 8) != 0)
1442 break;
1443 switch (RuleIdentifier[11]) {
1444 default: break;
1445 case 'o': // 1 string to match.
1446 if (memcmp(RuleIdentifier.data()+12, "f_sext_inreg", 12) != 0)
1447 break;
1448 return 58; // "sext_inreg_of_sext_inreg"
1449 case 't': // 1 string to match.
1450 if (memcmp(RuleIdentifier.data()+12, "o_zext_inreg", 12) != 0)
1451 break;
1452 return 147; // "sext_inreg_to_zext_inreg"
1453 }
1454 break;
1455 }
1456 break;
1457 case 't': // 2 strings to match.
1458 if (memcmp(RuleIdentifier.data()+1, "runc_lshr16_unmerge_", 20) != 0)
1459 break;
1460 switch (RuleIdentifier[21]) {
1461 default: break;
1462 case 'f': // 1 string to match.
1463 if (memcmp(RuleIdentifier.data()+22, "16", 2) != 0)
1464 break;
1465 return 295; // "trunc_lshr16_unmerge_f16"
1466 case 'i': // 1 string to match.
1467 if (memcmp(RuleIdentifier.data()+22, "16", 2) != 0)
1468 break;
1469 return 294; // "trunc_lshr16_unmerge_i16"
1470 }
1471 break;
1472 case 'x': // 1 string to match.
1473 if (memcmp(RuleIdentifier.data()+1, "or_of_and_with_same_reg", 23) != 0)
1474 break;
1475 return 173; // "xor_of_and_with_same_reg"
1476 }
1477 break;
1478 case 25: // 13 strings to match.
1479 switch (RuleIdentifier[0]) {
1480 default: break;
1481 case 'a': // 1 string to match.
1482 if (memcmp(RuleIdentifier.data()+1, "mdgcn_sqrt_of_rcp_to_rsq", 24) != 0)
1483 break;
1484 return 290; // "amdgcn_sqrt_of_rcp_to_rsq"
1485 case 'b': // 3 strings to match.
1486 switch (RuleIdentifier[1]) {
1487 default: break;
1488 case 'i': // 2 strings to match.
1489 if (memcmp(RuleIdentifier.data()+2, "tfield_extract_from_", 20) != 0)
1490 break;
1491 switch (RuleIdentifier[22]) {
1492 default: break;
1493 case 'a': // 1 string to match.
1494 if (memcmp(RuleIdentifier.data()+23, "nd", 2) != 0)
1495 break;
1496 return 191; // "bitfield_extract_from_and"
1497 case 's': // 1 string to match.
1498 if (memcmp(RuleIdentifier.data()+23, "hr", 2) != 0)
1499 break;
1500 return 192; // "bitfield_extract_from_shr"
1501 }
1502 break;
1503 case 'u': // 1 string to match.
1504 if (memcmp(RuleIdentifier.data()+2, "ildvector_identity_fold", 23) != 0)
1505 break;
1506 return 102; // "buildvector_identity_fold"
1507 }
1508 break;
1509 case 'c': // 1 string to match.
1510 if (memcmp(RuleIdentifier.data()+1, "ombine_shuffle_undef_rhs", 24) != 0)
1511 break;
1512 return 243; // "combine_shuffle_undef_rhs"
1513 case 'e': // 1 string to match.
1514 if (memcmp(RuleIdentifier.data()+1, "xtract_vec_elt_build_vec", 24) != 0)
1515 break;
1516 return 71; // "extract_vec_elt_build_vec"
1517 case 'n': // 1 string to match.
1518 if (memcmp(RuleIdentifier.data()+1, "eg_and_one_to_sext_inreg", 24) != 0)
1519 break;
1520 return 126; // "neg_and_one_to_sext_inreg"
1521 case 'r': // 4 strings to match.
1522 switch (RuleIdentifier[1]) {
1523 default: break;
1524 case 'c': // 1 string to match.
1525 if (memcmp(RuleIdentifier.data()+2, "p_of_amdgcn_sqrt_to_rsq", 23) != 0)
1526 break;
1527 return 288; // "rcp_of_amdgcn_sqrt_to_rsq"
1528 case 'e': // 2 strings to match.
1529 if (memcmp(RuleIdentifier.data()+2, "dundant_", 8) != 0)
1530 break;
1531 switch (RuleIdentifier[10]) {
1532 default: break;
1533 case 'a': // 1 string to match.
1534 if (memcmp(RuleIdentifier.data()+11, "ext_sext_inreg", 14) != 0)
1535 break;
1536 return 140; // "redundant_aext_sext_inreg"
1537 case 'z': // 1 string to match.
1538 if (memcmp(RuleIdentifier.data()+11, "ext_sext_inreg", 14) != 0)
1539 break;
1540 return 139; // "redundant_zext_sext_inreg"
1541 }
1542 break;
1543 case 'i': // 1 string to match.
1544 if (memcmp(RuleIdentifier.data()+2, "ght_identity_neg_one_fp", 23) != 0)
1545 break;
1546 return 110; // "right_identity_neg_one_fp"
1547 }
1548 break;
1549 case 's': // 1 string to match.
1550 if (memcmp(RuleIdentifier.data()+1, "elect_constant_cmp_false", 24) != 0)
1551 break;
1552 return 131; // "select_constant_cmp_false"
1553 case 't': // 1 string to match.
1554 if (memcmp(RuleIdentifier.data()+1, "runc_lshr16_unmerge_bf16", 24) != 0)
1555 break;
1556 return 296; // "trunc_lshr16_unmerge_bf16"
1557 }
1558 break;
1559 case 26: // 6 strings to match.
1560 switch (RuleIdentifier[0]) {
1561 default: break;
1562 case 'b': // 2 strings to match.
1563 if (RuleIdentifier[1] != 'i')
1564 break;
1565 switch (RuleIdentifier[2]) {
1566 default: break;
1567 case 'n': // 1 string to match.
1568 if (memcmp(RuleIdentifier.data()+3, "op_right_undef_to_undef", 23) != 0)
1569 break;
1570 return 80; // "binop_right_undef_to_undef"
1571 case 't': // 1 string to match.
1572 if (memcmp(RuleIdentifier.data()+3, "cast_bitcast_to_bitcast", 23) != 0)
1573 break;
1574 return 106; // "bitcast_bitcast_to_bitcast"
1575 }
1576 break;
1577 case 'c': // 2 strings to match.
1578 if (RuleIdentifier[1] != 'o')
1579 break;
1580 switch (RuleIdentifier[2]) {
1581 default: break;
1582 case 'm': // 1 string to match.
1583 if (memcmp(RuleIdentifier.data()+3, "mute_fp_constant_to_rhs", 23) != 0)
1584 break;
1585 return 228; // "commute_fp_constant_to_rhs"
1586 case 'n': // 1 string to match.
1587 if (memcmp(RuleIdentifier.data()+3, "stant_fold_unary_int_op", 23) != 0)
1588 break;
1589 return 198; // "constant_fold_unary_int_op"
1590 }
1591 break;
1592 case 'f': // 1 string to match.
1593 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_from_or_shift", 25) != 0)
1594 break;
1595 return 179; // "funnel_shift_from_or_shift"
1596 case 'r': // 1 string to match.
1597 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp", 25) != 0)
1598 break;
1599 return 108; // "right_identity_neg_zero_fp"
1600 }
1601 break;
1602 case 27: // 7 strings to match.
1603 switch (RuleIdentifier[0]) {
1604 default: break;
1605 case 'c': // 2 strings to match.
1606 if (memcmp(RuleIdentifier.data()+1, "om", 2) != 0)
1607 break;
1608 switch (RuleIdentifier[3]) {
1609 default: break;
1610 case 'b': // 1 string to match.
1611 if (memcmp(RuleIdentifier.data()+4, "ine_use_vector_truncate", 23) != 0)
1612 break;
1613 return 245; // "combine_use_vector_truncate"
1614 case 'm': // 1 string to match.
1615 if (memcmp(RuleIdentifier.data()+4, "ute_int_constant_to_rhs", 23) != 0)
1616 break;
1617 return 227; // "commute_int_constant_to_rhs"
1618 }
1619 break;
1620 case 'd': // 1 string to match.
1621 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_or_combine", 26) != 0)
1622 break;
1623 return 123; // "double_icmp_zero_or_combine"
1624 case 'r': // 1 string to match.
1625 if (memcmp(RuleIdentifier.data()+1, "edundant_binop_in_equality", 26) != 0)
1626 break;
1627 return 124; // "redundant_binop_in_equality"
1628 case 's': // 1 string to match.
1629 if (memcmp(RuleIdentifier.data()+1, "elect_constant_cmp_general", 26) != 0)
1630 break;
1631 return 133; // "select_constant_cmp_general"
1632 case 't': // 1 string to match.
1633 if (memcmp(RuleIdentifier.data()+1, "runc_lshr_buildvector_fold", 26) != 0)
1634 break;
1635 return 104; // "trunc_lshr_buildvector_fold"
1636 case 'u': // 1 string to match.
1637 if (memcmp(RuleIdentifier.data()+1, "nmerge_anyext_build_vector", 26) != 0)
1638 break;
1639 return 246; // "unmerge_anyext_build_vector"
1640 }
1641 break;
1642 case 28: // 6 strings to match.
1643 switch (RuleIdentifier[0]) {
1644 default: break;
1645 case 'c': // 1 string to match.
1646 if (memcmp(RuleIdentifier.data()+1, "ombine_or_s64_with_s32_mask", 27) != 0)
1647 break;
1648 return 297; // "combine_or_s64_with_s32_mask"
1649 case 'd': // 1 string to match.
1650 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_and_combine", 27) != 0)
1651 break;
1652 return 122; // "double_icmp_zero_and_combine"
1653 case 'e': // 1 string to match.
1654 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_undef", 27) != 0)
1655 break;
1656 return 25; // "extract_vector_element_undef"
1657 case 'o': // 1 string to match.
1658 if (memcmp(RuleIdentifier.data()+1, "pt_brcond_by_inverting_cond", 27) != 0)
1659 break;
1660 return 150; // "opt_brcond_by_inverting_cond"
1661 case 'p': // 1 string to match.
1662 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_shuffle_mask", 27) != 0)
1663 break;
1664 return 85; // "propagate_undef_shuffle_mask"
1665 case 's': // 1 string to match.
1666 if (memcmp(RuleIdentifier.data()+1, "hift_of_shifted_logic_chain", 27) != 0)
1667 break;
1668 return 176; // "shift_of_shifted_logic_chain"
1669 }
1670 break;
1671 case 29: // 7 strings to match.
1672 switch (RuleIdentifier[0]) {
1673 default: break;
1674 case 'b': // 1 string to match.
1675 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_shr_and", 28) != 0)
1676 break;
1677 return 193; // "bitfield_extract_from_shr_and"
1678 case 'c': // 5 strings to match.
1679 if (RuleIdentifier[1] != 'o')
1680 break;
1681 switch (RuleIdentifier[2]) {
1682 default: break;
1683 case 'm': // 3 strings to match.
1684 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1685 break;
1686 switch (RuleIdentifier[8]) {
1687 default: break;
1688 case 'a': // 1 string to match.
1689 if (memcmp(RuleIdentifier.data()+9, "nd_s64_with_s32_mask", 20) != 0)
1690 break;
1691 return 298; // "combine_and_s64_with_s32_mask"
1692 case 'e': // 1 string to match.
1693 if (memcmp(RuleIdentifier.data()+9, "xtracted_vector_load", 20) != 0)
1694 break;
1695 return 75; // "combine_extracted_vector_load"
1696 case 's': // 1 string to match.
1697 if (memcmp(RuleIdentifier.data()+9, "huffle_disjoint_mask", 20) != 0)
1698 break;
1699 return 244; // "combine_shuffle_disjoint_mask"
1700 }
1701 break;
1702 case 'n': // 2 strings to match.
1703 if (memcmp(RuleIdentifier.data()+3, "stant_fold_intrinsic_", 21) != 0)
1704 break;
1705 switch (RuleIdentifier[24]) {
1706 default: break;
1707 case 'r': // 1 string to match.
1708 if (memcmp(RuleIdentifier.data()+25, "ound", 4) != 0)
1709 break;
1710 return 160; // "constant_fold_intrinsic_round"
1711 case 't': // 1 string to match.
1712 if (memcmp(RuleIdentifier.data()+25, "runc", 4) != 0)
1713 break;
1714 return 159; // "constant_fold_intrinsic_trunc"
1715 }
1716 break;
1717 }
1718 break;
1719 case 'i': // 1 string to match.
1720 if (memcmp(RuleIdentifier.data()+1, "cmp_to_true_false_known_bits", 28) != 0)
1721 break;
1722 return 120; // "icmp_to_true_false_known_bits"
1723 }
1724 break;
1725 case 30: // 2 strings to match.
1726 switch (RuleIdentifier[0]) {
1727 default: break;
1728 case 'f': // 1 string to match.
1729 if (memcmp(RuleIdentifier.data()+1, "reeze_of_non_undef_non_poison", 29) != 0)
1730 break;
1731 return 46; // "freeze_of_non_undef_non_poison"
1732 case 'r': // 1 string to match.
1733 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp_nsz", 29) != 0)
1734 break;
1735 return 109; // "right_identity_neg_zero_fp_nsz"
1736 }
1737 break;
1738 case 31: // 3 strings to match.
1739 switch (RuleIdentifier[0]) {
1740 default: break;
1741 case 'f': // 1 string to match.
1742 if (memcmp(RuleIdentifier.data()+1, "cmp_select_to_fmin_fmax_legacy", 30) != 0)
1743 break;
1744 return 279; // "fcmp_select_to_fmin_fmax_legacy"
1745 case 'i': // 2 strings to match.
1746 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_element_", 21) != 0)
1747 break;
1748 switch (RuleIdentifier[22]) {
1749 default: break;
1750 case 'e': // 1 string to match.
1751 if (memcmp(RuleIdentifier.data()+23, "lt_undef", 8) != 0)
1752 break;
1753 return 27; // "insert_vector_element_elt_undef"
1754 case 'i': // 1 string to match.
1755 if (memcmp(RuleIdentifier.data()+23, "dx_undef", 8) != 0)
1756 break;
1757 return 26; // "insert_vector_element_idx_undef"
1758 }
1759 break;
1760 }
1761 break;
1762 case 32: // 5 strings to match.
1763 switch (RuleIdentifier[0]) {
1764 default: break;
1765 case 'b': // 1 string to match.
1766 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_sext_inreg", 31) != 0)
1767 break;
1768 return 190; // "bitfield_extract_from_sext_inreg"
1769 case 'c': // 2 strings to match.
1770 if (memcmp(RuleIdentifier.data()+1, "ombine_f", 8) != 0)
1771 break;
1772 switch (RuleIdentifier[9]) {
1773 default: break;
1774 case 'a': // 1 string to match.
1775 if (memcmp(RuleIdentifier.data()+10, "dd_fmul_to_fmad_or_fma", 22) != 0)
1776 break;
1777 return 207; // "combine_fadd_fmul_to_fmad_or_fma"
1778 case 's': // 1 string to match.
1779 if (memcmp(RuleIdentifier.data()+10, "ub_fmul_to_fmad_or_fma", 22) != 0)
1780 break;
1781 return 211; // "combine_fsub_fmul_to_fmad_or_fma"
1782 }
1783 break;
1784 case 'e': // 1 string to match.
1785 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_not_const", 31) != 0)
1786 break;
1787 return 30; // "extract_vector_element_not_const"
1788 case 'r': // 1 string to match.
1789 if (memcmp(RuleIdentifier.data()+1, "edundant_neg_operands_fadd_fsub", 31) != 0)
1790 break;
1791 return 201; // "redundant_neg_operands_fadd_fsub"
1792 }
1793 break;
1794 case 33: // 3 strings to match.
1795 switch (RuleIdentifier[0]) {
1796 default: break;
1797 case 'c': // 1 string to match.
1798 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_intrinsic_roundeven", 32) != 0)
1799 break;
1800 return 161; // "constant_fold_intrinsic_roundeven"
1801 case 'r': // 2 strings to match.
1802 if (memcmp(RuleIdentifier.data()+1, "edundant_", 9) != 0)
1803 break;
1804 switch (RuleIdentifier[10]) {
1805 default: break;
1806 case 'a': // 1 string to match.
1807 if (memcmp(RuleIdentifier.data()+11, "ext_unmerge_sext_inreg", 22) != 0)
1808 break;
1809 return 142; // "redundant_aext_unmerge_sext_inreg"
1810 case 'z': // 1 string to match.
1811 if (memcmp(RuleIdentifier.data()+11, "ext_unmerge_sext_inreg", 22) != 0)
1812 break;
1813 return 141; // "redundant_zext_unmerge_sext_inreg"
1814 }
1815 break;
1816 }
1817 break;
1818 case 34: // 2 strings to match.
1819 switch (RuleIdentifier[0]) {
1820 default: break;
1821 case 'c': // 1 string to match.
1822 if (memcmp(RuleIdentifier.data()+1, "ombine_fmul_with_select_to_fldexp", 33) != 0)
1823 break;
1824 return 281; // "combine_fmul_with_select_to_fldexp"
1825 case 'e': // 1 string to match.
1826 if (memcmp(RuleIdentifier.data()+1, "xtract_all_elts_from_build_vector", 33) != 0)
1827 break;
1828 return 72; // "extract_all_elts_from_build_vector"
1829 }
1830 break;
1831 case 35: // 1 string to match.
1832 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_build_vector", 35) != 0)
1833 break;
1834 return 32; // "extract_vector_element_build_vector"
1835 case 36: // 3 strings to match.
1836 switch (RuleIdentifier[0]) {
1837 default: break;
1838 case 'c': // 2 strings to match.
1839 if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
1840 break;
1841 switch (RuleIdentifier[8]) {
1842 default: break;
1843 case 'f': // 1 string to match.
1844 if (memcmp(RuleIdentifier.data()+9, "add_fma_fmul_to_fmad_or_fma", 27) != 0)
1845 break;
1846 return 209; // "combine_fadd_fma_fmul_to_fmad_or_fma"
1847 case 'i': // 1 string to match.
1848 if (memcmp(RuleIdentifier.data()+9, "nsert_vec_elts_build_vector", 27) != 0)
1849 break;
1850 return 70; // "combine_insert_vec_elts_build_vector"
1851 }
1852 break;
1853 case 'i': // 1 string to match.
1854 if (memcmp(RuleIdentifier.data()+1, "nsert_extract_vec_elt_out_of_bounds", 35) != 0)
1855 break;
1856 return 87; // "insert_extract_vec_elt_out_of_bounds"
1857 }
1858 break;
1859 case 37: // 3 strings to match.
1860 switch (RuleIdentifier[0]) {
1861 default: break;
1862 case 'c': // 1 string to match.
1863 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fneg_fmul_to_fmad_or_fma", 36) != 0)
1864 break;
1865 return 212; // "combine_fsub_fneg_fmul_to_fmad_or_fma"
1866 case 'e': // 1 string to match.
1867 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_shuffle_vector", 36) != 0)
1868 break;
1869 return 40; // "extract_vector_element_shuffle_vector"
1870 case 'h': // 1 string to match.
1871 if (memcmp(RuleIdentifier.data()+1, "oist_logic_op_with_same_opcode_hands", 36) != 0)
1872 break;
1873 return 113; // "hoist_logic_op_with_same_opcode_hands"
1874 }
1875 break;
1876 case 38: // 2 strings to match.
1877 if (memcmp(RuleIdentifier.data()+0, "combine_f", 9) != 0)
1878 break;
1879 switch (RuleIdentifier[9]) {
1880 default: break;
1881 case 'a': // 1 string to match.
1882 if (memcmp(RuleIdentifier.data()+10, "dd_fpext_fmul_to_fmad_or_fma", 28) != 0)
1883 break;
1884 return 208; // "combine_fadd_fpext_fmul_to_fmad_or_fma"
1885 case 's': // 1 string to match.
1886 if (memcmp(RuleIdentifier.data()+10, "ub_fpext_fmul_to_fmad_or_fma", 28) != 0)
1887 break;
1888 return 213; // "combine_fsub_fpext_fmul_to_fmad_or_fma"
1889 }
1890 break;
1891 case 40: // 1 string to match.
1892 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_different_indices", 40) != 0)
1893 break;
1894 return 31; // "extract_vector_element_different_indices"
1895 case 42: // 9 strings to match.
1896 switch (RuleIdentifier[0]) {
1897 default: break;
1898 case 'c': // 1 string to match.
1899 if (memcmp(RuleIdentifier.data()+1, "ombine_fadd_fpext_fma_fmul_to_fmad_or_fma", 41) != 0)
1900 break;
1901 return 210; // "combine_fadd_fpext_fma_fmul_to_fmad_or_fma"
1902 case 'e': // 7 strings to match.
1903 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_build_vector_trunc", 40) != 0)
1904 break;
1905 switch (RuleIdentifier[41]) {
1906 default: break;
1907 case '2': // 1 string to match.
1908 return 33; // "extract_vector_element_build_vector_trunc2"
1909 case '3': // 1 string to match.
1910 return 34; // "extract_vector_element_build_vector_trunc3"
1911 case '4': // 1 string to match.
1912 return 35; // "extract_vector_element_build_vector_trunc4"
1913 case '5': // 1 string to match.
1914 return 36; // "extract_vector_element_build_vector_trunc5"
1915 case '6': // 1 string to match.
1916 return 37; // "extract_vector_element_build_vector_trunc6"
1917 case '7': // 1 string to match.
1918 return 38; // "extract_vector_element_build_vector_trunc7"
1919 case '8': // 1 string to match.
1920 return 39; // "extract_vector_element_build_vector_trunc8"
1921 }
1922 break;
1923 case 'f': // 1 string to match.
1924 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_left", 41) != 0)
1925 break;
1926 return 184; // "funnel_shift_or_shift_to_funnel_shift_left"
1927 }
1928 break;
1929 case 43: // 2 strings to match.
1930 switch (RuleIdentifier[0]) {
1931 default: break;
1932 case 'c': // 1 string to match.
1933 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fpext_fneg_fmul_to_fmad_or_fma", 42) != 0)
1934 break;
1935 return 214; // "combine_fsub_fpext_fneg_fmul_to_fmad_or_fma"
1936 case 'f': // 1 string to match.
1937 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_right", 42) != 0)
1938 break;
1939 return 185; // "funnel_shift_or_shift_to_funnel_shift_right"
1940 }
1941 break;
1942 case 44: // 1 string to match.
1943 if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_extract_vector_element", 44) != 0)
1944 break;
1945 return 41; // "insert_vector_element_extract_vector_element"
1946 case 46: // 1 string to match.
1947 if (memcmp(RuleIdentifier.data()+0, "push_freeze_to_prevent_poison_from_propagating", 46) != 0)
1948 break;
1949 return 47; // "push_freeze_to_prevent_poison_from_propagating"
1950 }
1951#endif // ifndef NDEBUG
1952
1953 return std::nullopt;
1954}
1955static std::optional<std::pair<uint64_t, uint64_t>> getRuleRangeForIdentifier(StringRef RuleIdentifier) {
1956 std::pair<StringRef, StringRef> RangePair = RuleIdentifier.split(Separator: '-');
1957 if (!RangePair.second.empty()) {
1958 const auto First = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
1959 const auto Last = getRuleIdxForIdentifier(RuleIdentifier: RangePair.second);
1960 if (!First || !Last)
1961 return std::nullopt;
1962 if (First >= Last)
1963 report_fatal_error(reason: "Beginning of range should be before end of range");
1964 return {{*First, *Last + 1}};
1965 }
1966 if (RangePair.first == "*") {
1967 return {{0, 303}};
1968 }
1969 const auto I = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
1970 if (!I)
1971 return std::nullopt;
1972 return {{*I, *I + 1}};
1973}
1974
1975bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleEnabled(StringRef RuleIdentifier) {
1976 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1977 if (!MaybeRange)
1978 return false;
1979 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1980 DisabledRules.reset(Idx: I);
1981 return true;
1982}
1983
1984bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleDisabled(StringRef RuleIdentifier) {
1985 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1986 if (!MaybeRange)
1987 return false;
1988 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1989 DisabledRules.set(I);
1990 return true;
1991}
1992
1993static std::vector<std::string> AMDGPUPostLegalizerCombinerOption;
1994static cl::list<std::string> AMDGPUPostLegalizerCombinerDisableOption(
1995 "amdgpupostlegalizercombiner-disable-rule",
1996 cl::desc("Disable one or more combiner rules temporarily in the AMDGPUPostLegalizerCombiner pass"),
1997 cl::CommaSeparated,
1998 cl::Hidden,
1999 cl::cat(GICombinerOptionCategory),
2000 cl::callback(CB: [](const std::string &Str) {
2001 AMDGPUPostLegalizerCombinerOption.push_back(x: Str);
2002 }));
2003static cl::list<std::string> AMDGPUPostLegalizerCombinerOnlyEnableOption(
2004 "amdgpupostlegalizercombiner-only-enable-rule",
2005 cl::desc("Disable all rules in the AMDGPUPostLegalizerCombiner pass then re-enable the specified ones"),
2006 cl::Hidden,
2007 cl::cat(GICombinerOptionCategory),
2008 cl::callback(CB: [](const std::string &CommaSeparatedArg) {
2009 StringRef Str = CommaSeparatedArg;
2010 AMDGPUPostLegalizerCombinerOption.push_back(x: "*");
2011 do {
2012 auto X = Str.split(Separator: ",");
2013 AMDGPUPostLegalizerCombinerOption.push_back(x: ("!" + X.first).str());
2014 Str = X.second;
2015 } while (!Str.empty());
2016 }));
2017
2018
2019bool AMDGPUPostLegalizerCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
2020 return !DisabledRules.test(Idx: RuleID);
2021}
2022bool AMDGPUPostLegalizerCombinerImplRuleConfig::parseCommandLineOption() {
2023 for (StringRef Identifier : AMDGPUPostLegalizerCombinerOption) {
2024 bool Enabled = Identifier.consume_front(Prefix: "!");
2025 if (Enabled && !setRuleEnabled(Identifier))
2026 return false;
2027 if (!Enabled && !setRuleDisabled(Identifier))
2028 return false;
2029 }
2030 return true;
2031}
2032
2033
2034#endif // GET_GICOMBINER_TYPES
2035
2036#ifdef GET_GICOMBINER_TYPES
2037
2038const unsigned MAX_SUBTARGET_PREDICATES = 3;
2039using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
2040
2041#endif // GET_GICOMBINER_TYPES
2042
2043#ifdef GET_GICOMBINER_CLASS_MEMBERS
2044
2045 bool canMatchOpcode(unsigned Opc) const override;
2046 uint32_t getRootFlagsToDrop() const override;
2047
2048#endif // GET_GICOMBINER_CLASS_MEMBERS
2049
2050#ifdef GET_GICOMBINER_CLASS_MEMBERS
2051
2052PredicateBitset AvailableModuleFeatures;
2053mutable PredicateBitset AvailableFunctionFeatures;
2054PredicateBitset getAvailableFeatures() const {
2055 return AvailableModuleFeatures | AvailableFunctionFeatures;
2056}
2057PredicateBitset
2058computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const;
2059PredicateBitset
2060computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget,
2061 const MachineFunction *MF) const;
2062void setupGeneratedPerFunctionState(MachineFunction &MF) override;
2063
2064#endif // GET_GICOMBINER_CLASS_MEMBERS
2065
2066#ifdef GET_GICOMBINER_CLASS_MEMBERS
2067
2068 mutable MatcherState State;
2069 typedef ComplexRendererFns(AMDGPUPostLegalizerCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
2070 typedef void(AMDGPUPostLegalizerCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
2071 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
2072 static AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
2073 static AMDGPUPostLegalizerCombinerImpl::CustomRendererFn CustomRenderers[];
2074 bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
2075 bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
2076 bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
2077 const uint8_t *getMatchTable() const override;
2078 bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
2079 bool testMOPredicate_MO(unsigned PredicateID, const MachineOperand &MO, const MatcherState &State) const override;
2080 bool testSimplePredicate(unsigned PredicateID) const override;
2081 bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
2082
2083#endif // GET_GICOMBINER_CLASS_MEMBERS
2084
2085#ifdef GET_GICOMBINER_IMPL
2086
2087// LLT Objects.
2088enum {
2089 GILLT_i1,
2090 GILLT_i16,
2091 GILLT_i32,
2092 GILLT_i64,
2093 GILLT_f16,
2094 GILLT_bf16,
2095 GILLT_f32,
2096};
2097const static size_t NumTypeObjects = 7;
2098const static LLT TypeObjects[] = {
2099 LLT(LLT::Kind::INTEGER, ElementCount::getFixed(0), 1),
2100 LLT(LLT::Kind::INTEGER, ElementCount::getFixed(0), 16),
2101 LLT(LLT::Kind::INTEGER, ElementCount::getFixed(0), 32),
2102 LLT(LLT::Kind::INTEGER, ElementCount::getFixed(0), 64),
2103 LLT(LLT::Kind::FLOAT, ElementCount::getFixed(0), 16, LLT::FpSemantics::S_IEEEhalf),
2104 LLT(LLT::Kind::FLOAT, ElementCount::getFixed(0), 16, LLT::FpSemantics::S_BFloat),
2105 LLT(LLT::Kind::FLOAT, ElementCount::getFixed(0), 32, LLT::FpSemantics::S_IEEEsingle),
2106};
2107
2108// Bits for subtarget features that participate in instruction matching.
2109enum SubtargetFeatureBits : uint8_t {
2110 Feature_Has16BitInstsBit = 1,
2111 Feature_NotHasMed3_16Bit = 2,
2112 Feature_HasFminFmaxLegacyBit = 0,
2113};
2114
2115PredicateBitset AMDGPUPostLegalizerCombinerImpl::
2116computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const {
2117 PredicateBitset Features{};
2118 if (Subtarget->has16BitInsts())
2119 Features.set(Feature_Has16BitInstsBit);
2120 if (!Subtarget->hasMed3_16())
2121 Features.set(Feature_NotHasMed3_16Bit);
2122 if (Subtarget->hasFminFmaxLegacy())
2123 Features.set(Feature_HasFminFmaxLegacyBit);
2124 return Features;
2125}
2126
2127void AMDGPUPostLegalizerCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) {
2128 AvailableFunctionFeatures = computeAvailableFunctionFeatures((const AMDGPUSubtarget *)&MF.getSubtarget(), &MF);
2129}
2130PredicateBitset AMDGPUPostLegalizerCombinerImpl::
2131computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget, const MachineFunction *MF) const {
2132 PredicateBitset Features{};
2133 return Features;
2134}
2135
2136// Feature bitsets.
2137enum {
2138 GIFBS_Invalid,
2139 GIFBS_HasFminFmaxLegacy,
2140 GIFBS_Has16BitInsts_NotHasMed3_16,
2141};
2142constexpr static PredicateBitset FeatureBitsets[] {
2143 {}, // GIFBS_Invalid
2144 {Feature_HasFminFmaxLegacyBit, },
2145 {Feature_Has16BitInstsBit, Feature_NotHasMed3_16Bit, },
2146};
2147
2148// ComplexPattern predicates.
2149enum {
2150 GICP_Invalid,
2151};
2152// See constructor for table contents
2153
2154AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn
2155AMDGPUPostLegalizerCombinerImpl::ComplexPredicateFns[] = {
2156 nullptr, // GICP_Invalid
2157};
2158
2159enum {
2160 GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
2161 GICXXPred_MI_Predicate_GICombiner1,
2162 GICXXPred_MI_Predicate_GICombiner2,
2163 GICXXPred_MI_Predicate_GICombiner3,
2164 GICXXPred_MI_Predicate_GICombiner4,
2165 GICXXPred_MI_Predicate_GICombiner5,
2166 GICXXPred_MI_Predicate_GICombiner6,
2167 GICXXPred_MI_Predicate_GICombiner7,
2168 GICXXPred_MI_Predicate_GICombiner8,
2169 GICXXPred_MI_Predicate_GICombiner9,
2170 GICXXPred_MI_Predicate_GICombiner10,
2171 GICXXPred_MI_Predicate_GICombiner11,
2172 GICXXPred_MI_Predicate_GICombiner12,
2173 GICXXPred_MI_Predicate_GICombiner13,
2174 GICXXPred_MI_Predicate_GICombiner14,
2175 GICXXPred_MI_Predicate_GICombiner15,
2176 GICXXPred_MI_Predicate_GICombiner16,
2177 GICXXPred_MI_Predicate_GICombiner17,
2178 GICXXPred_MI_Predicate_GICombiner18,
2179 GICXXPred_MI_Predicate_GICombiner19,
2180 GICXXPred_MI_Predicate_GICombiner20,
2181 GICXXPred_MI_Predicate_GICombiner21,
2182 GICXXPred_MI_Predicate_GICombiner22,
2183 GICXXPred_MI_Predicate_GICombiner23,
2184 GICXXPred_MI_Predicate_GICombiner24,
2185 GICXXPred_MI_Predicate_GICombiner25,
2186 GICXXPred_MI_Predicate_GICombiner26,
2187 GICXXPred_MI_Predicate_GICombiner27,
2188 GICXXPred_MI_Predicate_GICombiner28,
2189 GICXXPred_MI_Predicate_GICombiner29,
2190 GICXXPred_MI_Predicate_GICombiner30,
2191 GICXXPred_MI_Predicate_GICombiner31,
2192 GICXXPred_MI_Predicate_GICombiner32,
2193 GICXXPred_MI_Predicate_GICombiner33,
2194 GICXXPred_MI_Predicate_GICombiner34,
2195 GICXXPred_MI_Predicate_GICombiner35,
2196 GICXXPred_MI_Predicate_GICombiner36,
2197};
2198bool AMDGPUPostLegalizerCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
2199 switch (PredicateID) {
2200 case GICXXPred_MI_Predicate_GICombiner0: {
2201 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg());
2202 }
2203 case GICXXPred_MI_Predicate_GICombiner1: {
2204 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg());
2205 }
2206 case GICXXPred_MI_Predicate_GICombiner2: {
2207 return MRI.getType(State.MIs[1]->getOperand(1).getReg()).getScalarSizeInBits() ==
2208 MRI.getType(State.MIs[0]->getOperand(0).getReg()).getScalarSizeInBits();
2209 }
2210 case GICXXPred_MI_Predicate_GICombiner3: {
2211 return isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI);
2212 }
2213 case GICXXPred_MI_Predicate_GICombiner4: {
2214 return isGuaranteedNotToBeUndefOrPoison(State.MIs[0]->getOperand(1).getReg(), MRI);
2215 }
2216 case GICXXPred_MI_Predicate_GICombiner5: {
2217 return Helper.matchUndefShuffleVectorMask(*State.MIs[0]);
2218 }
2219 case GICXXPred_MI_Predicate_GICombiner6: {
2220 return Helper.matchSelectSameVal(*State.MIs[0]);
2221 }
2222 case GICXXPred_MI_Predicate_GICombiner7: {
2223 return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());
2224 }
2225 case GICXXPred_MI_Predicate_GICombiner8: {
2226 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
2227 }
2228 case GICXXPred_MI_Predicate_GICombiner9: {
2229 return MRI.getType(State.MIs[1]->getOperand(1).getReg()) != MRI.getType(State.MIs[0]->getOperand(0).getReg());
2230 }
2231 case GICXXPred_MI_Predicate_GICombiner10: {
2232 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
2233 }
2234 case GICXXPred_MI_Predicate_GICombiner11: {
2235 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 0.0);
2236 }
2237 case GICXXPred_MI_Predicate_GICombiner12: {
2238 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0);
2239 }
2240 case GICXXPred_MI_Predicate_GICombiner13: {
2241 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_EQ &&
2242 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
2243 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
2244 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
2245 }
2246 case GICXXPred_MI_Predicate_GICombiner14: {
2247 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_NE &&
2248 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
2249 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
2250 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
2251 }
2252 case GICXXPred_MI_Predicate_GICombiner15: {
2253 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
2254 Helper.isLegalOrBeforeLegalizer({
2255 TargetOpcode::G_SEXT_INREG,
2256 {MRI.getType(State.MIs[1]->getOperand(1).getReg())},
2257 {},
2258 {1}
2259 });
2260 }
2261 case GICXXPred_MI_Predicate_GICombiner16: {
2262 return !isConstantOrConstantSplatVector(State.MIs[0]->getOperand(1).getReg(), MRI) &&
2263 MRI.getType(State.MIs[0]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg()) &&
2264 VT->computeNumSignBits(State.MIs[0]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg()).getScalarSizeInBits();
2265 }
2266 case GICXXPred_MI_Predicate_GICombiner17: {
2267 return Helper.matchRedundantSExtInReg(*State.MIs[0]);
2268 }
2269 case GICXXPred_MI_Predicate_GICombiner18: {
2270 LLT SrcTy = MRI.getType(State.MIs[1]->getOperand(1).getReg());
2271 return State.MIs[0]->getOperand(2).getImm() <= SrcTy.getScalarSizeInBits() &&
2272 VT->computeNumSignBits(State.MIs[1]->getOperand(1).getReg()) >=
2273 (SrcTy.getScalarSizeInBits() - State.MIs[0]->getOperand(2).getImm() + 1);
2274 llvm_unreachable("GICombiner18 should have returned");
2275 }
2276 case GICXXPred_MI_Predicate_GICombiner19: {
2277 return Helper.matchPtrAddZero(*State.MIs[0]);
2278 }
2279 case GICXXPred_MI_Predicate_GICombiner20: {
2280 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_LSHR,
2281 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
2282 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
2283 }
2284 case GICXXPred_MI_Predicate_GICombiner21: {
2285 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_SHL,
2286 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
2287 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
2288 }
2289 case GICXXPred_MI_Predicate_GICombiner22: {
2290 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
2291 isConstantOrConstantSplatVector(State.MIs[1]->getOperand(2).getReg(), MRI) &&
2292 isConstantOrConstantSplatVector(State.MIs[0]->getOperand(2).getReg(), MRI) &&
2293 Helper.isDesirableToCommuteWithShift(*State.MIs[0]);
2294 }
2295 case GICXXPred_MI_Predicate_GICombiner23: {
2296 return Helper.matchTruncUSatU(*State.MIs[0], *State.MIs[1]);
2297 }
2298 case GICXXPred_MI_Predicate_GICombiner24: {
2299 return Helper.matchTruncUSatUToFPTOUISat(*State.MIs[0], *State.MIs[1]);
2300 }
2301 case GICXXPred_MI_Predicate_GICombiner25: {
2302 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
2303 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
2304 }
2305 case GICXXPred_MI_Predicate_GICombiner26: {
2306 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
2307 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
2308 }
2309 case GICXXPred_MI_Predicate_GICombiner27: {
2310 return MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(2).getReg()) &&
2311 MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg());
2312 }
2313 case GICXXPred_MI_Predicate_GICombiner28: {
2314 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[2]->getOperand(1).getReg(), State.MIs[3]->getOperand(1).getReg(), TargetOpcode::G_UAVGFLOOR);
2315 }
2316 case GICXXPred_MI_Predicate_GICombiner29: {
2317 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[2]->getOperand(1).getReg(), State.MIs[3]->getOperand(1).getReg(), TargetOpcode::G_SAVGFLOOR);
2318 }
2319 case GICXXPred_MI_Predicate_GICombiner30: {
2320 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[3]->getOperand(1).getReg(), State.MIs[4]->getOperand(1).getReg(), TargetOpcode::G_UAVGCEIL);
2321 }
2322 case GICXXPred_MI_Predicate_GICombiner31: {
2323 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[3]->getOperand(1).getReg(), State.MIs[4]->getOperand(1).getReg(), TargetOpcode::G_SAVGCEIL);
2324 }
2325 case GICXXPred_MI_Predicate_GICombiner32: {
2326 return matchRemoveFcanonicalize(*State.MIs[0]);
2327 }
2328 case GICXXPred_MI_Predicate_GICombiner33: {
2329 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
2330 Helper.isLegalOrBeforeLegalizer(
2331 {TargetOpcode::G_UNMERGE_VALUES,
2332 {LLT::integer(16), LLT::integer(32)}});
2333 }
2334 case GICXXPred_MI_Predicate_GICombiner34: {
2335 return Helper.matchConstantIs32BitMask(State.MIs[0]->getOperand(1).getReg()) ||
2336 Helper.matchConstantIs32BitMask(State.MIs[0]->getOperand(2).getReg());
2337 }
2338 case GICXXPred_MI_Predicate_GICombiner35: {
2339 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
2340 isCarryOut(State.MIs[1]->getOperand(1).getReg()) ;
2341 }
2342 case GICXXPred_MI_Predicate_GICombiner36: {
2343 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
2344 isCarryOut(State.MIs[1]->getOperand(1).getReg()) && shouldFoldCarryIntoAdd(State.MIs[0]->getOperand(2).getReg()) ;
2345 }
2346 }
2347 llvm_unreachable("Unknown predicate");
2348 return false;
2349}
2350bool AMDGPUPostLegalizerCombinerImpl::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
2351 llvm_unreachable("Unknown predicate");
2352 return false;
2353}
2354bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
2355 llvm_unreachable("Unknown predicate");
2356 return false;
2357}
2358bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
2359 llvm_unreachable("Unknown predicate");
2360 return false;
2361}
2362bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
2363 llvm_unreachable("Unknown predicate");
2364 return false;
2365}
2366enum {
2367 GICXXPred_Simple_IsRule0Enabled = GICXXPred_Invalid + 1,
2368 GICXXPred_Simple_IsRule1Enabled,
2369 GICXXPred_Simple_IsRule2Enabled,
2370 GICXXPred_Simple_IsRule3Enabled,
2371 GICXXPred_Simple_IsRule4Enabled,
2372 GICXXPred_Simple_IsRule5Enabled,
2373 GICXXPred_Simple_IsRule6Enabled,
2374 GICXXPred_Simple_IsRule7Enabled,
2375 GICXXPred_Simple_IsRule8Enabled,
2376 GICXXPred_Simple_IsRule9Enabled,
2377 GICXXPred_Simple_IsRule10Enabled,
2378 GICXXPred_Simple_IsRule11Enabled,
2379 GICXXPred_Simple_IsRule12Enabled,
2380 GICXXPred_Simple_IsRule13Enabled,
2381 GICXXPred_Simple_IsRule14Enabled,
2382 GICXXPred_Simple_IsRule15Enabled,
2383 GICXXPred_Simple_IsRule16Enabled,
2384 GICXXPred_Simple_IsRule17Enabled,
2385 GICXXPred_Simple_IsRule18Enabled,
2386 GICXXPred_Simple_IsRule19Enabled,
2387 GICXXPred_Simple_IsRule20Enabled,
2388 GICXXPred_Simple_IsRule21Enabled,
2389 GICXXPred_Simple_IsRule22Enabled,
2390 GICXXPred_Simple_IsRule23Enabled,
2391 GICXXPred_Simple_IsRule24Enabled,
2392 GICXXPred_Simple_IsRule25Enabled,
2393 GICXXPred_Simple_IsRule26Enabled,
2394 GICXXPred_Simple_IsRule27Enabled,
2395 GICXXPred_Simple_IsRule28Enabled,
2396 GICXXPred_Simple_IsRule29Enabled,
2397 GICXXPred_Simple_IsRule30Enabled,
2398 GICXXPred_Simple_IsRule31Enabled,
2399 GICXXPred_Simple_IsRule32Enabled,
2400 GICXXPred_Simple_IsRule33Enabled,
2401 GICXXPred_Simple_IsRule34Enabled,
2402 GICXXPred_Simple_IsRule35Enabled,
2403 GICXXPred_Simple_IsRule36Enabled,
2404 GICXXPred_Simple_IsRule37Enabled,
2405 GICXXPred_Simple_IsRule38Enabled,
2406 GICXXPred_Simple_IsRule39Enabled,
2407 GICXXPred_Simple_IsRule40Enabled,
2408 GICXXPred_Simple_IsRule41Enabled,
2409 GICXXPred_Simple_IsRule42Enabled,
2410 GICXXPred_Simple_IsRule43Enabled,
2411 GICXXPred_Simple_IsRule44Enabled,
2412 GICXXPred_Simple_IsRule45Enabled,
2413 GICXXPred_Simple_IsRule46Enabled,
2414 GICXXPred_Simple_IsRule47Enabled,
2415 GICXXPred_Simple_IsRule48Enabled,
2416 GICXXPred_Simple_IsRule49Enabled,
2417 GICXXPred_Simple_IsRule50Enabled,
2418 GICXXPred_Simple_IsRule51Enabled,
2419 GICXXPred_Simple_IsRule52Enabled,
2420 GICXXPred_Simple_IsRule53Enabled,
2421 GICXXPred_Simple_IsRule54Enabled,
2422 GICXXPred_Simple_IsRule55Enabled,
2423 GICXXPred_Simple_IsRule56Enabled,
2424 GICXXPred_Simple_IsRule57Enabled,
2425 GICXXPred_Simple_IsRule58Enabled,
2426 GICXXPred_Simple_IsRule59Enabled,
2427 GICXXPred_Simple_IsRule60Enabled,
2428 GICXXPred_Simple_IsRule61Enabled,
2429 GICXXPred_Simple_IsRule62Enabled,
2430 GICXXPred_Simple_IsRule63Enabled,
2431 GICXXPred_Simple_IsRule64Enabled,
2432 GICXXPred_Simple_IsRule65Enabled,
2433 GICXXPred_Simple_IsRule66Enabled,
2434 GICXXPred_Simple_IsRule67Enabled,
2435 GICXXPred_Simple_IsRule68Enabled,
2436 GICXXPred_Simple_IsRule69Enabled,
2437 GICXXPred_Simple_IsRule70Enabled,
2438 GICXXPred_Simple_IsRule71Enabled,
2439 GICXXPred_Simple_IsRule72Enabled,
2440 GICXXPred_Simple_IsRule73Enabled,
2441 GICXXPred_Simple_IsRule74Enabled,
2442 GICXXPred_Simple_IsRule75Enabled,
2443 GICXXPred_Simple_IsRule76Enabled,
2444 GICXXPred_Simple_IsRule77Enabled,
2445 GICXXPred_Simple_IsRule78Enabled,
2446 GICXXPred_Simple_IsRule79Enabled,
2447 GICXXPred_Simple_IsRule80Enabled,
2448 GICXXPred_Simple_IsRule81Enabled,
2449 GICXXPred_Simple_IsRule82Enabled,
2450 GICXXPred_Simple_IsRule83Enabled,
2451 GICXXPred_Simple_IsRule84Enabled,
2452 GICXXPred_Simple_IsRule85Enabled,
2453 GICXXPred_Simple_IsRule86Enabled,
2454 GICXXPred_Simple_IsRule87Enabled,
2455 GICXXPred_Simple_IsRule88Enabled,
2456 GICXXPred_Simple_IsRule89Enabled,
2457 GICXXPred_Simple_IsRule90Enabled,
2458 GICXXPred_Simple_IsRule91Enabled,
2459 GICXXPred_Simple_IsRule92Enabled,
2460 GICXXPred_Simple_IsRule93Enabled,
2461 GICXXPred_Simple_IsRule94Enabled,
2462 GICXXPred_Simple_IsRule95Enabled,
2463 GICXXPred_Simple_IsRule96Enabled,
2464 GICXXPred_Simple_IsRule97Enabled,
2465 GICXXPred_Simple_IsRule98Enabled,
2466 GICXXPred_Simple_IsRule99Enabled,
2467 GICXXPred_Simple_IsRule100Enabled,
2468 GICXXPred_Simple_IsRule101Enabled,
2469 GICXXPred_Simple_IsRule102Enabled,
2470 GICXXPred_Simple_IsRule103Enabled,
2471 GICXXPred_Simple_IsRule104Enabled,
2472 GICXXPred_Simple_IsRule105Enabled,
2473 GICXXPred_Simple_IsRule106Enabled,
2474 GICXXPred_Simple_IsRule107Enabled,
2475 GICXXPred_Simple_IsRule108Enabled,
2476 GICXXPred_Simple_IsRule109Enabled,
2477 GICXXPred_Simple_IsRule110Enabled,
2478 GICXXPred_Simple_IsRule111Enabled,
2479 GICXXPred_Simple_IsRule112Enabled,
2480 GICXXPred_Simple_IsRule113Enabled,
2481 GICXXPred_Simple_IsRule114Enabled,
2482 GICXXPred_Simple_IsRule115Enabled,
2483 GICXXPred_Simple_IsRule116Enabled,
2484 GICXXPred_Simple_IsRule117Enabled,
2485 GICXXPred_Simple_IsRule118Enabled,
2486 GICXXPred_Simple_IsRule119Enabled,
2487 GICXXPred_Simple_IsRule120Enabled,
2488 GICXXPred_Simple_IsRule121Enabled,
2489 GICXXPred_Simple_IsRule122Enabled,
2490 GICXXPred_Simple_IsRule123Enabled,
2491 GICXXPred_Simple_IsRule124Enabled,
2492 GICXXPred_Simple_IsRule125Enabled,
2493 GICXXPred_Simple_IsRule126Enabled,
2494 GICXXPred_Simple_IsRule127Enabled,
2495 GICXXPred_Simple_IsRule128Enabled,
2496 GICXXPred_Simple_IsRule129Enabled,
2497 GICXXPred_Simple_IsRule130Enabled,
2498 GICXXPred_Simple_IsRule131Enabled,
2499 GICXXPred_Simple_IsRule132Enabled,
2500 GICXXPred_Simple_IsRule133Enabled,
2501 GICXXPred_Simple_IsRule134Enabled,
2502 GICXXPred_Simple_IsRule135Enabled,
2503 GICXXPred_Simple_IsRule136Enabled,
2504 GICXXPred_Simple_IsRule137Enabled,
2505 GICXXPred_Simple_IsRule138Enabled,
2506 GICXXPred_Simple_IsRule139Enabled,
2507 GICXXPred_Simple_IsRule140Enabled,
2508 GICXXPred_Simple_IsRule141Enabled,
2509 GICXXPred_Simple_IsRule142Enabled,
2510 GICXXPred_Simple_IsRule143Enabled,
2511 GICXXPred_Simple_IsRule144Enabled,
2512 GICXXPred_Simple_IsRule145Enabled,
2513 GICXXPred_Simple_IsRule146Enabled,
2514 GICXXPred_Simple_IsRule147Enabled,
2515 GICXXPred_Simple_IsRule148Enabled,
2516 GICXXPred_Simple_IsRule149Enabled,
2517 GICXXPred_Simple_IsRule150Enabled,
2518 GICXXPred_Simple_IsRule151Enabled,
2519 GICXXPred_Simple_IsRule152Enabled,
2520 GICXXPred_Simple_IsRule153Enabled,
2521 GICXXPred_Simple_IsRule154Enabled,
2522 GICXXPred_Simple_IsRule155Enabled,
2523 GICXXPred_Simple_IsRule156Enabled,
2524 GICXXPred_Simple_IsRule157Enabled,
2525 GICXXPred_Simple_IsRule158Enabled,
2526 GICXXPred_Simple_IsRule159Enabled,
2527 GICXXPred_Simple_IsRule160Enabled,
2528 GICXXPred_Simple_IsRule161Enabled,
2529 GICXXPred_Simple_IsRule162Enabled,
2530 GICXXPred_Simple_IsRule163Enabled,
2531 GICXXPred_Simple_IsRule164Enabled,
2532 GICXXPred_Simple_IsRule165Enabled,
2533 GICXXPred_Simple_IsRule166Enabled,
2534 GICXXPred_Simple_IsRule167Enabled,
2535 GICXXPred_Simple_IsRule168Enabled,
2536 GICXXPred_Simple_IsRule169Enabled,
2537 GICXXPred_Simple_IsRule170Enabled,
2538 GICXXPred_Simple_IsRule171Enabled,
2539 GICXXPred_Simple_IsRule172Enabled,
2540 GICXXPred_Simple_IsRule173Enabled,
2541 GICXXPred_Simple_IsRule174Enabled,
2542 GICXXPred_Simple_IsRule175Enabled,
2543 GICXXPred_Simple_IsRule176Enabled,
2544 GICXXPred_Simple_IsRule177Enabled,
2545 GICXXPred_Simple_IsRule178Enabled,
2546 GICXXPred_Simple_IsRule179Enabled,
2547 GICXXPred_Simple_IsRule180Enabled,
2548 GICXXPred_Simple_IsRule181Enabled,
2549 GICXXPred_Simple_IsRule182Enabled,
2550 GICXXPred_Simple_IsRule183Enabled,
2551 GICXXPred_Simple_IsRule184Enabled,
2552 GICXXPred_Simple_IsRule185Enabled,
2553 GICXXPred_Simple_IsRule186Enabled,
2554 GICXXPred_Simple_IsRule187Enabled,
2555 GICXXPred_Simple_IsRule188Enabled,
2556 GICXXPred_Simple_IsRule189Enabled,
2557 GICXXPred_Simple_IsRule190Enabled,
2558 GICXXPred_Simple_IsRule191Enabled,
2559 GICXXPred_Simple_IsRule192Enabled,
2560 GICXXPred_Simple_IsRule193Enabled,
2561 GICXXPred_Simple_IsRule194Enabled,
2562 GICXXPred_Simple_IsRule195Enabled,
2563 GICXXPred_Simple_IsRule196Enabled,
2564 GICXXPred_Simple_IsRule197Enabled,
2565 GICXXPred_Simple_IsRule198Enabled,
2566 GICXXPred_Simple_IsRule199Enabled,
2567 GICXXPred_Simple_IsRule200Enabled,
2568 GICXXPred_Simple_IsRule201Enabled,
2569 GICXXPred_Simple_IsRule202Enabled,
2570 GICXXPred_Simple_IsRule203Enabled,
2571 GICXXPred_Simple_IsRule204Enabled,
2572 GICXXPred_Simple_IsRule205Enabled,
2573 GICXXPred_Simple_IsRule206Enabled,
2574 GICXXPred_Simple_IsRule207Enabled,
2575 GICXXPred_Simple_IsRule208Enabled,
2576 GICXXPred_Simple_IsRule209Enabled,
2577 GICXXPred_Simple_IsRule210Enabled,
2578 GICXXPred_Simple_IsRule211Enabled,
2579 GICXXPred_Simple_IsRule212Enabled,
2580 GICXXPred_Simple_IsRule213Enabled,
2581 GICXXPred_Simple_IsRule214Enabled,
2582 GICXXPred_Simple_IsRule215Enabled,
2583 GICXXPred_Simple_IsRule216Enabled,
2584 GICXXPred_Simple_IsRule217Enabled,
2585 GICXXPred_Simple_IsRule218Enabled,
2586 GICXXPred_Simple_IsRule219Enabled,
2587 GICXXPred_Simple_IsRule220Enabled,
2588 GICXXPred_Simple_IsRule221Enabled,
2589 GICXXPred_Simple_IsRule222Enabled,
2590 GICXXPred_Simple_IsRule223Enabled,
2591 GICXXPred_Simple_IsRule224Enabled,
2592 GICXXPred_Simple_IsRule225Enabled,
2593 GICXXPred_Simple_IsRule226Enabled,
2594 GICXXPred_Simple_IsRule227Enabled,
2595 GICXXPred_Simple_IsRule228Enabled,
2596 GICXXPred_Simple_IsRule229Enabled,
2597 GICXXPred_Simple_IsRule230Enabled,
2598 GICXXPred_Simple_IsRule231Enabled,
2599 GICXXPred_Simple_IsRule232Enabled,
2600 GICXXPred_Simple_IsRule233Enabled,
2601 GICXXPred_Simple_IsRule234Enabled,
2602 GICXXPred_Simple_IsRule235Enabled,
2603 GICXXPred_Simple_IsRule236Enabled,
2604 GICXXPred_Simple_IsRule237Enabled,
2605 GICXXPred_Simple_IsRule238Enabled,
2606 GICXXPred_Simple_IsRule239Enabled,
2607 GICXXPred_Simple_IsRule240Enabled,
2608 GICXXPred_Simple_IsRule241Enabled,
2609 GICXXPred_Simple_IsRule242Enabled,
2610 GICXXPred_Simple_IsRule243Enabled,
2611 GICXXPred_Simple_IsRule244Enabled,
2612 GICXXPred_Simple_IsRule245Enabled,
2613 GICXXPred_Simple_IsRule246Enabled,
2614 GICXXPred_Simple_IsRule247Enabled,
2615 GICXXPred_Simple_IsRule248Enabled,
2616 GICXXPred_Simple_IsRule249Enabled,
2617 GICXXPred_Simple_IsRule250Enabled,
2618 GICXXPred_Simple_IsRule251Enabled,
2619 GICXXPred_Simple_IsRule252Enabled,
2620 GICXXPred_Simple_IsRule253Enabled,
2621 GICXXPred_Simple_IsRule254Enabled,
2622 GICXXPred_Simple_IsRule255Enabled,
2623 GICXXPred_Simple_IsRule256Enabled,
2624 GICXXPred_Simple_IsRule257Enabled,
2625 GICXXPred_Simple_IsRule258Enabled,
2626 GICXXPred_Simple_IsRule259Enabled,
2627 GICXXPred_Simple_IsRule260Enabled,
2628 GICXXPred_Simple_IsRule261Enabled,
2629 GICXXPred_Simple_IsRule262Enabled,
2630 GICXXPred_Simple_IsRule263Enabled,
2631 GICXXPred_Simple_IsRule264Enabled,
2632 GICXXPred_Simple_IsRule265Enabled,
2633 GICXXPred_Simple_IsRule266Enabled,
2634 GICXXPred_Simple_IsRule267Enabled,
2635 GICXXPred_Simple_IsRule268Enabled,
2636 GICXXPred_Simple_IsRule269Enabled,
2637 GICXXPred_Simple_IsRule270Enabled,
2638 GICXXPred_Simple_IsRule271Enabled,
2639 GICXXPred_Simple_IsRule272Enabled,
2640 GICXXPred_Simple_IsRule273Enabled,
2641 GICXXPred_Simple_IsRule274Enabled,
2642 GICXXPred_Simple_IsRule275Enabled,
2643 GICXXPred_Simple_IsRule276Enabled,
2644 GICXXPred_Simple_IsRule277Enabled,
2645 GICXXPred_Simple_IsRule278Enabled,
2646 GICXXPred_Simple_IsRule279Enabled,
2647 GICXXPred_Simple_IsRule280Enabled,
2648 GICXXPred_Simple_IsRule281Enabled,
2649 GICXXPred_Simple_IsRule282Enabled,
2650 GICXXPred_Simple_IsRule283Enabled,
2651 GICXXPred_Simple_IsRule284Enabled,
2652 GICXXPred_Simple_IsRule285Enabled,
2653 GICXXPred_Simple_IsRule286Enabled,
2654 GICXXPred_Simple_IsRule287Enabled,
2655 GICXXPred_Simple_IsRule288Enabled,
2656 GICXXPred_Simple_IsRule289Enabled,
2657 GICXXPred_Simple_IsRule290Enabled,
2658 GICXXPred_Simple_IsRule291Enabled,
2659 GICXXPred_Simple_IsRule292Enabled,
2660 GICXXPred_Simple_IsRule293Enabled,
2661 GICXXPred_Simple_IsRule294Enabled,
2662 GICXXPred_Simple_IsRule295Enabled,
2663 GICXXPred_Simple_IsRule296Enabled,
2664 GICXXPred_Simple_IsRule297Enabled,
2665 GICXXPred_Simple_IsRule298Enabled,
2666 GICXXPred_Simple_IsRule299Enabled,
2667 GICXXPred_Simple_IsRule300Enabled,
2668 GICXXPred_Simple_IsRule301Enabled,
2669 GICXXPred_Simple_IsRule302Enabled,
2670};
2671
2672bool AMDGPUPostLegalizerCombinerImpl::testSimplePredicate(unsigned Predicate) const {
2673 return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1);
2674}
2675// Custom renderers.
2676enum {
2677 GICR_Invalid,
2678};
2679AMDGPUPostLegalizerCombinerImpl::CustomRendererFn
2680AMDGPUPostLegalizerCombinerImpl::CustomRenderers[] = {
2681 nullptr, // GICR_Invalid
2682};
2683
2684bool AMDGPUPostLegalizerCombinerImpl::canMatchOpcode(unsigned Opc) const {
2685 switch (Opc) {
2686 case TargetOpcode::G_FCMP:
2687 case TargetOpcode::G_FMA:
2688 case TargetOpcode::G_FMAD:
2689 case TargetOpcode::G_FSHL:
2690 case TargetOpcode::G_FSHR:
2691 case TargetOpcode::G_ICMP:
2692 case TargetOpcode::G_INSERT_VECTOR_ELT:
2693 case TargetOpcode::G_SELECT:
2694 case TargetOpcode::G_SHUFFLE_VECTOR:
2695 case TargetOpcode::G_ADD:
2696 case TargetOpcode::G_AND:
2697 case TargetOpcode::G_ASHR:
2698 case TargetOpcode::G_EXTRACT_VECTOR_ELT:
2699 case TargetOpcode::G_FADD:
2700 case TargetOpcode::G_FCOPYSIGN:
2701 case TargetOpcode::G_FDIV:
2702 case TargetOpcode::G_FMAXIMUM:
2703 case TargetOpcode::G_FMAXIMUMNUM:
2704 case TargetOpcode::G_FMAXNUM:
2705 case TargetOpcode::G_FMINIMUM:
2706 case TargetOpcode::G_FMINIMUMNUM:
2707 case TargetOpcode::G_FMINNUM:
2708 case TargetOpcode::G_FMUL:
2709 case TargetOpcode::G_FPOWI:
2710 case TargetOpcode::G_FREM:
2711 case TargetOpcode::G_FSUB:
2712 case TargetOpcode::G_INTRINSIC:
2713 case TargetOpcode::G_LSHR:
2714 case TargetOpcode::G_MERGE_VALUES:
2715 case TargetOpcode::G_MUL:
2716 case TargetOpcode::G_OR:
2717 case TargetOpcode::G_PTR_ADD:
2718 case TargetOpcode::G_ROTL:
2719 case TargetOpcode::G_ROTR:
2720 case TargetOpcode::G_SDIV:
2721 case TargetOpcode::G_SEXT_INREG:
2722 case TargetOpcode::G_SHL:
2723 case TargetOpcode::G_SREM:
2724 case TargetOpcode::G_SUB:
2725 case TargetOpcode::G_UDIV:
2726 case TargetOpcode::G_UMULH:
2727 case TargetOpcode::G_UREM:
2728 case TargetOpcode::G_XOR:
2729 case TargetOpcode::COPY:
2730 case TargetOpcode::G_ABS:
2731 case AMDGPU::G_AMDGPU_CVT_F32_UBYTE0:
2732 case AMDGPU::G_AMDGPU_CVT_F32_UBYTE1:
2733 case AMDGPU::G_AMDGPU_CVT_F32_UBYTE2:
2734 case AMDGPU::G_AMDGPU_CVT_F32_UBYTE3:
2735 case TargetOpcode::G_ANYEXT:
2736 case TargetOpcode::G_BITCAST:
2737 case TargetOpcode::G_BITREVERSE:
2738 case TargetOpcode::G_BSWAP:
2739 case TargetOpcode::G_BUILD_VECTOR:
2740 case TargetOpcode::G_CONCAT_VECTORS:
2741 case TargetOpcode::G_CTLZ:
2742 case TargetOpcode::G_CTLZ_ZERO_POISON:
2743 case TargetOpcode::G_CTPOP:
2744 case TargetOpcode::G_CTTZ:
2745 case TargetOpcode::G_CTTZ_ZERO_POISON:
2746 case TargetOpcode::G_FABS:
2747 case TargetOpcode::G_FCANONICALIZE:
2748 case TargetOpcode::G_FCEIL:
2749 case TargetOpcode::G_FFLOOR:
2750 case TargetOpcode::G_FLOG2:
2751 case TargetOpcode::G_FNEARBYINT:
2752 case TargetOpcode::G_FNEG:
2753 case TargetOpcode::G_FPEXT:
2754 case TargetOpcode::G_FPTOSI:
2755 case TargetOpcode::G_FPTOUI:
2756 case TargetOpcode::G_FPTRUNC:
2757 case TargetOpcode::G_FREEZE:
2758 case TargetOpcode::G_FRINT:
2759 case TargetOpcode::G_FSQRT:
2760 case TargetOpcode::G_INTRINSIC_ROUND:
2761 case TargetOpcode::G_INTRINSIC_ROUNDEVEN:
2762 case TargetOpcode::G_INTRINSIC_TRUNC:
2763 case TargetOpcode::G_INTTOPTR:
2764 case TargetOpcode::G_PHI:
2765 case TargetOpcode::G_PTRTOINT:
2766 case TargetOpcode::G_SEXT:
2767 case TargetOpcode::G_SITOFP:
2768 case TargetOpcode::G_TRUNC:
2769 case TargetOpcode::G_TRUNC_USAT_U:
2770 case TargetOpcode::G_UITOFP:
2771 case TargetOpcode::G_ZEXT:
2772 case TargetOpcode::G_BR:
2773 case TargetOpcode::G_BUILD_VECTOR_TRUNC:
2774 case TargetOpcode::G_FMAXNUM_IEEE:
2775 case TargetOpcode::G_FMINNUM_IEEE:
2776 case TargetOpcode::G_LOAD:
2777 case TargetOpcode::G_SADDE:
2778 case TargetOpcode::G_SADDO:
2779 case TargetOpcode::G_SADDSAT:
2780 case TargetOpcode::G_SEXTLOAD:
2781 case TargetOpcode::G_SMAX:
2782 case TargetOpcode::G_SMIN:
2783 case TargetOpcode::G_SMULFIX:
2784 case TargetOpcode::G_SMULFIXSAT:
2785 case TargetOpcode::G_SMULH:
2786 case TargetOpcode::G_SMULO:
2787 case TargetOpcode::G_SSHLSAT:
2788 case TargetOpcode::G_SSUBE:
2789 case TargetOpcode::G_SSUBO:
2790 case TargetOpcode::G_STORE:
2791 case TargetOpcode::G_UADDE:
2792 case TargetOpcode::G_UADDO:
2793 case TargetOpcode::G_UADDSAT:
2794 case TargetOpcode::G_UMAX:
2795 case TargetOpcode::G_UMIN:
2796 case TargetOpcode::G_UMULFIX:
2797 case TargetOpcode::G_UMULFIXSAT:
2798 case TargetOpcode::G_UMULO:
2799 case TargetOpcode::G_UNMERGE_VALUES:
2800 case TargetOpcode::G_USHLSAT:
2801 case TargetOpcode::G_USUBE:
2802 case TargetOpcode::G_USUBO:
2803 case TargetOpcode::G_ZEXTLOAD:
2804 return true;
2805 default:
2806 return false;
2807 }
2808}
2809
2810uint32_t AMDGPUPostLegalizerCombinerImpl::getRootFlagsToDrop() const {
2811 return MachineInstr::getPoisonGeneratingFlags();
2812}
2813
2814bool AMDGPUPostLegalizerCombinerImpl::tryCombineAllImpl(MachineInstr &I) const {
2815 const PredicateBitset AvailableFeatures = getAvailableFeatures();
2816 State.MIs.clear();
2817 State.MIs.push_back(&I);
2818 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), Helper.getTII(), MRI, Helper.getTRI(), Helper.getRBI(), AvailableFeatures, /*CoverageInfo*/ nullptr)) {
2819 return true;
2820 }
2821
2822 return false;
2823}
2824
2825enum {
2826 GICXXCustomAction_GICombiner0 = GICXXCustomAction_Invalid + 1,
2827 GICXXCustomAction_GICombiner1,
2828 GICXXCustomAction_GICombiner2,
2829 GICXXCustomAction_GICombiner3,
2830 GICXXCustomAction_GICombiner4,
2831 GICXXCustomAction_GICombiner5,
2832 GICXXCustomAction_GICombiner6,
2833 GICXXCustomAction_GICombiner7,
2834 GICXXCustomAction_GICombiner8,
2835 GICXXCustomAction_GICombiner9,
2836 GICXXCustomAction_GICombiner10,
2837 GICXXCustomAction_GICombiner11,
2838 GICXXCustomAction_GICombiner12,
2839 GICXXCustomAction_GICombiner13,
2840 GICXXCustomAction_GICombiner14,
2841 GICXXCustomAction_GICombiner15,
2842 GICXXCustomAction_GICombiner16,
2843 GICXXCustomAction_GICombiner17,
2844 GICXXCustomAction_GICombiner18,
2845 GICXXCustomAction_GICombiner19,
2846 GICXXCustomAction_GICombiner20,
2847 GICXXCustomAction_GICombiner21,
2848 GICXXCustomAction_GICombiner22,
2849 GICXXCustomAction_GICombiner23,
2850 GICXXCustomAction_GICombiner24,
2851 GICXXCustomAction_GICombiner25,
2852 GICXXCustomAction_GICombiner26,
2853 GICXXCustomAction_GICombiner27,
2854 GICXXCustomAction_GICombiner28,
2855 GICXXCustomAction_GICombiner29,
2856 GICXXCustomAction_GICombiner30,
2857 GICXXCustomAction_GICombiner31,
2858 GICXXCustomAction_GICombiner32,
2859 GICXXCustomAction_GICombiner33,
2860 GICXXCustomAction_GICombiner34,
2861 GICXXCustomAction_GICombiner35,
2862 GICXXCustomAction_GICombiner36,
2863 GICXXCustomAction_GICombiner37,
2864 GICXXCustomAction_GICombiner38,
2865 GICXXCustomAction_GICombiner39,
2866 GICXXCustomAction_GICombiner40,
2867 GICXXCustomAction_GICombiner41,
2868 GICXXCustomAction_GICombiner42,
2869 GICXXCustomAction_GICombiner43,
2870 GICXXCustomAction_GICombiner44,
2871 GICXXCustomAction_GICombiner45,
2872 GICXXCustomAction_GICombiner46,
2873 GICXXCustomAction_GICombiner47,
2874 GICXXCustomAction_GICombiner48,
2875 GICXXCustomAction_GICombiner49,
2876 GICXXCustomAction_GICombiner50,
2877 GICXXCustomAction_GICombiner51,
2878 GICXXCustomAction_GICombiner52,
2879 GICXXCustomAction_GICombiner53,
2880 GICXXCustomAction_GICombiner54,
2881 GICXXCustomAction_GICombiner55,
2882 GICXXCustomAction_GICombiner56,
2883 GICXXCustomAction_GICombiner57,
2884 GICXXCustomAction_GICombiner58,
2885 GICXXCustomAction_GICombiner59,
2886 GICXXCustomAction_GICombiner60,
2887 GICXXCustomAction_GICombiner61,
2888 GICXXCustomAction_GICombiner62,
2889 GICXXCustomAction_GICombiner63,
2890 GICXXCustomAction_GICombiner64,
2891 GICXXCustomAction_GICombiner65,
2892 GICXXCustomAction_GICombiner66,
2893 GICXXCustomAction_GICombiner67,
2894 GICXXCustomAction_GICombiner68,
2895 GICXXCustomAction_GICombiner69,
2896 GICXXCustomAction_GICombiner70,
2897 GICXXCustomAction_GICombiner71,
2898 GICXXCustomAction_GICombiner72,
2899 GICXXCustomAction_GICombiner73,
2900 GICXXCustomAction_GICombiner74,
2901 GICXXCustomAction_GICombiner75,
2902 GICXXCustomAction_GICombiner76,
2903 GICXXCustomAction_GICombiner77,
2904 GICXXCustomAction_GICombiner78,
2905 GICXXCustomAction_GICombiner79,
2906 GICXXCustomAction_GICombiner80,
2907 GICXXCustomAction_GICombiner81,
2908 GICXXCustomAction_GICombiner82,
2909 GICXXCustomAction_GICombiner83,
2910 GICXXCustomAction_GICombiner84,
2911 GICXXCustomAction_GICombiner85,
2912 GICXXCustomAction_GICombiner86,
2913 GICXXCustomAction_GICombiner87,
2914 GICXXCustomAction_GICombiner88,
2915 GICXXCustomAction_GICombiner89,
2916 GICXXCustomAction_GICombiner90,
2917 GICXXCustomAction_GICombiner91,
2918 GICXXCustomAction_GICombiner92,
2919 GICXXCustomAction_GICombiner93,
2920 GICXXCustomAction_GICombiner94,
2921 GICXXCustomAction_GICombiner95,
2922 GICXXCustomAction_GICombiner96,
2923 GICXXCustomAction_GICombiner97,
2924 GICXXCustomAction_GICombiner98,
2925 GICXXCustomAction_GICombiner99,
2926 GICXXCustomAction_GICombiner100,
2927 GICXXCustomAction_GICombiner101,
2928 GICXXCustomAction_GICombiner102,
2929 GICXXCustomAction_GICombiner103,
2930 GICXXCustomAction_GICombiner104,
2931 GICXXCustomAction_GICombiner105,
2932 GICXXCustomAction_GICombiner106,
2933 GICXXCustomAction_GICombiner107,
2934 GICXXCustomAction_GICombiner108,
2935 GICXXCustomAction_GICombiner109,
2936 GICXXCustomAction_GICombiner110,
2937 GICXXCustomAction_GICombiner111,
2938 GICXXCustomAction_GICombiner112,
2939 GICXXCustomAction_GICombiner113,
2940 GICXXCustomAction_GICombiner114,
2941 GICXXCustomAction_GICombiner115,
2942 GICXXCustomAction_GICombiner116,
2943 GICXXCustomAction_GICombiner117,
2944 GICXXCustomAction_GICombiner118,
2945 GICXXCustomAction_GICombiner119,
2946 GICXXCustomAction_GICombiner120,
2947 GICXXCustomAction_GICombiner121,
2948 GICXXCustomAction_GICombiner122,
2949 GICXXCustomAction_GICombiner123,
2950 GICXXCustomAction_GICombiner124,
2951 GICXXCustomAction_GICombiner125,
2952 GICXXCustomAction_GICombiner126,
2953 GICXXCustomAction_GICombiner127,
2954 GICXXCustomAction_GICombiner128,
2955 GICXXCustomAction_GICombiner129,
2956 GICXXCustomAction_GICombiner130,
2957 GICXXCustomAction_GICombiner131,
2958 GICXXCustomAction_GICombiner132,
2959 GICXXCustomAction_GICombiner133,
2960 GICXXCustomAction_GICombiner134,
2961 GICXXCustomAction_GICombiner135,
2962 GICXXCustomAction_GICombiner136,
2963 GICXXCustomAction_GICombiner137,
2964 GICXXCustomAction_GICombiner138,
2965 GICXXCustomAction_GICombiner139,
2966 GICXXCustomAction_GICombiner140,
2967 GICXXCustomAction_GICombiner141,
2968 GICXXCustomAction_GICombiner142,
2969 GICXXCustomAction_GICombiner143,
2970 GICXXCustomAction_GICombiner144,
2971 GICXXCustomAction_GICombiner145,
2972 GICXXCustomAction_GICombiner146,
2973 GICXXCustomAction_GICombiner147,
2974 GICXXCustomAction_GICombiner148,
2975 GICXXCustomAction_GICombiner149,
2976 GICXXCustomAction_GICombiner150,
2977 GICXXCustomAction_GICombiner151,
2978 GICXXCustomAction_GICombiner152,
2979 GICXXCustomAction_GICombiner153,
2980 GICXXCustomAction_GICombiner154,
2981 GICXXCustomAction_GICombiner155,
2982 GICXXCustomAction_GICombiner156,
2983 GICXXCustomAction_GICombiner157,
2984 GICXXCustomAction_GICombiner158,
2985};
2986bool AMDGPUPostLegalizerCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const {
2987 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
2988 switch(ApplyID) {
2989 case GICXXCustomAction_GICombiner0:{
2990 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2991 // Match Patterns
2992 if(![&](){return Helper.matchFoldAPlusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2993 return false;
2994 }
2995 // Apply Patterns
2996 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2997 return true;
2998 }
2999 case GICXXCustomAction_GICombiner1:{
3000 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3001 // Match Patterns
3002 if(![&](){return Helper.matchFoldC2MinusAPlusC1(*State.MIs[0], GIMatchData_matchinfo);}()) {
3003 return false;
3004 }
3005 // Apply Patterns
3006 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3007 return true;
3008 }
3009 case GICXXCustomAction_GICombiner2:{
3010 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3011 // Match Patterns
3012 if(![&](){return Helper.matchFoldAMinusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3013 return false;
3014 }
3015 // Apply Patterns
3016 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3017 return true;
3018 }
3019 case GICXXCustomAction_GICombiner3:{
3020 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3021 // Match Patterns
3022 if(![&](){return Helper.matchFoldC1Minus2MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3023 return false;
3024 }
3025 // Apply Patterns
3026 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3027 return true;
3028 }
3029 case GICXXCustomAction_GICombiner4:{
3030 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3031 // Match Patterns
3032 if(![&](){return Helper.matchFoldAMinusC1PlusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3033 return false;
3034 }
3035 // Apply Patterns
3036 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3037 return true;
3038 }
3039 case GICXXCustomAction_GICombiner5:{
3040 // Match Patterns
3041 if(![&](){return Helper.matchCombineCopy(*State.MIs[0]);}()) {
3042 return false;
3043 }
3044 // Apply Patterns
3045 Helper.applyCombineCopy(*State.MIs[0]);
3046 return true;
3047 }
3048 case GICXXCustomAction_GICombiner6:{
3049 unsigned GIMatchData_matchinfo;
3050 // Match Patterns
3051 if(![&](){return Helper.matchCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);}()) {
3052 return false;
3053 }
3054 // Apply Patterns
3055 Helper.applyCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);
3056 return true;
3057 }
3058 case GICXXCustomAction_GICombiner7:{
3059 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3060 // Match Patterns
3061 if(![&](){return Helper.matchCombineSubToAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3062 return false;
3063 }
3064 // Apply Patterns
3065 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3066 return true;
3067 }
3068 case GICXXCustomAction_GICombiner8:{
3069 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3070 // Match Patterns
3071 if(![&](){return Helper.matchExtractVectorElement(*State.MIs[0], GIMatchData_matchinfo);}()) {
3072 return false;
3073 }
3074 // Apply Patterns
3075 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3076 return true;
3077 }
3078 case GICXXCustomAction_GICombiner9:{
3079 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3080 // Match Patterns
3081 if(![&](){return Helper.matchInsertVectorElementOOB(*State.MIs[0], GIMatchData_matchinfo);}()) {
3082 return false;
3083 }
3084 // Apply Patterns
3085 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3086 return true;
3087 }
3088 case GICXXCustomAction_GICombiner10:{
3089 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3090 // Match Patterns
3091 if(![&](){return Helper.matchExtractVectorElementWithDifferentIndices(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3092 return false;
3093 }
3094 // Apply Patterns
3095 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3096 return true;
3097 }
3098 case GICXXCustomAction_GICombiner11:{
3099 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3100 // Match Patterns
3101 if(![&](){return Helper.matchExtractVectorElementWithBuildVector(*State.MIs[0], *State.MIs[1],
3102 GIMatchData_matchinfo);}()) {
3103 return false;
3104 }
3105 // Apply Patterns
3106 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3107 return true;
3108 }
3109 case GICXXCustomAction_GICombiner12:{
3110 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3111 // Match Patterns
3112 if(![&](){return Helper.matchExtractVectorElementWithBuildVectorTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3113 return false;
3114 }
3115 // Apply Patterns
3116 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3117 return true;
3118 }
3119 case GICXXCustomAction_GICombiner13:{
3120 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3121 // Match Patterns
3122 if(![&](){return Helper.matchExtractVectorElementWithShuffleVector(*State.MIs[0], *State.MIs[1],
3123 GIMatchData_matchinfo);}()) {
3124 return false;
3125 }
3126 // Apply Patterns
3127 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3128 return true;
3129 }
3130 case GICXXCustomAction_GICombiner14:{
3131 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3132 // Match Patterns
3133 if(![&](){return Helper.matchAddOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3134 return false;
3135 }
3136 // Apply Patterns
3137 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3138 return true;
3139 }
3140 case GICXXCustomAction_GICombiner15:{
3141 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3142 // Match Patterns
3143 if(![&](){return Helper.matchMulOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3144 return false;
3145 }
3146 // Apply Patterns
3147 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3148 return true;
3149 }
3150 case GICXXCustomAction_GICombiner16:{
3151 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3152 // Match Patterns
3153 if(![&](){return Helper.matchShlOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3154 return false;
3155 }
3156 // Apply Patterns
3157 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3158 return true;
3159 }
3160 case GICXXCustomAction_GICombiner17:{
3161 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3162 // Match Patterns
3163 if(![&](){return Helper.matchSubOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3164 return false;
3165 }
3166 // Apply Patterns
3167 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3168 return true;
3169 }
3170 case GICXXCustomAction_GICombiner18:{
3171 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3172 // Match Patterns
3173 if(![&](){return !isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI) && Helper.matchFreezeOfSingleMaybePoisonOperand(*State.MIs[0], GIMatchData_matchinfo);}()) {
3174 return false;
3175 }
3176 // Apply Patterns
3177 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3178 return true;
3179 }
3180 case GICXXCustomAction_GICombiner19:{
3181 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3182 // Match Patterns
3183 if(![&](){return Helper.matchTruncateOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3184 return false;
3185 }
3186 // Apply Patterns
3187 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3188 return true;
3189 }
3190 case GICXXCustomAction_GICombiner20:{
3191 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3192 // Match Patterns
3193 if(![&](){return Helper.matchExtOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3194 return false;
3195 }
3196 // Apply Patterns
3197 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3198 return true;
3199 }
3200 case GICXXCustomAction_GICombiner21:{
3201 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3202 // Match Patterns
3203 if(![&](){return Helper.matchRedundantSextInReg(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3204 return false;
3205 }
3206 // Apply Patterns
3207 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3208 return true;
3209 }
3210 case GICXXCustomAction_GICombiner22:{
3211 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3212 // Match Patterns
3213 if(![&](){return Helper.matchCastOfSelect(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3214 return false;
3215 }
3216 // Apply Patterns
3217 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3218 return true;
3219 }
3220 case GICXXCustomAction_GICombiner23:{
3221 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3222 // Match Patterns
3223 if(![&](){return Helper.matchCastOfBuildVector(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3224 return false;
3225 }
3226 // Apply Patterns
3227 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3228 return true;
3229 }
3230 case GICXXCustomAction_GICombiner24:{
3231 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3232 // Match Patterns
3233 if(![&](){return Helper.matchNarrowBinop(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3234 return false;
3235 }
3236 // Apply Patterns
3237 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3238 return true;
3239 }
3240 case GICXXCustomAction_GICombiner25:{
3241 APInt GIMatchData_matchinfo;
3242 // Match Patterns
3243 if(![&](){return Helper.matchCastOfInteger(*State.MIs[0], GIMatchData_matchinfo);}()) {
3244 return false;
3245 }
3246 // Apply Patterns
3247 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3248 return true;
3249 }
3250 case GICXXCustomAction_GICombiner26:{
3251 SmallVector<Register> GIMatchData_info;
3252 // Match Patterns
3253 if(![&](){return Helper.matchCombineInsertVecElts(*State.MIs[0], GIMatchData_info);}()) {
3254 return false;
3255 }
3256 // Apply Patterns
3257 Helper.applyCombineInsertVecElts(*State.MIs[0], GIMatchData_info);
3258 return true;
3259 }
3260 case GICXXCustomAction_GICombiner27:{
3261 Register GIMatchData_matchinfo;
3262 // Match Patterns
3263 if(![&](){return Helper.matchExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);}()) {
3264 return false;
3265 }
3266 // Apply Patterns
3267 Helper.applyExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);
3268 return true;
3269 }
3270 case GICXXCustomAction_GICombiner28:{
3271 SmallVector<std::pair<Register, MachineInstr*>> GIMatchData_matchinfo;
3272 // Match Patterns
3273 if(![&](){return Helper.matchExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
3274 return false;
3275 }
3276 // Apply Patterns
3277 Helper.applyExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);
3278 return true;
3279 }
3280 case GICXXCustomAction_GICombiner29:{
3281 PreferredTuple GIMatchData_matchinfo;
3282 // Match Patterns
3283 if(![&](){return Helper.matchCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);}()) {
3284 return false;
3285 }
3286 // Apply Patterns
3287 Helper.applyCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);
3288 return true;
3289 }
3290 case GICXXCustomAction_GICombiner30:{
3291 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3292 // Match Patterns
3293 if(![&](){return Helper.matchCombineLoadWithAndMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
3294 return false;
3295 }
3296 // Apply Patterns
3297 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3298 return true;
3299 }
3300 case GICXXCustomAction_GICombiner31:{
3301 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3302 // Match Patterns
3303 if(![&](){return Helper.matchCombineExtractedVectorLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
3304 return false;
3305 }
3306 // Apply Patterns
3307 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3308 return true;
3309 }
3310 case GICXXCustomAction_GICombiner32:{
3311 // Apply Patterns
3312 Helper.replaceInstWithFConstant(*State.MIs[0]->getOperand(0).getParent(), 0.0);
3313 return true;
3314 }
3315 case GICXXCustomAction_GICombiner33:{
3316 // Apply Patterns
3317 Helper.replaceInstWithConstant(*State.MIs[0]->getOperand(0).getParent(), 0);
3318 return true;
3319 }
3320 case GICXXCustomAction_GICombiner34:{
3321 // Apply Patterns
3322 Helper.replaceInstWithConstant(*State.MIs[0]->getOperand(0).getParent(), -1);
3323 return true;
3324 }
3325 case GICXXCustomAction_GICombiner35:{
3326 // Apply Patterns
3327 Helper.replaceInstWithUndef(*State.MIs[0]->getOperand(0).getParent());
3328 return true;
3329 }
3330 case GICXXCustomAction_GICombiner36:{
3331 // Match Patterns
3332 if(![&](){return Helper.matchAllExplicitUsesAreUndef(*State.MIs[0]);}()) {
3333 return false;
3334 }
3335 // Apply Patterns
3336 Helper.replaceInstWithUndef(*State.MIs[0]);
3337 return true;
3338 }
3339 case GICXXCustomAction_GICombiner37:{
3340 // Match Patterns
3341 if(![&](){return Helper.matchUndefStore(*State.MIs[0]);}()) {
3342 return false;
3343 }
3344 // Apply Patterns
3345 Helper.eraseInst(*State.MIs[0]);
3346 return true;
3347 }
3348 case GICXXCustomAction_GICombiner38:{
3349 // Match Patterns
3350 if(![&](){return Helper.matchInsertExtractVecEltOutOfBounds(*State.MIs[0]);}()) {
3351 return false;
3352 }
3353 // Apply Patterns
3354 Helper.replaceInstWithUndef(*State.MIs[0]);
3355 return true;
3356 }
3357 case GICXXCustomAction_GICombiner39:{
3358 Register GIMatchData_info;
3359 // Match Patterns
3360 if(![&](){GIMatchData_info = State.MIs[1]->getOperand(1).getReg(); return true;}()) {
3361 return false;
3362 }
3363 // Apply Patterns
3364 Helper.applyCombineP2IToI2P(*State.MIs[0], GIMatchData_info);
3365 return true;
3366 }
3367 case GICXXCustomAction_GICombiner40:{
3368 Register GIMatchData_matchinfo;
3369 // Match Patterns
3370 if(![&](){return Helper.matchCombineAnyExtTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
3371 return false;
3372 }
3373 // Apply Patterns
3374 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3375 return true;
3376 }
3377 case GICXXCustomAction_GICombiner41:{
3378 Register GIMatchData_matchinfo;
3379 // Match Patterns
3380 if(![&](){return Helper.matchBuildVectorIdentityFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3381 return false;
3382 }
3383 // Apply Patterns
3384 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3385 return true;
3386 }
3387 case GICXXCustomAction_GICombiner42:{
3388 Register GIMatchData_matchinfo;
3389 // Match Patterns
3390 if(![&](){return Helper.matchTruncBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3391 return false;
3392 }
3393 // Apply Patterns
3394 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3395 return true;
3396 }
3397 case GICXXCustomAction_GICombiner43:{
3398 Register GIMatchData_matchinfo;
3399 // Match Patterns
3400 if(![&](){return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3401 return false;
3402 }
3403 // Apply Patterns
3404 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3405 return true;
3406 }
3407 case GICXXCustomAction_GICombiner44:{
3408 // Match Patterns
3409 if(![&](){return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());}()) {
3410 return false;
3411 }
3412 // Apply Patterns
3413 Helper.replaceSingleDefInstWithReg(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
3414 return true;
3415 }
3416 case GICXXCustomAction_GICombiner45:{
3417 MachineInstr* GIMatchData_matchinfo;
3418 // Match Patterns
3419 if(![&](){return Helper.matchExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);}()) {
3420 return false;
3421 }
3422 // Apply Patterns
3423 Helper.applyExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);
3424 return true;
3425 }
3426 case GICXXCustomAction_GICombiner46:{
3427 InstructionStepsMatchInfo GIMatchData_info;
3428 // Match Patterns
3429 if(![&](){return Helper.matchHoistLogicOpWithSameOpcodeHands(*State.MIs[0], GIMatchData_info);}()) {
3430 return false;
3431 }
3432 // Apply Patterns
3433 Helper.applyBuildInstructionSteps(*State.MIs[0], GIMatchData_info);
3434 return true;
3435 }
3436 case GICXXCustomAction_GICombiner47:{
3437 std::optional<int64_t> GIMatchData_matchinfo;
3438 // Match Patterns
3439 if(![&](){return Helper.matchShiftsTooBig(*State.MIs[0], GIMatchData_matchinfo);}()) {
3440 return false;
3441 }
3442 // Apply Patterns
3443 if (GIMatchData_matchinfo) {
3444 Helper.replaceInstWithConstant(*State.MIs[0], *GIMatchData_matchinfo);
3445 } else {
3446 Helper.replaceInstWithUndef(*State.MIs[0]);
3447 }
3448 return true;
3449 }
3450 case GICXXCustomAction_GICombiner48:{
3451 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3452 // Match Patterns
3453 if(![&](){return Helper.matchReassocPtrAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3454 return false;
3455 }
3456 // Apply Patterns
3457 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3458 return true;
3459 }
3460 case GICXXCustomAction_GICombiner49:{
3461 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3462 // Match Patterns
3463 if(![&](){return Helper.matchReassocCommBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3464 return false;
3465 }
3466 // Apply Patterns
3467 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3468 return true;
3469 }
3470 case GICXXCustomAction_GICombiner50:{
3471 PtrAddChain GIMatchData_matchinfo;
3472 // Match Patterns
3473 if(![&](){return Helper.matchPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
3474 return false;
3475 }
3476 // Apply Patterns
3477 Helper.applyPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);
3478 return true;
3479 }
3480 case GICXXCustomAction_GICombiner51:{
3481 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3482 // Match Patterns
3483 if(![&](){return Helper.matchCanonicalizeICmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3484 return false;
3485 }
3486 // Apply Patterns
3487 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3488 return true;
3489 }
3490 case GICXXCustomAction_GICombiner52:{
3491 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3492 // Match Patterns
3493 if(![&](){return Helper.matchCanonicalizeFCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3494 return false;
3495 }
3496 // Apply Patterns
3497 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3498 return true;
3499 }
3500 case GICXXCustomAction_GICombiner53:{
3501 int64_t GIMatchData_matchinfo;
3502 // Match Patterns
3503 if(![&](){return Helper.matchICmpToTrueFalseKnownBits(*State.MIs[0], GIMatchData_matchinfo);}()) {
3504 return false;
3505 }
3506 // Apply Patterns
3507 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3508 return true;
3509 }
3510 case GICXXCustomAction_GICombiner54:{
3511 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3512 // Match Patterns
3513 if(![&](){return Helper.matchICmpToLHSKnownBits(*State.MIs[0], GIMatchData_info);}()) {
3514 return false;
3515 }
3516 // Apply Patterns
3517 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3518 return true;
3519 }
3520 case GICXXCustomAction_GICombiner55:{
3521 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3522 // Match Patterns
3523 if(![&](){return Helper.matchRedundantBinOpInEquality(*State.MIs[0], GIMatchData_info);}()) {
3524 return false;
3525 }
3526 // Apply Patterns
3527 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3528 return true;
3529 }
3530 case GICXXCustomAction_GICombiner56:{
3531 std::tuple<Register, int64_t> GIMatchData_info;
3532 // Match Patterns
3533 if(![&](){return Helper.matchAshrShlToSextInreg(*State.MIs[0], GIMatchData_info);}()) {
3534 return false;
3535 }
3536 // Apply Patterns
3537 Helper.applyAshShlToSextInreg(*State.MIs[0], GIMatchData_info);
3538 return true;
3539 }
3540 case GICXXCustomAction_GICombiner57:{
3541 std::tuple<Register, unsigned> GIMatchData_matchinfo;
3542 // Match Patterns
3543 if(![&](){return Helper.matchSextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
3544 return false;
3545 }
3546 // Apply Patterns
3547 Helper.applySextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);
3548 return true;
3549 }
3550 case GICXXCustomAction_GICombiner58:{
3551 RegisterImmPair GIMatchData_matchinfo;
3552 // Match Patterns
3553 if(![&](){return Helper.matchCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);}()) {
3554 return false;
3555 }
3556 // Apply Patterns
3557 Helper.applyCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);
3558 return true;
3559 }
3560 case GICXXCustomAction_GICombiner59:{
3561 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3562 // Match Patterns
3563 if(![&](){return Helper.matchNarrowBinopFeedingAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3564 return false;
3565 }
3566 // Apply Patterns
3567 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3568 return true;
3569 }
3570 case GICXXCustomAction_GICombiner60:{
3571 unsigned GIMatchData_matchinfo;
3572 // Match Patterns
3573 if(![&](){return Helper.matchConstantSelectCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3574 return false;
3575 }
3576 // Apply Patterns
3577 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_matchinfo);
3578 return true;
3579 }
3580 case GICXXCustomAction_GICombiner61:{
3581 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3582 // Match Patterns
3583 if(![&](){return Helper.matchSelectIMinMax(State.MIs[0]->getOperand(0), GIMatchData_info);}()) {
3584 return false;
3585 }
3586 // Apply Patterns
3587 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_info);
3588 return true;
3589 }
3590 case GICXXCustomAction_GICombiner62:{
3591 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3592 // Match Patterns
3593 if(![&](){return Helper.matchSelect(*State.MIs[0], GIMatchData_matchinfo);}()) {
3594 return false;
3595 }
3596 // Apply Patterns
3597 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3598 return true;
3599 }
3600 case GICXXCustomAction_GICombiner63:{
3601 // Match Patterns
3602 if(![&](){LLT SrcTy = MRI.getType(State.MIs[3]->getOperand(1).getReg());
3603 return State.MIs[0]->getOperand(2).getImm() <= SrcTy.getScalarSizeInBits() &&
3604 MRI.getType(State.MIs[1]->getOperand(1).getReg()).getScalarType() ==
3605 MRI.getType(State.MIs[2]->getOperand(2).getReg()).getScalarType() &&
3606 VT->computeNumSignBits(State.MIs[3]->getOperand(1).getReg()) >=
3607 (SrcTy.getScalarSizeInBits() - State.MIs[0]->getOperand(2).getImm() + 1);}()) {
3608 return false;
3609 }
3610 // Apply Patterns
3611 auto SExt1 = Helper.getBuilder().buildSExt(MRI.getType(State.MIs[2]->getOperand(2).getReg()), State.MIs[3]->getOperand(1).getReg());
3612 auto Unmerge = Helper.getBuilder().buildUnmerge(MRI.getType(State.MIs[1]->getOperand(1).getReg()), SExt1);
3613 unsigned UnmergeDef = State.MIs[1]->getOperand(1).getReg() == State.MIs[2]->getOperand(0).getReg() ? 0 : 1;
3614 Helper.getBuilder().buildSExt(State.MIs[0]->getOperand(0).getReg(), Unmerge.getReg(UnmergeDef));
3615 State.MIs[0]->eraseFromParent();
3616 return true;
3617 }
3618 case GICXXCustomAction_GICombiner64:{
3619 Register GIMatchData_matchinfo;
3620 // Match Patterns
3621 if(![&](){return Helper.matchRedundantAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3622 return false;
3623 }
3624 // Apply Patterns
3625 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3626 return true;
3627 }
3628 case GICXXCustomAction_GICombiner65:{
3629 Register GIMatchData_matchinfo;
3630 // Match Patterns
3631 if(![&](){return Helper.matchRedundantOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
3632 return false;
3633 }
3634 // Apply Patterns
3635 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3636 return true;
3637 }
3638 case GICXXCustomAction_GICombiner66:{
3639 // Match Patterns
3640 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(State.MIs[0]->getOperand(2));}()) {
3641 return false;
3642 }
3643 // Apply Patterns
3644 Helper.applySimplifyURemByPow2(*State.MIs[0]);
3645 return true;
3646 }
3647 case GICXXCustomAction_GICombiner67:{
3648 Register GIMatchData_matchinfo;
3649 // Match Patterns
3650 if(![&](){return Helper.matchCombineZextTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
3651 return false;
3652 }
3653 // Apply Patterns
3654 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3655 return true;
3656 }
3657 case GICXXCustomAction_GICombiner68:{
3658 // Match Patterns
3659 if(![&](){unsigned BitWidth = MRI.getType(State.MIs[0]->getOperand(1).getReg()).getScalarSizeInBits();
3660 return Helper.getValueTracking()->maskedValueIsZero(State.MIs[0]->getOperand(1).getReg(),
3661 APInt::getOneBitSet(BitWidth, State.MIs[0]->getOperand(2).getImm() - 1));}()) {
3662 return false;
3663 }
3664 // Apply Patterns
3665 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
3666 Helper.getBuilder().buildZExtInReg(State.MIs[0]->getOperand(0), State.MIs[0]->getOperand(1), State.MIs[0]->getOperand(2).getImm());
3667 State.MIs[0]->eraseFromParent();
3668 return true;
3669 }
3670 case GICXXCustomAction_GICombiner69:{
3671 std::pair<MachineInstr*, LLT> GIMatchData_matchinfo;
3672 // Match Patterns
3673 if(![&](){return Helper.matchCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
3674 return false;
3675 }
3676 // Apply Patterns
3677 Helper.applyCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);
3678 return true;
3679 }
3680 case GICXXCustomAction_GICombiner70:{
3681 SmallVector<Register> GIMatchData_info;
3682 // Match Patterns
3683 if(![&](){return Helper.matchNotCmp(*State.MIs[0], GIMatchData_info);}()) {
3684 return false;
3685 }
3686 // Apply Patterns
3687 Helper.applyNotCmp(*State.MIs[0], GIMatchData_info);
3688 return true;
3689 }
3690 case GICXXCustomAction_GICombiner71:{
3691 MachineInstr * GIMatchData_matchinfo;
3692 // Match Patterns
3693 if(![&](){return Helper.matchOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);}()) {
3694 return false;
3695 }
3696 // Apply Patterns
3697 Helper.applyOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);
3698 return true;
3699 }
3700 case GICXXCustomAction_GICombiner72:{
3701 // Apply Patterns
3702 Helper.applyCombineConstantFoldFpUnary(*State.MIs[0], State.MIs[1]->getOperand(1).getFPImm());
3703 return true;
3704 }
3705 case GICXXCustomAction_GICombiner73:{
3706 APInt GIMatchData_info;
3707 // Match Patterns
3708 if(![&](){LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
3709 APInt NewCst = State.MIs[2]->getOperand(1).getCImm()->getValue().zextOrTrunc(
3710 DstTy.getSizeInBits());
3711 NewCst += State.MIs[3]->getOperand(1).getCImm()->getValue().sextOrTrunc(
3712 DstTy.getSizeInBits());
3713 GIMatchData_info = NewCst;
3714 return true;}()) {
3715 return false;
3716 }
3717 // Apply Patterns
3718 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
3719 Helper.getBuilder().buildConstant(State.MIs[0]->getOperand(0), GIMatchData_info);
3720 State.MIs[0]->eraseFromParent();
3721 return true;
3722 }
3723 case GICXXCustomAction_GICombiner74:{
3724 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3725 // Match Patterns
3726 if(![&](){return Helper.matchOverlappingAnd(*State.MIs[0], GIMatchData_info);}()) {
3727 return false;
3728 }
3729 // Apply Patterns
3730 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3731 return true;
3732 }
3733 case GICXXCustomAction_GICombiner75:{
3734 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3735 // Match Patterns
3736 if(![&](){return Helper.matchMulOBy2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3737 return false;
3738 }
3739 // Apply Patterns
3740 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3741 return true;
3742 }
3743 case GICXXCustomAction_GICombiner76:{
3744 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3745 // Match Patterns
3746 if(![&](){return Helper.matchMulOBy0(*State.MIs[0], GIMatchData_matchinfo);}()) {
3747 return false;
3748 }
3749 // Apply Patterns
3750 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3751 return true;
3752 }
3753 case GICXXCustomAction_GICombiner77:{
3754 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3755 // Match Patterns
3756 if(![&](){return Helper.matchAddEToAddO(*State.MIs[0], GIMatchData_matchinfo);}()) {
3757 return false;
3758 }
3759 // Apply Patterns
3760 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3761 return true;
3762 }
3763 case GICXXCustomAction_GICombiner78:{
3764 unsigned GIMatchData_info;
3765 // Match Patterns
3766 if(![&](){return Helper.matchCombineFMinMaxNaN(*State.MIs[0], GIMatchData_info);}()) {
3767 return false;
3768 }
3769 // Apply Patterns
3770 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_info);
3771 return true;
3772 }
3773 case GICXXCustomAction_GICombiner79:{
3774 // Match Patterns
3775 if(![&](){return Helper.matchFPowIExpansion(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());}()) {
3776 return false;
3777 }
3778 // Apply Patterns
3779 Helper.applyExpandFPowI(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());
3780 return true;
3781 }
3782 case GICXXCustomAction_GICombiner80:{
3783 std::pair<Register, Register> GIMatchData_matchinfo;
3784 // Match Patterns
3785 if(![&](){return Helper.matchXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3786 return false;
3787 }
3788 // Apply Patterns
3789 Helper.applyXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);
3790 return true;
3791 }
3792 case GICXXCustomAction_GICombiner81:{
3793 RegisterImmPair GIMatchData_matchinfo;
3794 // Match Patterns
3795 if(![&](){return Helper.matchShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
3796 return false;
3797 }
3798 // Apply Patterns
3799 Helper.applyShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);
3800 return true;
3801 }
3802 case GICXXCustomAction_GICombiner82:{
3803 ShiftOfShiftedLogic GIMatchData_matchinfo;
3804 // Match Patterns
3805 if(![&](){return Helper.matchShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);}()) {
3806 return false;
3807 }
3808 // Apply Patterns
3809 Helper.applyShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);
3810 return true;
3811 }
3812 case GICXXCustomAction_GICombiner83:{
3813 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3814 // Match Patterns
3815 if(![&](){return Helper.matchLoadOrCombine(*State.MIs[0], GIMatchData_info);}()) {
3816 return false;
3817 }
3818 // Apply Patterns
3819 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3820 return true;
3821 }
3822 case GICXXCustomAction_GICombiner84:{
3823 MachineInstr * GIMatchData_matchinfo;
3824 // Match Patterns
3825 if(![&](){return Helper.matchCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);}()) {
3826 return false;
3827 }
3828 // Apply Patterns
3829 Helper.applyCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);
3830 return true;
3831 }
3832 case GICXXCustomAction_GICombiner85:{
3833 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3834 // Match Patterns
3835 if(![&](){return Helper.matchOrShiftToFunnelShift(*State.MIs[0], false, GIMatchData_info);}()) {
3836 return false;
3837 }
3838 // Apply Patterns
3839 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3840 return true;
3841 }
3842 case GICXXCustomAction_GICombiner86:{
3843 // Match Patterns
3844 if(![&](){return Helper.matchFunnelShiftToRotate(*State.MIs[0]);}()) {
3845 return false;
3846 }
3847 // Apply Patterns
3848 Helper.applyFunnelShiftToRotate(*State.MIs[0]);
3849 return true;
3850 }
3851 case GICXXCustomAction_GICombiner87:{
3852 // Match Patterns
3853 if(![&](){return Helper.matchConstantLargerBitWidth(*State.MIs[0], 3);}()) {
3854 return false;
3855 }
3856 // Apply Patterns
3857 Helper.applyFunnelShiftConstantModulo(*State.MIs[0]);
3858 return true;
3859 }
3860 case GICXXCustomAction_GICombiner88:{
3861 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3862 // Match Patterns
3863 if(![&](){return Helper.matchBitfieldExtractFromSExtInReg(*State.MIs[0], GIMatchData_info);}()) {
3864 return false;
3865 }
3866 // Apply Patterns
3867 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3868 return true;
3869 }
3870 case GICXXCustomAction_GICombiner89:{
3871 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3872 // Match Patterns
3873 if(![&](){return Helper.matchBitfieldExtractFromAnd(*State.MIs[0], GIMatchData_info);}()) {
3874 return false;
3875 }
3876 // Apply Patterns
3877 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3878 return true;
3879 }
3880 case GICXXCustomAction_GICombiner90:{
3881 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3882 // Match Patterns
3883 if(![&](){return Helper.matchBitfieldExtractFromShr(*State.MIs[0], GIMatchData_info);}()) {
3884 return false;
3885 }
3886 // Apply Patterns
3887 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3888 return true;
3889 }
3890 case GICXXCustomAction_GICombiner91:{
3891 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3892 // Match Patterns
3893 if(![&](){return Helper.matchBitfieldExtractFromShrAnd(*State.MIs[0], GIMatchData_info);}()) {
3894 return false;
3895 }
3896 // Apply Patterns
3897 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3898 return true;
3899 }
3900 case GICXXCustomAction_GICombiner92:{
3901 APInt GIMatchData_matchinfo;
3902 // Match Patterns
3903 if(![&](){return Helper.matchConstantFoldBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3904 return false;
3905 }
3906 // Apply Patterns
3907 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3908 return true;
3909 }
3910 case GICXXCustomAction_GICombiner93:{
3911 ConstantFP* GIMatchData_matchinfo;
3912 // Match Patterns
3913 if(![&](){return Helper.matchConstantFoldFPBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3914 return false;
3915 }
3916 // Apply Patterns
3917 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3918 return true;
3919 }
3920 case GICXXCustomAction_GICombiner94:{
3921 ConstantFP* GIMatchData_matchinfo;
3922 // Match Patterns
3923 if(![&](){return Helper.matchConstantFoldFMA(*State.MIs[0], GIMatchData_matchinfo);}()) {
3924 return false;
3925 }
3926 // Apply Patterns
3927 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3928 return true;
3929 }
3930 case GICXXCustomAction_GICombiner95:{
3931 APInt GIMatchData_matchinfo;
3932 // Match Patterns
3933 if(![&](){return Helper.matchConstantFoldCastOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3934 return false;
3935 }
3936 // Apply Patterns
3937 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3938 return true;
3939 }
3940 case GICXXCustomAction_GICombiner96:{
3941 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3942 // Match Patterns
3943 if(![&](){return Helper.matchConstantFoldUnaryIntOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3944 return false;
3945 }
3946 // Apply Patterns
3947 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3948 return true;
3949 }
3950 case GICXXCustomAction_GICombiner97:{
3951 // Match Patterns
3952 if(![&](){return Helper.matchUMulHToLShr(*State.MIs[0]);}()) {
3953 return false;
3954 }
3955 // Apply Patterns
3956 Helper.applyUMulHToLShr(*State.MIs[0]);
3957 return true;
3958 }
3959 case GICXXCustomAction_GICombiner98:{
3960 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3961 // Match Patterns
3962 if(![&](){return Helper.matchRedundantNegOperands(*State.MIs[0], GIMatchData_matchinfo);}()) {
3963 return false;
3964 }
3965 // Apply Patterns
3966 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3967 return true;
3968 }
3969 case GICXXCustomAction_GICombiner99:{
3970 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3971 // Match Patterns
3972 if(![&](){return Helper.matchAndOrDisjointMask(*State.MIs[0], GIMatchData_info);}()) {
3973 return false;
3974 }
3975 // Apply Patterns
3976 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_info);
3977 return true;
3978 }
3979 case GICXXCustomAction_GICombiner100:{
3980 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3981 // Match Patterns
3982 if(![&](){return Helper.matchCombineFAddFMulToFMadOrFMA(*State.MIs[0],
3983 GIMatchData_info);}()) {
3984 return false;
3985 }
3986 // Apply Patterns
3987 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3988 return true;
3989 }
3990 case GICXXCustomAction_GICombiner101:{
3991 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3992 // Match Patterns
3993 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMA(*State.MIs[0],
3994 GIMatchData_info);}()) {
3995 return false;
3996 }
3997 // Apply Patterns
3998 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3999 return true;
4000 }
4001 case GICXXCustomAction_GICombiner102:{
4002 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4003 // Match Patterns
4004 if(![&](){return Helper.matchCombineFAddFMAFMulToFMadOrFMA(*State.MIs[0],
4005 GIMatchData_info);}()) {
4006 return false;
4007 }
4008 // Apply Patterns
4009 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4010 return true;
4011 }
4012 case GICXXCustomAction_GICombiner103:{
4013 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4014 // Match Patterns
4015 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMAAggressive(
4016 *State.MIs[0], GIMatchData_info);}()) {
4017 return false;
4018 }
4019 // Apply Patterns
4020 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4021 return true;
4022 }
4023 case GICXXCustomAction_GICombiner104:{
4024 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4025 // Match Patterns
4026 if(![&](){return Helper.matchCombineFSubFMulToFMadOrFMA(*State.MIs[0],
4027 GIMatchData_info);}()) {
4028 return false;
4029 }
4030 // Apply Patterns
4031 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4032 return true;
4033 }
4034 case GICXXCustomAction_GICombiner105:{
4035 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4036 // Match Patterns
4037 if(![&](){return Helper.matchCombineFSubFNegFMulToFMadOrFMA(*State.MIs[0],
4038 GIMatchData_info);}()) {
4039 return false;
4040 }
4041 // Apply Patterns
4042 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4043 return true;
4044 }
4045 case GICXXCustomAction_GICombiner106:{
4046 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4047 // Match Patterns
4048 if(![&](){return Helper.matchCombineFSubFpExtFMulToFMadOrFMA(*State.MIs[0],
4049 GIMatchData_info);}()) {
4050 return false;
4051 }
4052 // Apply Patterns
4053 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4054 return true;
4055 }
4056 case GICXXCustomAction_GICombiner107:{
4057 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4058 // Match Patterns
4059 if(![&](){return Helper.matchCombineFSubFpExtFNegFMulToFMadOrFMA(
4060 *State.MIs[0], GIMatchData_info);}()) {
4061 return false;
4062 }
4063 // Apply Patterns
4064 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4065 return true;
4066 }
4067 case GICXXCustomAction_GICombiner108:{
4068 unsigned GIMatchData_select_op_no;
4069 // Match Patterns
4070 if(![&](){return Helper.matchFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);}()) {
4071 return false;
4072 }
4073 // Apply Patterns
4074 Helper.applyFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);
4075 return true;
4076 }
4077 case GICXXCustomAction_GICombiner109:{
4078 // Match Patterns
4079 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(State.MIs[0]->getOperand(2),
4080 /*OrNegative=*/true);}()) {
4081 return false;
4082 }
4083 // Apply Patterns
4084 Helper.applySimplifySRemByPow2(*State.MIs[0]);
4085 return true;
4086 }
4087 case GICXXCustomAction_GICombiner110:{
4088 // Match Patterns
4089 if(![&](){return Helper.matchUDivOrURemByConst(*State.MIs[0]);}()) {
4090 return false;
4091 }
4092 // Apply Patterns
4093 Helper.applyUDivOrURemByConst(*State.MIs[0]);
4094 return true;
4095 }
4096 case GICXXCustomAction_GICombiner111:{
4097 // Match Patterns
4098 if(![&](){return Helper.matchSDivOrSRemByConst(*State.MIs[0]);}()) {
4099 return false;
4100 }
4101 // Apply Patterns
4102 Helper.applySDivOrSRemByConst(*State.MIs[0]);
4103 return true;
4104 }
4105 case GICXXCustomAction_GICombiner112:{
4106 // Match Patterns
4107 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/false);}()) {
4108 return false;
4109 }
4110 // Apply Patterns
4111 Helper.applyUDivByPow2(*State.MIs[0]);
4112 return true;
4113 }
4114 case GICXXCustomAction_GICombiner113:{
4115 // Match Patterns
4116 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/true);}()) {
4117 return false;
4118 }
4119 // Apply Patterns
4120 Helper.applySDivByPow2(*State.MIs[0]);
4121 return true;
4122 }
4123 case GICXXCustomAction_GICombiner114:{
4124 SmallVector<MachineInstr *> GIMatchData_matchinfo;
4125 // Match Patterns
4126 if(![&](){return Helper.matchRepeatedFPDivisor(*State.MIs[0], GIMatchData_matchinfo);}()) {
4127 return false;
4128 }
4129 // Apply Patterns
4130 Helper.applyRepeatedFPDivisor(GIMatchData_matchinfo);
4131 return true;
4132 }
4133 case GICXXCustomAction_GICombiner115:{
4134 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4135 // Match Patterns
4136 if(![&](){return Helper.matchSubAddSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4137 return false;
4138 }
4139 // Apply Patterns
4140 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4141 return true;
4142 }
4143 case GICXXCustomAction_GICombiner116:{
4144 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4145 // Match Patterns
4146 if(![&](){return Helper.matchSimplifySelectToMinMax(*State.MIs[0], GIMatchData_info);}()) {
4147 return false;
4148 }
4149 // Apply Patterns
4150 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4151 return true;
4152 }
4153 case GICXXCustomAction_GICombiner117:{
4154 Register GIMatchData_matchinfo;
4155 // Match Patterns
4156 if(![&](){return Helper.matchFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4157 return false;
4158 }
4159 // Apply Patterns
4160 Helper.applyFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);
4161 return true;
4162 }
4163 case GICXXCustomAction_GICombiner118:{
4164 // Match Patterns
4165 if(![&](){return Helper.matchCommuteConstantToRHS(*State.MIs[0]);}()) {
4166 return false;
4167 }
4168 // Apply Patterns
4169 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
4170 return true;
4171 }
4172 case GICXXCustomAction_GICombiner119:{
4173 // Match Patterns
4174 if(![&](){return Helper.matchCommuteFPConstantToRHS(*State.MIs[0]);}()) {
4175 return false;
4176 }
4177 // Apply Patterns
4178 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
4179 return true;
4180 }
4181 case GICXXCustomAction_GICombiner120:{
4182 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4183 // Match Patterns
4184 if(![&](){return Helper.matchAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
4185 return false;
4186 }
4187 // Apply Patterns
4188 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4189 return true;
4190 }
4191 case GICXXCustomAction_GICombiner121:{
4192 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4193 // Match Patterns
4194 if(![&](){return Helper.matchOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
4195 return false;
4196 }
4197 // Apply Patterns
4198 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4199 return true;
4200 }
4201 case GICXXCustomAction_GICombiner122:{
4202 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4203 // Match Patterns
4204 if(![&](){return Helper.matchSimplifyNegMinMax(*State.MIs[0], GIMatchData_matchinfo);}()) {
4205 return false;
4206 }
4207 // Apply Patterns
4208 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4209 return true;
4210 }
4211 case GICXXCustomAction_GICombiner123:{
4212 SmallVector<Register> GIMatchData_matchinfo;
4213 // Match Patterns
4214 if(![&](){return Helper.matchCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);}()) {
4215 return false;
4216 }
4217 // Apply Patterns
4218 Helper.applyCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);
4219 return true;
4220 }
4221 case GICXXCustomAction_GICombiner124:{
4222 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4223 // Match Patterns
4224 if(![&](){return Helper.matchSextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4225 return false;
4226 }
4227 // Apply Patterns
4228 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4229 return true;
4230 }
4231 case GICXXCustomAction_GICombiner125:{
4232 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4233 // Match Patterns
4234 if(![&](){return Helper.matchZextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4235 return false;
4236 }
4237 // Apply Patterns
4238 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4239 return true;
4240 }
4241 case GICXXCustomAction_GICombiner126:{
4242 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4243 // Match Patterns
4244 if(![&](){return Helper.matchNonNegZext(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4245 return false;
4246 }
4247 // Apply Patterns
4248 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4249 return true;
4250 }
4251 case GICXXCustomAction_GICombiner127:{
4252 SmallVector<Register> GIMatchData_matchinfo;
4253 // Match Patterns
4254 if(![&](){return Helper.matchCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);}()) {
4255 return false;
4256 }
4257 // Apply Patterns
4258 Helper.applyCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);
4259 return true;
4260 }
4261 case GICXXCustomAction_GICombiner128:{
4262 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4263 // Match Patterns
4264 if(![&](){return Helper.matchShuffleUndefRHS(*State.MIs[0], GIMatchData_matchinfo);}()) {
4265 return false;
4266 }
4267 // Apply Patterns
4268 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4269 return true;
4270 }
4271 case GICXXCustomAction_GICombiner129:{
4272 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4273 // Match Patterns
4274 if(![&](){return Helper.matchShuffleDisjointMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
4275 return false;
4276 }
4277 // Apply Patterns
4278 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4279 return true;
4280 }
4281 case GICXXCustomAction_GICombiner130:{
4282 Register GIMatchData_matchinfo;
4283 // Match Patterns
4284 if(![&](){return Helper.matchUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);}()) {
4285 return false;
4286 }
4287 // Apply Patterns
4288 Helper.applyUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);
4289 return true;
4290 }
4291 case GICXXCustomAction_GICombiner131:{
4292 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4293 // Match Patterns
4294 if(![&](){return Helper.matchUnmergeValuesAnyExtBuildVector(*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_GICombiner132:{
4302 SmallVector<Register> GIMatchData_info;
4303 // Match Patterns
4304 if(![&](){return Helper.matchCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);}()) {
4305 return false;
4306 }
4307 // Apply Patterns
4308 Helper.applyCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);
4309 return true;
4310 }
4311 case GICXXCustomAction_GICombiner133:{
4312 Register GIMatchData_src;
4313 // Match Patterns
4314 if(![&](){// Check if first source comes from G_UNMERGE_VALUES.
4315 Register FirstMergeSrc = getRemainingOperands(*State.MIs[0], 1)[0].getReg();
4316 MachineInstr *UnmergeMI = MRI.getVRegDef(FirstMergeSrc);
4317 if (!UnmergeMI || UnmergeMI->getOpcode() != TargetOpcode::G_UNMERGE_VALUES)
4318 return false;
4319
4320 // Check counts match.
4321 unsigned NumMergeSrcs = getRemainingOperands(*State.MIs[0], 1).size();
4322 unsigned NumUnmergeDefs = UnmergeMI->getNumDefs();
4323 if (NumMergeSrcs != NumUnmergeDefs)
4324 return false;
4325
4326 // Verify all merge sources match unmerge defs in order.
4327 for (unsigned I = 0; I < NumMergeSrcs; ++I) {
4328 Register MergeSrc = getRemainingOperands(*State.MIs[0], 1)[I].getReg();
4329 Register UnmergeDef = UnmergeMI->getOperand(I).getReg();
4330
4331 if (MergeSrc != UnmergeDef)
4332 return false;
4333
4334 if (!MRI.hasOneNonDBGUse(MergeSrc))
4335 return false;
4336 }
4337
4338 // Check size compatibility.
4339 GIMatchData_src = UnmergeMI->getOperand(NumUnmergeDefs).getReg();
4340 LLT SrcTy = MRI.getType(GIMatchData_src);
4341 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
4342 if (SrcTy.getSizeInBits() != DstTy.getSizeInBits())
4343 return false;
4344
4345 // Check bitcast legality.
4346 if (SrcTy != DstTy) {
4347 std::array<LLT, 2> Types = {{DstTy, SrcTy}};
4348 LegalityQuery Query(TargetOpcode::G_BITCAST, Types);
4349 if (!Helper.isLegalOrBeforeLegalizer(Query))
4350 return false;
4351 }
4352
4353 return true;}()) {
4354 return false;
4355 }
4356 // Apply Patterns
4357 LLT SrcTy = MRI.getType(GIMatchData_src);
4358 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
4359
4360 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
4361
4362 if (SrcTy == DstTy) {
4363 Helper.replaceRegWith(MRI, State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
4364 } else {
4365 Helper.getBuilder().buildBitcast(State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
4366 }
4367
4368 State.MIs[0]->eraseFromParent();
4369 return true;
4370 }
4371 case GICXXCustomAction_GICombiner134:{
4372 SmallVector<APInt, 8> GIMatchData_info;
4373 // Match Patterns
4374 if(![&](){return Helper.matchCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);}()) {
4375 return false;
4376 }
4377 // Apply Patterns
4378 Helper.applyCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);
4379 return true;
4380 }
4381 case GICXXCustomAction_GICombiner135:{
4382 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4383 // Match Patterns
4384 if(![&](){return Helper.matchCombineUnmergeUndef(*State.MIs[0], GIMatchData_info);}()) {
4385 return false;
4386 }
4387 // Apply Patterns
4388 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4389 return true;
4390 }
4391 case GICXXCustomAction_GICombiner136:{
4392 // Match Patterns
4393 if(![&](){return Helper.matchCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);}()) {
4394 return false;
4395 }
4396 // Apply Patterns
4397 Helper.applyCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);
4398 return true;
4399 }
4400 case GICXXCustomAction_GICombiner137:{
4401 // Match Patterns
4402 if(![&](){return Helper.matchCombineUnmergeZExtToZExt(*State.MIs[0]);}()) {
4403 return false;
4404 }
4405 // Apply Patterns
4406 Helper.applyCombineUnmergeZExtToZExt(*State.MIs[0]);
4407 return true;
4408 }
4409 case GICXXCustomAction_GICombiner138:{
4410 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4411 // Match Patterns
4412 if(![&](){return Helper.matchMergeXAndUndef(*State.MIs[0], GIMatchData_matchinfo);}()) {
4413 return false;
4414 }
4415 // Apply Patterns
4416 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4417 return true;
4418 }
4419 case GICXXCustomAction_GICombiner139:{
4420 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4421 // Match Patterns
4422 if(![&](){return Helper.matchMergeXAndZero(*State.MIs[0], GIMatchData_matchinfo);}()) {
4423 return false;
4424 }
4425 // Apply Patterns
4426 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4427 return true;
4428 }
4429 case GICXXCustomAction_GICombiner140:{
4430 Register GIMatchData_unmergeSrc;
4431 // Match Patterns
4432 if(![&](){return Helper.matchCombineBuildUnmerge(*State.MIs[0], MRI, GIMatchData_unmergeSrc);}()) {
4433 return false;
4434 }
4435 // Apply Patterns
4436 Helper.applyCombineBuildUnmerge(*State.MIs[0], MRI, B, GIMatchData_unmergeSrc);
4437 return true;
4438 }
4439 case GICXXCustomAction_GICombiner141:{
4440 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4441 // Match Patterns
4442 if(![&](){return Helper.matchAddOverflow(*State.MIs[0], GIMatchData_matchinfo);}()) {
4443 return false;
4444 }
4445 // Apply Patterns
4446 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4447 return true;
4448 }
4449 case GICXXCustomAction_GICombiner142:{
4450 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4451 // Match Patterns
4452 if(![&](){return Helper.matchSuboCarryOut(*State.MIs[0], GIMatchData_matchinfo);}()) {
4453 return false;
4454 }
4455 // Apply Patterns
4456 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4457 return true;
4458 }
4459 case GICXXCustomAction_GICombiner143:{
4460 Register GIMatchData_matchinfo;
4461 // Match Patterns
4462 if(![&](){return Helper.matchTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);}()) {
4463 return false;
4464 }
4465 // Apply Patterns
4466 Helper.applyTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);
4467 return true;
4468 }
4469 case GICXXCustomAction_GICombiner144:{
4470 Register GIMatchData_matchinfo;
4471 // Match Patterns
4472 if(![&](){return Helper.matchTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);}()) {
4473 return false;
4474 }
4475 // Apply Patterns
4476 Helper.applyTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);
4477 return true;
4478 }
4479 case GICXXCustomAction_GICombiner145:{
4480 LshrOfTruncOfLshr GIMatchData_matchinfo;
4481 // Match Patterns
4482 if(![&](){return Helper.matchLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo, *State.MIs[2]);}()) {
4483 return false;
4484 }
4485 // Apply Patterns
4486 Helper.applyLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo);
4487 return true;
4488 }
4489 case GICXXCustomAction_GICombiner146:{
4490 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4491 // Match Patterns
4492 if(![&](){return Helper.matchCtls(*State.MIs[0], GIMatchData_matchinfo);}()) {
4493 return false;
4494 }
4495 // Apply Patterns
4496 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4497 return true;
4498 }
4499 case GICXXCustomAction_GICombiner147:{
4500 // Match Patterns
4501 if(![&](){return Helper.matchCountZeroToZeroPoison(*State.MIs[0]);}()) {
4502 return false;
4503 }
4504 // Apply Patterns
4505 Helper.applyCountZeroToZeroPoison(*State.MIs[0]);
4506 return true;
4507 }
4508 case GICXXCustomAction_GICombiner148:{
4509 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4510 // Match Patterns
4511 if(![&](){return Helper.matchBinopWithNeg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4512 return false;
4513 }
4514 // Apply Patterns
4515 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4516 return true;
4517 }
4518 case GICXXCustomAction_GICombiner149:{
4519 FMinFMaxLegacyInfo GIMatchData_matchinfo;
4520 // Match Patterns
4521 if(![&](){return matchFMinFMaxLegacy(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
4522 return false;
4523 }
4524 // Apply Patterns
4525 applySelectFCmpToFMinFMaxLegacy(*State.MIs[0], GIMatchData_matchinfo);
4526 return true;
4527 }
4528 case GICXXCustomAction_GICombiner150:{
4529 // Match Patterns
4530 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());}()) {
4531 return false;
4532 }
4533 // Apply Patterns
4534 Helper.applyExpandPromotedF16FMed3(*State.MIs[0], State.MIs[1]->getOperand(1).getReg(), State.MIs[1]->getOperand(2).getReg(), State.MIs[1]->getOperand(3).getReg());
4535 return true;
4536 }
4537 case GICXXCustomAction_GICombiner151:{
4538 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4539 // Match Patterns
4540 if(![&](){return Helper.matchCombineFmulWithSelectToFldexp(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
4541 return false;
4542 }
4543 // Apply Patterns
4544 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4545 return true;
4546 }
4547 case GICXXCustomAction_GICombiner152:{
4548 // Match Patterns
4549 if(![&](){return matchUCharToFloat(*State.MIs[0]);}()) {
4550 return false;
4551 }
4552 // Apply Patterns
4553 applyUCharToFloat(*State.MIs[0]);
4554 return true;
4555 }
4556 case GICXXCustomAction_GICombiner153:{
4557 CvtF32UByteMatchInfo GIMatchData_matchinfo;
4558 // Match Patterns
4559 if(![&](){return matchCvtF32UByteN(*State.MIs[0], GIMatchData_matchinfo);}()) {
4560 return false;
4561 }
4562 // Apply Patterns
4563 applyCvtF32UByteN(*State.MIs[0], GIMatchData_matchinfo);
4564 return true;
4565 }
4566 case GICXXCustomAction_GICombiner154:{
4567 MachineInstr * GIMatchData_matchinfo;
4568 // Match Patterns
4569 if(![&](){return Helper.matchFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4570 return false;
4571 }
4572 // Apply Patterns
4573 Helper.applyFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);
4574 return true;
4575 }
4576 case GICXXCustomAction_GICombiner155:{
4577 // Match Patterns
4578 if(![&](){return Helper.matchFoldFAbsFptrunc(*State.MIs[0], *State.MIs[1]);}()) {
4579 return false;
4580 }
4581 // Apply Patterns
4582 Helper.applyFoldFAbsFptrunc(*State.MIs[0], *State.MIs[1]);
4583 return true;
4584 }
4585 case GICXXCustomAction_GICombiner156:{
4586 // Match Patterns
4587 if(![&](){return matchFDivSqrtToRsqF16(*State.MIs[0]);}()) {
4588 return false;
4589 }
4590 // Apply Patterns
4591 applyFDivSqrtToRsqF16(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
4592 return true;
4593 }
4594 case GICXXCustomAction_GICombiner157:{
4595 std::pair<MachineInstr *, unsigned> GIMatchData_matchinfo;
4596 // Match Patterns
4597 if(![&](){return matchCombineSignExtendInReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4598 return false;
4599 }
4600 // Apply Patterns
4601 applyCombineSignExtendInReg(*State.MIs[0], GIMatchData_matchinfo);
4602 return true;
4603 }
4604 case GICXXCustomAction_GICombiner158:{
4605 unsigned GIMatchData_matchinfo;
4606 // Match Patterns
4607 if(![&](){return matchCombine_s_mul_u64(*State.MIs[0], GIMatchData_matchinfo);}()) {
4608 return false;
4609 }
4610 // Apply Patterns
4611 Helper.replaceOpcodeWith(*State.MIs[0], GIMatchData_matchinfo);
4612 return true;
4613 }
4614 }
4615 llvm_unreachable("Unknown Apply Action");
4616}
4617#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
4618#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((Val) >> 8)
4619#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24)
4620#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)
4621#else
4622#define GIMT_Encode2(Val) uint8_t((Val) >> 8), uint8_t(Val)
4623#define GIMT_Encode4(Val) uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
4624#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)
4625#endif
4626const uint8_t *AMDGPUPostLegalizerCombinerImpl::getMatchTable() const {
4627 constexpr static uint8_t MatchTable0[] = {
4628 /* 0 */ GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(20), GIMT_Encode2(5512), /*)*//*default:*//*Label 118*/ GIMT_Encode4(33463),
4629 /* 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),
4630 /* 150 */ /*TargetOpcode::G_ADD*//*Label 1*/ GIMT_Encode4(21990),
4631 /* 154 */ /*TargetOpcode::G_SUB*//*Label 2*/ GIMT_Encode4(23095),
4632 /* 158 */ /*TargetOpcode::G_MUL*//*Label 3*/ GIMT_Encode4(24186),
4633 /* 162 */ /*TargetOpcode::G_SDIV*//*Label 4*/ GIMT_Encode4(24434),
4634 /* 166 */ /*TargetOpcode::G_UDIV*//*Label 5*/ GIMT_Encode4(24536),
4635 /* 170 */ /*TargetOpcode::G_SREM*//*Label 6*/ GIMT_Encode4(24659),
4636 /* 174 */ /*TargetOpcode::G_UREM*//*Label 7*/ GIMT_Encode4(24755), GIMT_Encode4(0), GIMT_Encode4(0),
4637 /* 186 */ /*TargetOpcode::G_AND*//*Label 8*/ GIMT_Encode4(24872),
4638 /* 190 */ /*TargetOpcode::G_OR*//*Label 9*/ GIMT_Encode4(25444),
4639 /* 194 */ /*TargetOpcode::G_XOR*//*Label 10*/ GIMT_Encode4(26578), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4640 /* 226 */ /*TargetOpcode::G_PHI*//*Label 11*/ GIMT_Encode4(26820), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4641 /* 250 */ /*TargetOpcode::G_UNMERGE_VALUES*//*Label 12*/ GIMT_Encode4(26835), GIMT_Encode4(0),
4642 /* 258 */ /*TargetOpcode::G_MERGE_VALUES*//*Label 13*/ GIMT_Encode4(26902),
4643 /* 262 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 14*/ GIMT_Encode4(26979),
4644 /* 266 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 15*/ GIMT_Encode4(27044),
4645 /* 270 */ /*TargetOpcode::G_CONCAT_VECTORS*//*Label 16*/ GIMT_Encode4(27056),
4646 /* 274 */ /*TargetOpcode::G_PTRTOINT*//*Label 17*/ GIMT_Encode4(27071),
4647 /* 278 */ /*TargetOpcode::G_INTTOPTR*//*Label 18*/ GIMT_Encode4(27114),
4648 /* 282 */ /*TargetOpcode::G_BITCAST*//*Label 19*/ GIMT_Encode4(27169),
4649 /* 286 */ /*TargetOpcode::G_FREEZE*//*Label 20*/ GIMT_Encode4(27244), GIMT_Encode4(0), GIMT_Encode4(0),
4650 /* 298 */ /*TargetOpcode::G_INTRINSIC_TRUNC*//*Label 21*/ GIMT_Encode4(27308),
4651 /* 302 */ /*TargetOpcode::G_INTRINSIC_ROUND*//*Label 22*/ GIMT_Encode4(27330), GIMT_Encode4(0), GIMT_Encode4(0),
4652 /* 314 */ /*TargetOpcode::G_INTRINSIC_ROUNDEVEN*//*Label 23*/ GIMT_Encode4(27352), GIMT_Encode4(0), GIMT_Encode4(0),
4653 /* 326 */ /*TargetOpcode::G_LOAD*//*Label 24*/ GIMT_Encode4(27374),
4654 /* 330 */ /*TargetOpcode::G_SEXTLOAD*//*Label 25*/ GIMT_Encode4(27386),
4655 /* 334 */ /*TargetOpcode::G_ZEXTLOAD*//*Label 26*/ GIMT_Encode4(27398), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4656 /* 354 */ /*TargetOpcode::G_STORE*//*Label 27*/ GIMT_Encode4(27410), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4657 /* 486 */ /*TargetOpcode::G_INTRINSIC*//*Label 28*/ GIMT_Encode4(27422), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4658 /* 502 */ /*TargetOpcode::G_ANYEXT*//*Label 29*/ GIMT_Encode4(27604),
4659 /* 506 */ /*TargetOpcode::G_TRUNC*//*Label 30*/ GIMT_Encode4(27732), GIMT_Encode4(0), GIMT_Encode4(0),
4660 /* 518 */ /*TargetOpcode::G_TRUNC_USAT_U*//*Label 31*/ GIMT_Encode4(28410), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4661 /* 538 */ /*TargetOpcode::G_SEXT*//*Label 32*/ GIMT_Encode4(28443),
4662 /* 542 */ /*TargetOpcode::G_SEXT_INREG*//*Label 33*/ GIMT_Encode4(28518),
4663 /* 546 */ /*TargetOpcode::G_ZEXT*//*Label 34*/ GIMT_Encode4(28751),
4664 /* 550 */ /*TargetOpcode::G_SHL*//*Label 35*/ GIMT_Encode4(28881),
4665 /* 554 */ /*TargetOpcode::G_LSHR*//*Label 36*/ GIMT_Encode4(29244),
4666 /* 558 */ /*TargetOpcode::G_ASHR*//*Label 37*/ GIMT_Encode4(29601),
4667 /* 562 */ /*TargetOpcode::G_FSHL*//*Label 38*/ GIMT_Encode4(29940),
4668 /* 566 */ /*TargetOpcode::G_FSHR*//*Label 39*/ GIMT_Encode4(29983),
4669 /* 570 */ /*TargetOpcode::G_ROTR*//*Label 40*/ GIMT_Encode4(30026),
4670 /* 574 */ /*TargetOpcode::G_ROTL*//*Label 41*/ GIMT_Encode4(30050),
4671 /* 578 */ /*TargetOpcode::G_ICMP*//*Label 42*/ GIMT_Encode4(30074),
4672 /* 582 */ /*TargetOpcode::G_FCMP*//*Label 43*/ GIMT_Encode4(30119), GIMT_Encode4(0), GIMT_Encode4(0),
4673 /* 594 */ /*TargetOpcode::G_SELECT*//*Label 44*/ GIMT_Encode4(30131),
4674 /* 598 */ /*TargetOpcode::G_UADDO*//*Label 45*/ GIMT_Encode4(30453),
4675 /* 602 */ /*TargetOpcode::G_UADDE*//*Label 46*/ GIMT_Encode4(30476),
4676 /* 606 */ /*TargetOpcode::G_USUBO*//*Label 47*/ GIMT_Encode4(30488),
4677 /* 610 */ /*TargetOpcode::G_USUBE*//*Label 48*/ GIMT_Encode4(30500),
4678 /* 614 */ /*TargetOpcode::G_SADDO*//*Label 49*/ GIMT_Encode4(30512),
4679 /* 618 */ /*TargetOpcode::G_SADDE*//*Label 50*/ GIMT_Encode4(30535),
4680 /* 622 */ /*TargetOpcode::G_SSUBO*//*Label 51*/ GIMT_Encode4(30547),
4681 /* 626 */ /*TargetOpcode::G_SSUBE*//*Label 52*/ GIMT_Encode4(30559),
4682 /* 630 */ /*TargetOpcode::G_UMULO*//*Label 53*/ GIMT_Encode4(30571),
4683 /* 634 */ /*TargetOpcode::G_SMULO*//*Label 54*/ GIMT_Encode4(30605),
4684 /* 638 */ /*TargetOpcode::G_UMULH*//*Label 55*/ GIMT_Encode4(30639),
4685 /* 642 */ /*TargetOpcode::G_SMULH*//*Label 56*/ GIMT_Encode4(30662),
4686 /* 646 */ /*TargetOpcode::G_UADDSAT*//*Label 57*/ GIMT_Encode4(30674),
4687 /* 650 */ /*TargetOpcode::G_SADDSAT*//*Label 58*/ GIMT_Encode4(30686), GIMT_Encode4(0), GIMT_Encode4(0),
4688 /* 662 */ /*TargetOpcode::G_USHLSAT*//*Label 59*/ GIMT_Encode4(30698),
4689 /* 666 */ /*TargetOpcode::G_SSHLSAT*//*Label 60*/ GIMT_Encode4(30721),
4690 /* 670 */ /*TargetOpcode::G_SMULFIX*//*Label 61*/ GIMT_Encode4(30744),
4691 /* 674 */ /*TargetOpcode::G_UMULFIX*//*Label 62*/ GIMT_Encode4(30756),
4692 /* 678 */ /*TargetOpcode::G_SMULFIXSAT*//*Label 63*/ GIMT_Encode4(30768),
4693 /* 682 */ /*TargetOpcode::G_UMULFIXSAT*//*Label 64*/ GIMT_Encode4(30780), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4694 /* 702 */ /*TargetOpcode::G_FADD*//*Label 65*/ GIMT_Encode4(30792),
4695 /* 706 */ /*TargetOpcode::G_FSUB*//*Label 66*/ GIMT_Encode4(30933),
4696 /* 710 */ /*TargetOpcode::G_FMUL*//*Label 67*/ GIMT_Encode4(31022),
4697 /* 714 */ /*TargetOpcode::G_FMA*//*Label 68*/ GIMT_Encode4(31163),
4698 /* 718 */ /*TargetOpcode::G_FMAD*//*Label 69*/ GIMT_Encode4(31220),
4699 /* 722 */ /*TargetOpcode::G_FDIV*//*Label 70*/ GIMT_Encode4(31277),
4700 /* 726 */ /*TargetOpcode::G_FREM*//*Label 71*/ GIMT_Encode4(31393), GIMT_Encode4(0), GIMT_Encode4(0),
4701 /* 738 */ /*TargetOpcode::G_FPOWI*//*Label 72*/ GIMT_Encode4(31416), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4702 /* 758 */ /*TargetOpcode::G_FLOG2*//*Label 73*/ GIMT_Encode4(31438), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4703 /* 774 */ /*TargetOpcode::G_FNEG*//*Label 74*/ GIMT_Encode4(31460),
4704 /* 778 */ /*TargetOpcode::G_FPEXT*//*Label 75*/ GIMT_Encode4(31522),
4705 /* 782 */ /*TargetOpcode::G_FPTRUNC*//*Label 76*/ GIMT_Encode4(31544),
4706 /* 786 */ /*TargetOpcode::G_FPTOSI*//*Label 77*/ GIMT_Encode4(31610),
4707 /* 790 */ /*TargetOpcode::G_FPTOUI*//*Label 78*/ GIMT_Encode4(31632),
4708 /* 794 */ /*TargetOpcode::G_SITOFP*//*Label 79*/ GIMT_Encode4(31654),
4709 /* 798 */ /*TargetOpcode::G_UITOFP*//*Label 80*/ GIMT_Encode4(31702), GIMT_Encode4(0), GIMT_Encode4(0),
4710 /* 810 */ /*TargetOpcode::G_FABS*//*Label 81*/ GIMT_Encode4(31750),
4711 /* 814 */ /*TargetOpcode::G_FCOPYSIGN*//*Label 82*/ GIMT_Encode4(31850), GIMT_Encode4(0),
4712 /* 822 */ /*TargetOpcode::G_FCANONICALIZE*//*Label 83*/ GIMT_Encode4(31862),
4713 /* 826 */ /*TargetOpcode::G_FMINNUM*//*Label 84*/ GIMT_Encode4(31915),
4714 /* 830 */ /*TargetOpcode::G_FMAXNUM*//*Label 85*/ GIMT_Encode4(31960),
4715 /* 834 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 86*/ GIMT_Encode4(32005),
4716 /* 838 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 87*/ GIMT_Encode4(32017),
4717 /* 842 */ /*TargetOpcode::G_FMINIMUM*//*Label 88*/ GIMT_Encode4(32029),
4718 /* 846 */ /*TargetOpcode::G_FMAXIMUM*//*Label 89*/ GIMT_Encode4(32074),
4719 /* 850 */ /*TargetOpcode::G_FMINIMUMNUM*//*Label 90*/ GIMT_Encode4(32119),
4720 /* 854 */ /*TargetOpcode::G_FMAXIMUMNUM*//*Label 91*/ GIMT_Encode4(32131), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4721 /* 890 */ /*TargetOpcode::G_PTR_ADD*//*Label 92*/ GIMT_Encode4(32143), GIMT_Encode4(0),
4722 /* 898 */ /*TargetOpcode::G_SMIN*//*Label 93*/ GIMT_Encode4(32268),
4723 /* 902 */ /*TargetOpcode::G_SMAX*//*Label 94*/ GIMT_Encode4(32302),
4724 /* 906 */ /*TargetOpcode::G_UMIN*//*Label 95*/ GIMT_Encode4(32336),
4725 /* 910 */ /*TargetOpcode::G_UMAX*//*Label 96*/ GIMT_Encode4(32370),
4726 /* 914 */ /*TargetOpcode::G_ABS*//*Label 97*/ GIMT_Encode4(32404), GIMT_Encode4(0), GIMT_Encode4(0),
4727 /* 926 */ /*TargetOpcode::G_BR*//*Label 98*/ GIMT_Encode4(32437), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4728 /* 946 */ /*TargetOpcode::G_INSERT_VECTOR_ELT*//*Label 99*/ GIMT_Encode4(32449),
4729 /* 950 */ /*TargetOpcode::G_EXTRACT_VECTOR_ELT*//*Label 100*/ GIMT_Encode4(32579),
4730 /* 954 */ /*TargetOpcode::G_SHUFFLE_VECTOR*//*Label 101*/ GIMT_Encode4(32956), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4731 /* 970 */ /*TargetOpcode::G_CTTZ*//*Label 102*/ GIMT_Encode4(33029),
4732 /* 974 */ /*TargetOpcode::G_CTTZ_ZERO_POISON*//*Label 103*/ GIMT_Encode4(33052),
4733 /* 978 */ /*TargetOpcode::G_CTLZ*//*Label 104*/ GIMT_Encode4(33064),
4734 /* 982 */ /*TargetOpcode::G_CTLZ_ZERO_POISON*//*Label 105*/ GIMT_Encode4(33098), GIMT_Encode4(0),
4735 /* 990 */ /*TargetOpcode::G_CTPOP*//*Label 106*/ GIMT_Encode4(33121),
4736 /* 994 */ /*TargetOpcode::G_BSWAP*//*Label 107*/ GIMT_Encode4(33133),
4737 /* 998 */ /*TargetOpcode::G_BITREVERSE*//*Label 108*/ GIMT_Encode4(33145), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4738 /* 1014 */ /*TargetOpcode::G_FCEIL*//*Label 109*/ GIMT_Encode4(33245), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4739 /* 1062 */ /*TargetOpcode::G_FSQRT*//*Label 110*/ GIMT_Encode4(33267),
4740 /* 1066 */ /*TargetOpcode::G_FFLOOR*//*Label 111*/ GIMT_Encode4(33349),
4741 /* 1070 */ /*TargetOpcode::G_FRINT*//*Label 112*/ GIMT_Encode4(33371),
4742 /* 1074 */ /*TargetOpcode::G_FNEARBYINT*//*Label 113*/ GIMT_Encode4(33393), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4743 /* 21962 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE0*//*Label 114*/ GIMT_Encode4(33415),
4744 /* 21966 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE1*//*Label 115*/ GIMT_Encode4(33427),
4745 /* 21970 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE2*//*Label 116*/ GIMT_Encode4(33439),
4746 /* 21974 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE3*//*Label 117*/ GIMT_Encode4(33451),
4747 /* 21978 */ // Label 0: @21978
4748 /* 21978 */ GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(21989), // Rule ID 19 //
4749 /* 21983 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
4750 /* 21986 */ // MIs[0] d
4751 /* 21986 */ // No operand predicates
4752 /* 21986 */ // MIs[0] s
4753 /* 21986 */ // No operand predicates
4754 /* 21986 */ // Combiner Rule #19: copy_prop
4755 /* 21986 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
4756 /* 21989 */ // Label 119: @21989
4757 /* 21989 */ GIM_Reject,
4758 /* 21990 */ // Label 1: @21990
4759 /* 21990 */ GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(22001), // Rule ID 272 //
4760 /* 21995 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
4761 /* 21998 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_ADD'
4762 /* 21998 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
4763 /* 22001 */ // Label 120: @22001
4764 /* 22001 */ GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(22012), // Rule ID 332 //
4765 /* 22006 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
4766 /* 22009 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_ADD'
4767 /* 22009 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
4768 /* 22012 */ // Label 121: @22012
4769 /* 22012 */ GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(22023), // Rule ID 369 //
4770 /* 22017 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
4771 /* 22020 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_ADD'
4772 /* 22020 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
4773 /* 22023 */ // Label 122: @22023
4774 /* 22023 */ GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(22178),
4775 /* 22028 */ GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_i32,
4776 /* 22031 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i32,
4777 /* 22034 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_i32,
4778 /* 22037 */ GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(22107), // Rule ID 483 //
4779 /* 22042 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule301Enabled),
4780 /* 22045 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/254,
4781 /* 22049 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4782 /* 22053 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
4783 /* 22057 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_i1,
4784 /* 22061 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
4785 /* 22065 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner36),
4786 /* 22069 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4787 /* 22071 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/254,
4788 /* 22074 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
4789 /* 22084 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4790 /* 22087 */ // Combiner Rule #301: anonymous_55768
4791 /* 22087 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UADDE),
4792 /* 22090 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
4793 /* 22092 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4794 /* 22097 */ GIR_RootToRootCopy, /*OpIdx*/2, // src
4795 /* 22099 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
4796 /* 22102 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // carry
4797 /* 22106 */ GIR_EraseRootFromParent_Done,
4798 /* 22107 */ // Label 124: @22107
4799 /* 22107 */ GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(22177), // Rule ID 482 //
4800 /* 22112 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule300Enabled),
4801 /* 22115 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/254,
4802 /* 22119 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4803 /* 22123 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
4804 /* 22127 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_i1,
4805 /* 22131 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
4806 /* 22135 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner35),
4807 /* 22139 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4808 /* 22141 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/254,
4809 /* 22144 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
4810 /* 22154 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4811 /* 22157 */ // Combiner Rule #300: anonymous_55767
4812 /* 22157 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UADDE),
4813 /* 22160 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
4814 /* 22162 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4815 /* 22167 */ GIR_RootToRootCopy, /*OpIdx*/1, // src
4816 /* 22169 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
4817 /* 22172 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // carry
4818 /* 22176 */ GIR_EraseRootFromParent_Done,
4819 /* 22177 */ // Label 125: @22177
4820 /* 22177 */ GIM_Reject,
4821 /* 22178 */ // Label 123: @22178
4822 /* 22178 */ GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(22266), // Rule ID 439 //
4823 /* 22183 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule267Enabled),
4824 /* 22186 */ // MIs[0] dst
4825 /* 22186 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4826 /* 22190 */ // MIs[0] __add_shift_match_0.shl_neg
4827 /* 22190 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4828 /* 22194 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
4829 /* 22198 */ // MIs[1] __add_shift_match_0.neg_y
4830 /* 22198 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4831 /* 22202 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4832 /* 22206 */ // MIs[2] __add_shift_match_0.zero
4833 /* 22206 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
4834 /* 22210 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4835 /* 22214 */ // MIs[3] Operand 1
4836 /* 22214 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
4837 /* 22225 */ // MIs[2] y
4838 /* 22225 */ // No operand predicates
4839 /* 22225 */ // MIs[1] n
4840 /* 22225 */ // No operand predicates
4841 /* 22225 */ // MIs[0] x
4842 /* 22225 */ // No operand predicates
4843 /* 22225 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner26),
4844 /* 22229 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4845 /* 22231 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4846 /* 22234 */ // Combiner Rule #267: add_shift @ [__add_shift_match_0[1]]
4847 /* 22234 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
4848 /* 22237 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4849 /* 22242 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
4850 /* 22246 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
4851 /* 22250 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4852 /* 22254 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4853 /* 22258 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // x
4854 /* 22262 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4855 /* 22265 */ GIR_EraseRootFromParent_Done,
4856 /* 22266 */ // Label 126: @22266
4857 /* 22266 */ GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(22354), // Rule ID 438 //
4858 /* 22271 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule267Enabled),
4859 /* 22274 */ // MIs[0] dst
4860 /* 22274 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4861 /* 22278 */ // MIs[0] x
4862 /* 22278 */ // No operand predicates
4863 /* 22278 */ // MIs[0] __add_shift_match_0.shl_neg
4864 /* 22278 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4865 /* 22282 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
4866 /* 22286 */ // MIs[1] __add_shift_match_0.neg_y
4867 /* 22286 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4868 /* 22290 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4869 /* 22294 */ // MIs[2] __add_shift_match_0.zero
4870 /* 22294 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
4871 /* 22298 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4872 /* 22302 */ // MIs[3] Operand 1
4873 /* 22302 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
4874 /* 22313 */ // MIs[2] y
4875 /* 22313 */ // No operand predicates
4876 /* 22313 */ // MIs[1] n
4877 /* 22313 */ // No operand predicates
4878 /* 22313 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner25),
4879 /* 22317 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4880 /* 22319 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4881 /* 22322 */ // Combiner Rule #267: add_shift @ [__add_shift_match_0[0]]
4882 /* 22322 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
4883 /* 22325 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4884 /* 22330 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
4885 /* 22334 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
4886 /* 22338 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4887 /* 22342 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4888 /* 22346 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // x
4889 /* 22350 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4890 /* 22353 */ GIR_EraseRootFromParent_Done,
4891 /* 22354 */ // Label 127: @22354
4892 /* 22354 */ GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(22388), // Rule ID 2 //
4893 /* 22359 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
4894 /* 22362 */ // MIs[0] root
4895 /* 22362 */ // No operand predicates
4896 /* 22362 */ // MIs[0] sub
4897 /* 22362 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4898 /* 22366 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4899 /* 22370 */ // MIs[1] Operand 1
4900 /* 22370 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
4901 /* 22374 */ // MIs[1] A
4902 /* 22374 */ // No operand predicates
4903 /* 22374 */ // MIs[0] B
4904 /* 22374 */ // No operand predicates
4905 /* 22374 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4906 /* 22376 */ // Combiner Rule #2: ZeroMinusAPlusB
4907 /* 22376 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4908 /* 22379 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4909 /* 22381 */ GIR_RootToRootCopy, /*OpIdx*/2, // B
4910 /* 22383 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // A
4911 /* 22387 */ GIR_EraseRootFromParent_Done,
4912 /* 22388 */ // Label 128: @22388
4913 /* 22388 */ GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(22437), // Rule ID 160 //
4914 /* 22393 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
4915 /* 22396 */ // MIs[0] dst
4916 /* 22396 */ // No operand predicates
4917 /* 22396 */ // MIs[0] __simplify_add_to_sub_match_0.neg
4918 /* 22396 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4919 /* 22400 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4920 /* 22404 */ // MIs[1] __simplify_add_to_sub_match_0.zero
4921 /* 22404 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4922 /* 22408 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4923 /* 22412 */ // MIs[2] Operand 1
4924 /* 22412 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(0),
4925 /* 22423 */ // MIs[1] newrhs
4926 /* 22423 */ // No operand predicates
4927 /* 22423 */ // MIs[0] newlhs
4928 /* 22423 */ // No operand predicates
4929 /* 22423 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4930 /* 22425 */ // Combiner Rule #112: simplify_add_to_sub @ [__simplify_add_to_sub_match_0[0]]
4931 /* 22425 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4932 /* 22428 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
4933 /* 22430 */ GIR_RootToRootCopy, /*OpIdx*/2, // newlhs
4934 /* 22432 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // newrhs
4935 /* 22436 */ GIR_EraseRootFromParent_Done,
4936 /* 22437 */ // Label 129: @22437
4937 /* 22437 */ GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(22474), // Rule ID 18 //
4938 /* 22442 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
4939 /* 22445 */ // MIs[0] root
4940 /* 22445 */ // No operand predicates
4941 /* 22445 */ // MIs[0] sub
4942 /* 22445 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4943 /* 22449 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4944 /* 22453 */ // MIs[1] A
4945 /* 22453 */ // No operand predicates
4946 /* 22453 */ // MIs[1] c1
4947 /* 22453 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4948 /* 22457 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4949 /* 22461 */ // MIs[2] imm1
4950 /* 22461 */ // No operand predicates
4951 /* 22461 */ // MIs[0] c2
4952 /* 22461 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4953 /* 22465 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4954 /* 22469 */ // MIs[3] imm2
4955 /* 22469 */ // No operand predicates
4956 /* 22469 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4957 /* 22471 */ // Combiner Rule #18: AMinusC1PlusC2
4958 /* 22471 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
4959 /* 22474 */ // Label 130: @22474
4960 /* 22474 */ GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(22508), // Rule ID 5 //
4961 /* 22479 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
4962 /* 22482 */ // MIs[0] root
4963 /* 22482 */ // No operand predicates
4964 /* 22482 */ // MIs[0] sub
4965 /* 22482 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4966 /* 22486 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4967 /* 22490 */ // MIs[1] B
4968 /* 22490 */ // No operand predicates
4969 /* 22490 */ // MIs[1] A
4970 /* 22490 */ // No operand predicates
4971 /* 22490 */ // MIs[0] A
4972 /* 22490 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
4973 /* 22495 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4974 /* 22500 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4975 /* 22502 */ // Combiner Rule #5: BMinusAPlusA
4976 /* 22502 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4977 /* 22507 */ GIR_EraseRootFromParent_Done,
4978 /* 22508 */ // Label 131: @22508
4979 /* 22508 */ GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(22542), // Rule ID 148 //
4980 /* 22513 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
4981 /* 22516 */ // MIs[0] dst
4982 /* 22516 */ // No operand predicates
4983 /* 22516 */ // MIs[0] __add_sub_reg_match_0.tmp
4984 /* 22516 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4985 /* 22520 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4986 /* 22524 */ // MIs[1] src
4987 /* 22524 */ // No operand predicates
4988 /* 22524 */ // MIs[1] __add_sub_reg_match_0.x
4989 /* 22524 */ // No operand predicates
4990 /* 22524 */ // MIs[0] __add_sub_reg_match_0.x
4991 /* 22524 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
4992 /* 22529 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4993 /* 22534 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4994 /* 22536 */ // Combiner Rule #101: add_sub_reg @ [__add_sub_reg_match_0[1]]
4995 /* 22536 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4996 /* 22541 */ GIR_EraseRootFromParent_Done,
4997 /* 22542 */ // Label 132: @22542
4998 /* 22542 */ GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(22587), // Rule ID 7 //
4999 /* 22547 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
5000 /* 22550 */ // MIs[0] root
5001 /* 22550 */ // No operand predicates
5002 /* 22550 */ // MIs[0] sub1
5003 /* 22550 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5004 /* 22554 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5005 /* 22558 */ // MIs[1] A
5006 /* 22558 */ // No operand predicates
5007 /* 22558 */ // MIs[1] B
5008 /* 22558 */ // No operand predicates
5009 /* 22558 */ // MIs[0] sub2
5010 /* 22558 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5011 /* 22562 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5012 /* 22566 */ // MIs[2] B
5013 /* 22566 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
5014 /* 22571 */ // MIs[2] C
5015 /* 22571 */ // No operand predicates
5016 /* 22571 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5017 /* 22573 */ // Combiner Rule #7: AMinusBPlusBMinusC
5018 /* 22573 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5019 /* 22576 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5020 /* 22578 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5021 /* 22582 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
5022 /* 22586 */ GIR_EraseRootFromParent_Done,
5023 /* 22587 */ // Label 133: @22587
5024 /* 22587 */ GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(22632), // Rule ID 6 //
5025 /* 22592 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
5026 /* 22595 */ // MIs[0] root
5027 /* 22595 */ // No operand predicates
5028 /* 22595 */ // MIs[0] sub1
5029 /* 22595 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5030 /* 22599 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5031 /* 22603 */ // MIs[1] A
5032 /* 22603 */ // No operand predicates
5033 /* 22603 */ // MIs[1] B
5034 /* 22603 */ // No operand predicates
5035 /* 22603 */ // MIs[0] sub2
5036 /* 22603 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5037 /* 22607 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5038 /* 22611 */ // MIs[2] C
5039 /* 22611 */ // No operand predicates
5040 /* 22611 */ // MIs[2] A
5041 /* 22611 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5042 /* 22616 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5043 /* 22618 */ // Combiner Rule #6: AMinusBPlusCMinusA
5044 /* 22618 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5045 /* 22621 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5046 /* 22623 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
5047 /* 22627 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
5048 /* 22631 */ GIR_EraseRootFromParent_Done,
5049 /* 22632 */ // Label 134: @22632
5050 /* 22632 */ GIM_Try, /*On fail goto*//*Label 135*/ GIMT_Encode4(22687), // Rule ID 22 //
5051 /* 22637 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
5052 /* 22640 */ // MIs[0] dst
5053 /* 22640 */ // No operand predicates
5054 /* 22640 */ // MIs[0] __add_p2i_to_ptradd_match_0.x
5055 /* 22640 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5056 /* 22644 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_PTRTOINT),
5057 /* 22648 */ // MIs[1] ptr
5058 /* 22648 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
5059 /* 22652 */ // MIs[0] other
5060 /* 22652 */ // No operand predicates
5061 /* 22652 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
5062 /* 22656 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5063 /* 22658 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5064 /* 22661 */ // Combiner Rule #22: add_p2i_to_ptradd @ [__add_p2i_to_ptradd_match_0[0]]
5065 /* 22661 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTR_ADD),
5066 /* 22664 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5067 /* 22669 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
5068 /* 22673 */ GIR_RootToRootCopy, /*OpIdx*/2, // other
5069 /* 22675 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTRTOINT),
5070 /* 22679 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
5071 /* 22683 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5072 /* 22686 */ GIR_EraseRootFromParent_Done,
5073 /* 22687 */ // Label 135: @22687
5074 /* 22687 */ GIM_Try, /*On fail goto*//*Label 136*/ GIMT_Encode4(22722), // Rule ID 46 //
5075 /* 22692 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
5076 /* 22695 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
5077 /* 22701 */ // MIs[0] root
5078 /* 22701 */ // No operand predicates
5079 /* 22701 */ // MIs[0] left
5080 /* 22701 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5081 /* 22705 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
5082 /* 22709 */ // MIs[1] imm1
5083 /* 22709 */ // No operand predicates
5084 /* 22709 */ // MIs[0] right
5085 /* 22709 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5086 /* 22713 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_VSCALE),
5087 /* 22717 */ // MIs[2] imm2
5088 /* 22717 */ // No operand predicates
5089 /* 22717 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5090 /* 22719 */ // Combiner Rule #42: add_of_vscale
5091 /* 22719 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
5092 /* 22722 */ // Label 136: @22722
5093 /* 22722 */ GIM_Try, /*On fail goto*//*Label 137*/ GIMT_Encode4(22743), // Rule ID 104 //
5094 /* 22727 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5095 /* 22730 */ // MIs[0] dst
5096 /* 22730 */ // No operand predicates
5097 /* 22730 */ // MIs[0] __propagate_undef_any_op_match_0.x
5098 /* 22730 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5099 /* 22734 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5100 /* 22738 */ // MIs[0] __propagate_undef_any_op_match_0.y
5101 /* 22738 */ // No operand predicates
5102 /* 22738 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5103 /* 22740 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[0]]
5104 /* 22740 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
5105 /* 22743 */ // Label 137: @22743
5106 /* 22743 */ GIM_Try, /*On fail goto*//*Label 138*/ GIMT_Encode4(22777), // Rule ID 3 //
5107 /* 22748 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
5108 /* 22751 */ // MIs[0] root
5109 /* 22751 */ // No operand predicates
5110 /* 22751 */ // MIs[0] A
5111 /* 22751 */ // No operand predicates
5112 /* 22751 */ // MIs[0] sub
5113 /* 22751 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5114 /* 22755 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5115 /* 22759 */ // MIs[1] Operand 1
5116 /* 22759 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
5117 /* 22763 */ // MIs[1] B
5118 /* 22763 */ // No operand predicates
5119 /* 22763 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5120 /* 22765 */ // Combiner Rule #3: APlusZeroMinusB
5121 /* 22765 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5122 /* 22768 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5123 /* 22770 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
5124 /* 22772 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
5125 /* 22776 */ GIR_EraseRootFromParent_Done,
5126 /* 22777 */ // Label 138: @22777
5127 /* 22777 */ GIM_Try, /*On fail goto*//*Label 139*/ GIMT_Encode4(22826), // Rule ID 161 //
5128 /* 22782 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
5129 /* 22785 */ // MIs[0] dst
5130 /* 22785 */ // No operand predicates
5131 /* 22785 */ // MIs[0] newlhs
5132 /* 22785 */ // No operand predicates
5133 /* 22785 */ // MIs[0] __simplify_add_to_sub_match_0.neg
5134 /* 22785 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5135 /* 22789 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5136 /* 22793 */ // MIs[1] __simplify_add_to_sub_match_0.zero
5137 /* 22793 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5138 /* 22797 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5139 /* 22801 */ // MIs[2] Operand 1
5140 /* 22801 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(0),
5141 /* 22812 */ // MIs[1] newrhs
5142 /* 22812 */ // No operand predicates
5143 /* 22812 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5144 /* 22814 */ // Combiner Rule #112: simplify_add_to_sub @ [__simplify_add_to_sub_match_0[1]]
5145 /* 22814 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5146 /* 22817 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5147 /* 22819 */ GIR_RootToRootCopy, /*OpIdx*/1, // newlhs
5148 /* 22821 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // newrhs
5149 /* 22825 */ GIR_EraseRootFromParent_Done,
5150 /* 22826 */ // Label 139: @22826
5151 /* 22826 */ GIM_Try, /*On fail goto*//*Label 140*/ GIMT_Encode4(22860), // Rule ID 4 //
5152 /* 22831 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
5153 /* 22834 */ // MIs[0] root
5154 /* 22834 */ // No operand predicates
5155 /* 22834 */ // MIs[0] A
5156 /* 22834 */ // No operand predicates
5157 /* 22834 */ // MIs[0] sub
5158 /* 22834 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5159 /* 22838 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5160 /* 22842 */ // MIs[1] B
5161 /* 22842 */ // No operand predicates
5162 /* 22842 */ // MIs[1] A
5163 /* 22842 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5164 /* 22847 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5165 /* 22852 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5166 /* 22854 */ // Combiner Rule #4: APlusBMinusB
5167 /* 22854 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5168 /* 22859 */ GIR_EraseRootFromParent_Done,
5169 /* 22860 */ // Label 140: @22860
5170 /* 22860 */ GIM_Try, /*On fail goto*//*Label 141*/ GIMT_Encode4(22894), // Rule ID 147 //
5171 /* 22865 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
5172 /* 22868 */ // MIs[0] dst
5173 /* 22868 */ // No operand predicates
5174 /* 22868 */ // MIs[0] __add_sub_reg_match_0.x
5175 /* 22868 */ // No operand predicates
5176 /* 22868 */ // MIs[0] __add_sub_reg_match_0.tmp
5177 /* 22868 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5178 /* 22872 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5179 /* 22876 */ // MIs[1] src
5180 /* 22876 */ // No operand predicates
5181 /* 22876 */ // MIs[1] __add_sub_reg_match_0.x
5182 /* 22876 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5183 /* 22881 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5184 /* 22886 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5185 /* 22888 */ // Combiner Rule #101: add_sub_reg @ [__add_sub_reg_match_0[0]]
5186 /* 22888 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5187 /* 22893 */ GIR_EraseRootFromParent_Done,
5188 /* 22894 */ // Label 141: @22894
5189 /* 22894 */ GIM_Try, /*On fail goto*//*Label 142*/ GIMT_Encode4(22939), // Rule ID 8 //
5190 /* 22899 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
5191 /* 22902 */ // MIs[0] root
5192 /* 22902 */ // No operand predicates
5193 /* 22902 */ // MIs[0] A
5194 /* 22902 */ // No operand predicates
5195 /* 22902 */ // MIs[0] sub1
5196 /* 22902 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5197 /* 22906 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5198 /* 22910 */ // MIs[1] B
5199 /* 22910 */ // No operand predicates
5200 /* 22910 */ // MIs[1] add1
5201 /* 22910 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5202 /* 22914 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
5203 /* 22918 */ // MIs[2] A
5204 /* 22918 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
5205 /* 22923 */ // MIs[2] C
5206 /* 22923 */ // No operand predicates
5207 /* 22923 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5208 /* 22925 */ // Combiner Rule #8: APlusBMinusAplusC
5209 /* 22925 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5210 /* 22928 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5211 /* 22930 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
5212 /* 22934 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
5213 /* 22938 */ GIR_EraseRootFromParent_Done,
5214 /* 22939 */ // Label 142: @22939
5215 /* 22939 */ GIM_Try, /*On fail goto*//*Label 143*/ GIMT_Encode4(22984), // Rule ID 10 //
5216 /* 22944 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
5217 /* 22947 */ // MIs[0] root
5218 /* 22947 */ // No operand predicates
5219 /* 22947 */ // MIs[0] A
5220 /* 22947 */ // No operand predicates
5221 /* 22947 */ // MIs[0] sub1
5222 /* 22947 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5223 /* 22951 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5224 /* 22955 */ // MIs[1] B
5225 /* 22955 */ // No operand predicates
5226 /* 22955 */ // MIs[1] add1
5227 /* 22955 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5228 /* 22959 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
5229 /* 22963 */ // MIs[2] C
5230 /* 22963 */ // No operand predicates
5231 /* 22963 */ // MIs[2] A
5232 /* 22963 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5233 /* 22968 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5234 /* 22970 */ // Combiner Rule #10: APlusBMinusCPlusA
5235 /* 22970 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5236 /* 22973 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5237 /* 22975 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
5238 /* 22979 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
5239 /* 22983 */ GIR_EraseRootFromParent_Done,
5240 /* 22984 */ // Label 143: @22984
5241 /* 22984 */ GIM_Try, /*On fail goto*//*Label 144*/ GIMT_Encode4(23039), // Rule ID 23 //
5242 /* 22989 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
5243 /* 22992 */ // MIs[0] dst
5244 /* 22992 */ // No operand predicates
5245 /* 22992 */ // MIs[0] other
5246 /* 22992 */ // No operand predicates
5247 /* 22992 */ // MIs[0] __add_p2i_to_ptradd_match_0.x
5248 /* 22992 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5249 /* 22996 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_PTRTOINT),
5250 /* 23000 */ // MIs[1] ptr
5251 /* 23000 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
5252 /* 23004 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
5253 /* 23008 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5254 /* 23010 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5255 /* 23013 */ // Combiner Rule #22: add_p2i_to_ptradd @ [__add_p2i_to_ptradd_match_0[1]]
5256 /* 23013 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTR_ADD),
5257 /* 23016 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5258 /* 23021 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
5259 /* 23025 */ GIR_RootToRootCopy, /*OpIdx*/1, // other
5260 /* 23027 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTRTOINT),
5261 /* 23031 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
5262 /* 23035 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5263 /* 23038 */ GIR_EraseRootFromParent_Done,
5264 /* 23039 */ // Label 144: @23039
5265 /* 23039 */ GIM_Try, /*On fail goto*//*Label 145*/ GIMT_Encode4(23060), // Rule ID 107 //
5266 /* 23044 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5267 /* 23047 */ // MIs[0] dst
5268 /* 23047 */ // No operand predicates
5269 /* 23047 */ // MIs[0] __propagate_undef_any_op_match_0.x
5270 /* 23047 */ // No operand predicates
5271 /* 23047 */ // MIs[0] __propagate_undef_any_op_match_0.y
5272 /* 23047 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5273 /* 23051 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5274 /* 23055 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5275 /* 23057 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[3]]
5276 /* 23057 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
5277 /* 23060 */ // Label 145: @23060
5278 /* 23060 */ GIM_Try, /*On fail goto*//*Label 146*/ GIMT_Encode4(23083), // Rule ID 119 //
5279 /* 23065 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
5280 /* 23068 */ // MIs[0] dst
5281 /* 23068 */ // No operand predicates
5282 /* 23068 */ // MIs[0] lhs
5283 /* 23068 */ // No operand predicates
5284 /* 23068 */ // MIs[0] Operand 2
5285 /* 23068 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5286 /* 23072 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5287 /* 23077 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[1]]
5288 /* 23077 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5289 /* 23082 */ GIR_EraseRootFromParent_Done,
5290 /* 23083 */ // Label 146: @23083
5291 /* 23083 */ GIM_Try, /*On fail goto*//*Label 147*/ GIMT_Encode4(23094), // Rule ID 169 //
5292 /* 23088 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule116Enabled),
5293 /* 23091 */ // MIs[0] root
5294 /* 23091 */ // No operand predicates
5295 /* 23091 */ // MIs[0] src1
5296 /* 23091 */ // No operand predicates
5297 /* 23091 */ // MIs[0] src2
5298 /* 23091 */ // No operand predicates
5299 /* 23091 */ // Combiner Rule #116: reassoc_comm_binops
5300 /* 23091 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
5301 /* 23094 */ // Label 147: @23094
5302 /* 23094 */ GIM_Reject,
5303 /* 23095 */ // Label 2: @23095
5304 /* 23095 */ GIM_Try, /*On fail goto*//*Label 148*/ GIMT_Encode4(23106), // Rule ID 280 //
5305 /* 23100 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
5306 /* 23103 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_SUB'
5307 /* 23103 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
5308 /* 23106 */ // Label 148: @23106
5309 /* 23106 */ GIM_Try, /*On fail goto*//*Label 149*/ GIMT_Encode4(23117), // Rule ID 333 //
5310 /* 23111 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
5311 /* 23114 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_SUB'
5312 /* 23114 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
5313 /* 23117 */ // Label 149: @23117
5314 /* 23117 */ GIM_Try, /*On fail goto*//*Label 150*/ GIMT_Encode4(23196), // Rule ID 484 //
5315 /* 23122 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule302Enabled),
5316 /* 23125 */ GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_i32,
5317 /* 23128 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i32,
5318 /* 23131 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_i32,
5319 /* 23134 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/254,
5320 /* 23138 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5321 /* 23142 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
5322 /* 23146 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_i1,
5323 /* 23150 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
5324 /* 23154 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner35),
5325 /* 23158 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5326 /* 23160 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/254,
5327 /* 23163 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5328 /* 23173 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5329 /* 23176 */ // Combiner Rule #302: anonymous_55769
5330 /* 23176 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_USUBE),
5331 /* 23179 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5332 /* 23181 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5333 /* 23186 */ GIR_RootToRootCopy, /*OpIdx*/1, // src
5334 /* 23188 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5335 /* 23191 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // carry
5336 /* 23195 */ GIR_EraseRootFromParent_Done,
5337 /* 23196 */ // Label 150: @23196
5338 /* 23196 */ GIM_Try, /*On fail goto*//*Label 151*/ GIMT_Encode4(23273), // Rule ID 440 //
5339 /* 23201 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule268Enabled),
5340 /* 23204 */ // MIs[0] dst
5341 /* 23204 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5342 /* 23208 */ // MIs[0] sub1
5343 /* 23208 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5344 /* 23212 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5345 /* 23216 */ // MIs[1] a
5346 /* 23216 */ // No operand predicates
5347 /* 23216 */ // MIs[1] b
5348 /* 23216 */ // No operand predicates
5349 /* 23216 */ // MIs[0] Operand 2
5350 /* 23216 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
5351 /* 23220 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
5352 /* 23224 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5353 /* 23226 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5354 /* 23229 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
5355 /* 23239 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5356 /* 23242 */ // Combiner Rule #268: sub_one_from_sub
5357 /* 23242 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
5358 /* 23245 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5359 /* 23250 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // b
5360 /* 23254 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5361 /* 23257 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5362 /* 23261 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
5363 /* 23265 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5364 /* 23268 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
5365 /* 23272 */ GIR_EraseRootFromParent_Done,
5366 /* 23273 */ // Label 151: @23273
5367 /* 23273 */ GIM_Try, /*On fail goto*//*Label 152*/ GIMT_Encode4(23367), // Rule ID 446 //
5368 /* 23278 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule272Enabled),
5369 /* 23281 */ // MIs[0] root
5370 /* 23281 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5371 /* 23285 */ // MIs[0] Operand 1
5372 /* 23285 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5373 /* 23289 */ // MIs[0] max
5374 /* 23289 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5375 /* 23293 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SMAX),
5376 /* 23297 */ // MIs[1] A
5377 /* 23297 */ // No operand predicates
5378 /* 23297 */ // MIs[1] sub
5379 /* 23297 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5380 /* 23301 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5381 /* 23305 */ // MIs[2] Operand 1
5382 /* 23305 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/1, 0,
5383 /* 23309 */ // MIs[2] A
5384 /* 23309 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5385 /* 23314 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner27),
5386 /* 23318 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5387 /* 23320 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5388 /* 23323 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5389 /* 23333 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5390 /* 23336 */ // Combiner Rule #272: SubSmaxSub
5391 /* 23336 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5392 /* 23339 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5393 /* 23344 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5394 /* 23347 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5395 /* 23351 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMIN),
5396 /* 23355 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5397 /* 23359 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // A
5398 /* 23363 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5399 /* 23366 */ GIR_EraseRootFromParent_Done,
5400 /* 23367 */ // Label 152: @23367
5401 /* 23367 */ GIM_Try, /*On fail goto*//*Label 153*/ GIMT_Encode4(23461), // Rule ID 447 //
5402 /* 23372 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule273Enabled),
5403 /* 23375 */ // MIs[0] root
5404 /* 23375 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5405 /* 23379 */ // MIs[0] Operand 1
5406 /* 23379 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5407 /* 23383 */ // MIs[0] max
5408 /* 23383 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5409 /* 23387 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMAX),
5410 /* 23391 */ // MIs[1] A
5411 /* 23391 */ // No operand predicates
5412 /* 23391 */ // MIs[1] sub
5413 /* 23391 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5414 /* 23395 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5415 /* 23399 */ // MIs[2] Operand 1
5416 /* 23399 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/1, 0,
5417 /* 23403 */ // MIs[2] A
5418 /* 23403 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5419 /* 23408 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner27),
5420 /* 23412 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5421 /* 23414 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5422 /* 23417 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5423 /* 23427 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5424 /* 23430 */ // Combiner Rule #273: SubUmaxSub
5425 /* 23430 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5426 /* 23433 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5427 /* 23438 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5428 /* 23441 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5429 /* 23445 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMIN),
5430 /* 23449 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5431 /* 23453 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // A
5432 /* 23457 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5433 /* 23460 */ GIR_EraseRootFromParent_Done,
5434 /* 23461 */ // Label 153: @23461
5435 /* 23461 */ GIM_Try, /*On fail goto*//*Label 154*/ GIMT_Encode4(23601),
5436 /* 23466 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5437 /* 23470 */ GIM_Try, /*On fail goto*//*Label 155*/ GIMT_Encode4(23506), // Rule ID 444 //
5438 /* 23475 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule270Enabled),
5439 /* 23478 */ // MIs[0] Operand 1
5440 /* 23478 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 255,
5441 /* 23482 */ // MIs[0] op1
5442 /* 23482 */ // No operand predicates
5443 /* 23482 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5444 /* 23485 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(18446744073709551615u),
5445 /* 23495 */ // Combiner Rule #270: sub_minus_one
5446 /* 23495 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
5447 /* 23498 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5448 /* 23500 */ GIR_RootToRootCopy, /*OpIdx*/2, // op1
5449 /* 23502 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5450 /* 23505 */ GIR_EraseRootFromParent_Done,
5451 /* 23506 */ // Label 155: @23506
5452 /* 23506 */ GIM_Try, /*On fail goto*//*Label 156*/ GIMT_Encode4(23600), // Rule ID 445 //
5453 /* 23511 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule271Enabled),
5454 /* 23514 */ // MIs[0] a
5455 /* 23514 */ // No operand predicates
5456 /* 23514 */ // MIs[0] mul
5457 /* 23514 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5458 /* 23518 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
5459 /* 23522 */ GIM_CheckHasOneUse, /*MI*/1,
5460 /* 23524 */ // MIs[1] x
5461 /* 23524 */ // No operand predicates
5462 /* 23524 */ // MIs[1] c
5463 /* 23524 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5464 /* 23528 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5465 /* 23532 */ // MIs[2] imm
5466 /* 23532 */ // No operand predicates
5467 /* 23532 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5468 /* 23534 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
5469 /* 23537 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5470 /* 23540 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5471 /* 23550 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5472 /* 23553 */ // Combiner Rule #271: sub_of_mul_const
5473 /* 23553 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5474 /* 23556 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5475 /* 23561 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5476 /* 23564 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // c
5477 /* 23568 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MUL),
5478 /* 23572 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5479 /* 23577 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
5480 /* 23581 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5481 /* 23584 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5482 /* 23588 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // d
5483 /* 23592 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // a
5484 /* 23596 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5485 /* 23599 */ GIR_EraseRootFromParent_Done,
5486 /* 23600 */ // Label 156: @23600
5487 /* 23600 */ GIM_Reject,
5488 /* 23601 */ // Label 154: @23601
5489 /* 23601 */ GIM_Try, /*On fail goto*//*Label 157*/ GIMT_Encode4(23662), // Rule ID 9 //
5490 /* 23606 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
5491 /* 23609 */ // MIs[0] root
5492 /* 23609 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5493 /* 23613 */ // MIs[0] A
5494 /* 23613 */ // No operand predicates
5495 /* 23613 */ // MIs[0] sub1
5496 /* 23613 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5497 /* 23617 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5498 /* 23621 */ // MIs[1] B
5499 /* 23621 */ // No operand predicates
5500 /* 23621 */ // MIs[1] C
5501 /* 23621 */ // No operand predicates
5502 /* 23621 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
5503 /* 23625 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5504 /* 23627 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5505 /* 23630 */ // Combiner Rule #9: AMinusBMinusC
5506 /* 23630 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5507 /* 23633 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5508 /* 23638 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // C
5509 /* 23642 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
5510 /* 23646 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5511 /* 23650 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5512 /* 23654 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // A
5513 /* 23658 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5514 /* 23661 */ GIR_EraseRootFromParent_Done,
5515 /* 23662 */ // Label 157: @23662
5516 /* 23662 */ GIM_Try, /*On fail goto*//*Label 158*/ GIMT_Encode4(23707), // Rule ID 0 //
5517 /* 23667 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
5518 /* 23670 */ // MIs[0] root
5519 /* 23670 */ // No operand predicates
5520 /* 23670 */ // MIs[0] add1
5521 /* 23670 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5522 /* 23674 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5523 /* 23678 */ // MIs[1] A
5524 /* 23678 */ // No operand predicates
5525 /* 23678 */ // MIs[1] sub1
5526 /* 23678 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5527 /* 23682 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5528 /* 23686 */ // MIs[2] B
5529 /* 23686 */ // No operand predicates
5530 /* 23686 */ // MIs[2] C
5531 /* 23686 */ // No operand predicates
5532 /* 23686 */ // MIs[0] B
5533 /* 23686 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
5534 /* 23691 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5535 /* 23693 */ // Combiner Rule #0: APlusBMinusCMinusB
5536 /* 23693 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5537 /* 23696 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5538 /* 23698 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5539 /* 23702 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
5540 /* 23706 */ GIR_EraseRootFromParent_Done,
5541 /* 23707 */ // Label 158: @23707
5542 /* 23707 */ GIM_Try, /*On fail goto*//*Label 159*/ GIMT_Encode4(23744), // Rule ID 14 //
5543 /* 23712 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
5544 /* 23715 */ // MIs[0] root
5545 /* 23715 */ // No operand predicates
5546 /* 23715 */ // MIs[0] add
5547 /* 23715 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5548 /* 23719 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5549 /* 23723 */ // MIs[1] A
5550 /* 23723 */ // No operand predicates
5551 /* 23723 */ // MIs[1] c1
5552 /* 23723 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5553 /* 23727 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5554 /* 23731 */ // MIs[2] imm1
5555 /* 23731 */ // No operand predicates
5556 /* 23731 */ // MIs[0] c2
5557 /* 23731 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5558 /* 23735 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5559 /* 23739 */ // MIs[3] imm2
5560 /* 23739 */ // No operand predicates
5561 /* 23739 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5562 /* 23741 */ // Combiner Rule #14: APlusC1MinusC2
5563 /* 23741 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
5564 /* 23744 */ // Label 159: @23744
5565 /* 23744 */ GIM_Try, /*On fail goto*//*Label 160*/ GIMT_Encode4(23781), // Rule ID 17 //
5566 /* 23749 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
5567 /* 23752 */ // MIs[0] root
5568 /* 23752 */ // No operand predicates
5569 /* 23752 */ // MIs[0] sub1
5570 /* 23752 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5571 /* 23756 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5572 /* 23760 */ // MIs[1] c1
5573 /* 23760 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5574 /* 23764 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5575 /* 23768 */ // MIs[2] imm1
5576 /* 23768 */ // No operand predicates
5577 /* 23768 */ // MIs[1] A
5578 /* 23768 */ // No operand predicates
5579 /* 23768 */ // MIs[0] c2
5580 /* 23768 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5581 /* 23772 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5582 /* 23776 */ // MIs[3] imm2
5583 /* 23776 */ // No operand predicates
5584 /* 23776 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5585 /* 23778 */ // Combiner Rule #17: C1Minus2MinusC2
5586 /* 23778 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
5587 /* 23781 */ // Label 160: @23781
5588 /* 23781 */ GIM_Try, /*On fail goto*//*Label 161*/ GIMT_Encode4(23826), // Rule ID 1 //
5589 /* 23786 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
5590 /* 23789 */ // MIs[0] root
5591 /* 23789 */ // No operand predicates
5592 /* 23789 */ // MIs[0] sub2
5593 /* 23789 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5594 /* 23793 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5595 /* 23797 */ // MIs[1] A
5596 /* 23797 */ // No operand predicates
5597 /* 23797 */ // MIs[1] sub1
5598 /* 23797 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5599 /* 23801 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5600 /* 23805 */ // MIs[2] B
5601 /* 23805 */ // No operand predicates
5602 /* 23805 */ // MIs[2] C
5603 /* 23805 */ // No operand predicates
5604 /* 23805 */ // MIs[0] C
5605 /* 23805 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/2,
5606 /* 23810 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5607 /* 23812 */ // Combiner Rule #1: AMinusBMinusCMinusC
5608 /* 23812 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5609 /* 23815 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5610 /* 23817 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5611 /* 23821 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // B
5612 /* 23825 */ GIR_EraseRootFromParent_Done,
5613 /* 23826 */ // Label 161: @23826
5614 /* 23826 */ GIM_Try, /*On fail goto*//*Label 162*/ GIMT_Encode4(23863), // Rule ID 16 //
5615 /* 23831 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
5616 /* 23834 */ // MIs[0] root
5617 /* 23834 */ // No operand predicates
5618 /* 23834 */ // MIs[0] sub1
5619 /* 23834 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5620 /* 23838 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5621 /* 23842 */ // MIs[1] A
5622 /* 23842 */ // No operand predicates
5623 /* 23842 */ // MIs[1] c1
5624 /* 23842 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5625 /* 23846 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5626 /* 23850 */ // MIs[2] imm1
5627 /* 23850 */ // No operand predicates
5628 /* 23850 */ // MIs[0] c2
5629 /* 23850 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5630 /* 23854 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5631 /* 23858 */ // MIs[3] imm2
5632 /* 23858 */ // No operand predicates
5633 /* 23858 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5634 /* 23860 */ // Combiner Rule #16: AMinusC1MinusC2
5635 /* 23860 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
5636 /* 23863 */ // Label 162: @23863
5637 /* 23863 */ GIM_Try, /*On fail goto*//*Label 163*/ GIMT_Encode4(23884), // Rule ID 105 //
5638 /* 23868 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5639 /* 23871 */ // MIs[0] dst
5640 /* 23871 */ // No operand predicates
5641 /* 23871 */ // MIs[0] __propagate_undef_any_op_match_0.x
5642 /* 23871 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5643 /* 23875 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5644 /* 23879 */ // MIs[0] __propagate_undef_any_op_match_0.y
5645 /* 23879 */ // No operand predicates
5646 /* 23879 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5647 /* 23881 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[1]]
5648 /* 23881 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
5649 /* 23884 */ // Label 163: @23884
5650 /* 23884 */ GIM_Try, /*On fail goto*//*Label 164*/ GIMT_Encode4(23927), // Rule ID 179 //
5651 /* 23889 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
5652 /* 23892 */ // MIs[0] dst
5653 /* 23892 */ // No operand predicates
5654 /* 23892 */ // MIs[0] Operand 1
5655 /* 23892 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5656 /* 23896 */ // MIs[0] and
5657 /* 23896 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5658 /* 23900 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5659 /* 23904 */ // MIs[1] x
5660 /* 23904 */ // No operand predicates
5661 /* 23904 */ // MIs[1] Operand 2
5662 /* 23904 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
5663 /* 23908 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner15),
5664 /* 23912 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5665 /* 23914 */ // Combiner Rule #126: neg_and_one_to_sext_inreg
5666 /* 23914 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
5667 /* 23917 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5668 /* 23919 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
5669 /* 23923 */ GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
5670 /* 23926 */ GIR_EraseRootFromParent_Done,
5671 /* 23927 */ // Label 164: @23927
5672 /* 23927 */ GIM_Try, /*On fail goto*//*Label 165*/ GIMT_Encode4(23964), // Rule ID 15 //
5673 /* 23932 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
5674 /* 23935 */ // MIs[0] root
5675 /* 23935 */ // No operand predicates
5676 /* 23935 */ // MIs[0] c2
5677 /* 23935 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5678 /* 23939 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5679 /* 23943 */ // MIs[1] imm2
5680 /* 23943 */ // No operand predicates
5681 /* 23943 */ // MIs[0] add
5682 /* 23943 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5683 /* 23947 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
5684 /* 23951 */ // MIs[2] A
5685 /* 23951 */ // No operand predicates
5686 /* 23951 */ // MIs[2] c1
5687 /* 23951 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5688 /* 23955 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5689 /* 23959 */ // MIs[3] imm1
5690 /* 23959 */ // No operand predicates
5691 /* 23959 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5692 /* 23961 */ // Combiner Rule #15: C2MinusAPlusC1
5693 /* 23961 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
5694 /* 23964 */ // Label 165: @23964
5695 /* 23964 */ GIM_Try, /*On fail goto*//*Label 166*/ GIMT_Encode4(24003), // Rule ID 130 //
5696 /* 23969 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
5697 /* 23972 */ // MIs[0] dst
5698 /* 23972 */ // No operand predicates
5699 /* 23972 */ // MIs[0] x
5700 /* 23972 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
5701 /* 23976 */ // MIs[0] x
5702 /* 23976 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5703 /* 23981 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5704 /* 23984 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5705 /* 23994 */ // Combiner Rule #92: same_val_zero @ [__same_val_zero_match_0[0]]
5706 /* 23994 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5707 /* 23997 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5708 /* 23999 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5709 /* 24002 */ GIR_EraseRootFromParent_Done,
5710 /* 24003 */ // Label 166: @24003
5711 /* 24003 */ GIM_Try, /*On fail goto*//*Label 167*/ GIMT_Encode4(24037), // Rule ID 12 //
5712 /* 24008 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
5713 /* 24011 */ // MIs[0] root
5714 /* 24011 */ // No operand predicates
5715 /* 24011 */ // MIs[0] A
5716 /* 24011 */ // No operand predicates
5717 /* 24011 */ // MIs[0] add
5718 /* 24011 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5719 /* 24015 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5720 /* 24019 */ // MIs[1] A
5721 /* 24019 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
5722 /* 24024 */ // MIs[1] B
5723 /* 24024 */ // No operand predicates
5724 /* 24024 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
5725 /* 24029 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5726 /* 24031 */ // Combiner Rule #12: AMinusBMinusA
5727 /* 24031 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
5728 /* 24036 */ GIR_EraseRootFromParent_Done,
5729 /* 24037 */ // Label 167: @24037
5730 /* 24037 */ GIM_Try, /*On fail goto*//*Label 168*/ GIMT_Encode4(24071), // Rule ID 11 //
5731 /* 24042 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
5732 /* 24045 */ // MIs[0] root
5733 /* 24045 */ // No operand predicates
5734 /* 24045 */ // MIs[0] A
5735 /* 24045 */ // No operand predicates
5736 /* 24045 */ // MIs[0] sub1
5737 /* 24045 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5738 /* 24049 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5739 /* 24053 */ // MIs[1] Operand 1
5740 /* 24053 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
5741 /* 24057 */ // MIs[1] B
5742 /* 24057 */ // No operand predicates
5743 /* 24057 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5744 /* 24059 */ // Combiner Rule #11: AMinusZeroMinusB
5745 /* 24059 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5746 /* 24062 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5747 /* 24064 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
5748 /* 24066 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
5749 /* 24070 */ GIR_EraseRootFromParent_Done,
5750 /* 24071 */ // Label 168: @24071
5751 /* 24071 */ GIM_Try, /*On fail goto*//*Label 169*/ GIMT_Encode4(24098), // Rule ID 49 //
5752 /* 24076 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
5753 /* 24079 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
5754 /* 24085 */ // MIs[0] root
5755 /* 24085 */ // No operand predicates
5756 /* 24085 */ // MIs[0] x
5757 /* 24085 */ // No operand predicates
5758 /* 24085 */ // MIs[0] right
5759 /* 24085 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5760 /* 24089 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
5761 /* 24093 */ // MIs[1] imm
5762 /* 24093 */ // No operand predicates
5763 /* 24093 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5764 /* 24095 */ // Combiner Rule #45: sub_of_vscale
5765 /* 24095 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
5766 /* 24098 */ // Label 169: @24098
5767 /* 24098 */ GIM_Try, /*On fail goto*//*Label 170*/ GIMT_Encode4(24119), // Rule ID 108 //
5768 /* 24103 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5769 /* 24106 */ // MIs[0] dst
5770 /* 24106 */ // No operand predicates
5771 /* 24106 */ // MIs[0] __propagate_undef_any_op_match_0.x
5772 /* 24106 */ // No operand predicates
5773 /* 24106 */ // MIs[0] __propagate_undef_any_op_match_0.y
5774 /* 24106 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5775 /* 24110 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5776 /* 24114 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5777 /* 24116 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[4]]
5778 /* 24116 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
5779 /* 24119 */ // Label 170: @24119
5780 /* 24119 */ GIM_Try, /*On fail goto*//*Label 171*/ GIMT_Encode4(24142), // Rule ID 118 //
5781 /* 24124 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
5782 /* 24127 */ // MIs[0] dst
5783 /* 24127 */ // No operand predicates
5784 /* 24127 */ // MIs[0] lhs
5785 /* 24127 */ // No operand predicates
5786 /* 24127 */ // MIs[0] Operand 2
5787 /* 24127 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5788 /* 24131 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5789 /* 24136 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[0]]
5790 /* 24136 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5791 /* 24141 */ GIR_EraseRootFromParent_Done,
5792 /* 24142 */ // Label 171: @24142
5793 /* 24142 */ GIM_Try, /*On fail goto*//*Label 172*/ GIMT_Encode4(24163), // Rule ID 21 //
5794 /* 24147 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
5795 /* 24150 */ // MIs[0] d
5796 /* 24150 */ // No operand predicates
5797 /* 24150 */ // MIs[0] op1
5798 /* 24150 */ // No operand predicates
5799 /* 24150 */ // MIs[0] c
5800 /* 24150 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5801 /* 24154 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5802 /* 24158 */ // MIs[1] imm
5803 /* 24158 */ // No operand predicates
5804 /* 24158 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5805 /* 24160 */ // Combiner Rule #21: sub_to_add
5806 /* 24160 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
5807 /* 24163 */ // Label 172: @24163
5808 /* 24163 */ GIM_Try, /*On fail goto*//*Label 173*/ GIMT_Encode4(24174), // Rule ID 366 //
5809 /* 24168 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule224Enabled),
5810 /* 24171 */ // MIs[0] dst
5811 /* 24171 */ // No operand predicates
5812 /* 24171 */ // MIs[0] src1
5813 /* 24171 */ // No operand predicates
5814 /* 24171 */ // MIs[0] src2
5815 /* 24171 */ // No operand predicates
5816 /* 24171 */ // Combiner Rule #224: sub_add_reg
5817 /* 24171 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner115),
5818 /* 24174 */ // Label 173: @24174
5819 /* 24174 */ GIM_Try, /*On fail goto*//*Label 174*/ GIMT_Encode4(24185), // Rule ID 406 //
5820 /* 24179 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule237Enabled),
5821 /* 24182 */ // MIs[0] dst
5822 /* 24182 */ // No operand predicates
5823 /* 24182 */ // MIs[0] src1
5824 /* 24182 */ // No operand predicates
5825 /* 24182 */ // MIs[0] src2
5826 /* 24182 */ // No operand predicates
5827 /* 24182 */ // Combiner Rule #237: simplify_neg_minmax
5828 /* 24182 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
5829 /* 24185 */ // Label 174: @24185
5830 /* 24185 */ GIM_Reject,
5831 /* 24186 */ // Label 3: @24186
5832 /* 24186 */ GIM_Try, /*On fail goto*//*Label 175*/ GIMT_Encode4(24197), // Rule ID 277 //
5833 /* 24191 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
5834 /* 24194 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_MUL'
5835 /* 24194 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
5836 /* 24197 */ // Label 175: @24197
5837 /* 24197 */ GIM_Try, /*On fail goto*//*Label 176*/ GIMT_Encode4(24208), // Rule ID 370 //
5838 /* 24202 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
5839 /* 24205 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_MUL'
5840 /* 24205 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5841 /* 24208 */ // Label 176: @24208
5842 /* 24208 */ GIM_Try, /*On fail goto*//*Label 177*/ GIMT_Encode4(24248), // Rule ID 24 //
5843 /* 24213 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
5844 /* 24216 */ // MIs[0] dst
5845 /* 24216 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5846 /* 24220 */ // MIs[0] x
5847 /* 24220 */ // No operand predicates
5848 /* 24220 */ // MIs[0] Operand 2
5849 /* 24220 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
5850 /* 24224 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5851 /* 24227 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5852 /* 24237 */ // Combiner Rule #23: mul_by_neg_one
5853 /* 24237 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5854 /* 24240 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5855 /* 24242 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5856 /* 24245 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
5857 /* 24247 */ GIR_EraseRootFromParent_Done,
5858 /* 24248 */ // Label 177: @24248
5859 /* 24248 */ GIM_Try, /*On fail goto*//*Label 178*/ GIMT_Encode4(24283), // Rule ID 47 //
5860 /* 24253 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
5861 /* 24256 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
5862 /* 24262 */ // MIs[0] root
5863 /* 24262 */ // No operand predicates
5864 /* 24262 */ // MIs[0] left
5865 /* 24262 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5866 /* 24266 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
5867 /* 24270 */ // MIs[1] scale
5868 /* 24270 */ // No operand predicates
5869 /* 24270 */ // MIs[0] x
5870 /* 24270 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5871 /* 24274 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5872 /* 24278 */ // MIs[2] imm1
5873 /* 24278 */ // No operand predicates
5874 /* 24278 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5875 /* 24280 */ // Combiner Rule #43: mul_of_vscale
5876 /* 24280 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
5877 /* 24283 */ // Label 178: @24283
5878 /* 24283 */ GIM_Try, /*On fail goto*//*Label 179*/ GIMT_Encode4(24304), // Rule ID 85 //
5879 /* 24288 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
5880 /* 24291 */ // MIs[0] dst
5881 /* 24291 */ // No operand predicates
5882 /* 24291 */ // MIs[0] __undef_to_int_zero_match_0.x
5883 /* 24291 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5884 /* 24295 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5885 /* 24299 */ // MIs[0] __undef_to_int_zero_match_0.y
5886 /* 24299 */ // No operand predicates
5887 /* 24299 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5888 /* 24301 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[1]]
5889 /* 24301 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
5890 /* 24304 */ // Label 179: @24304
5891 /* 24304 */ GIM_Try, /*On fail goto*//*Label 180*/ GIMT_Encode4(24344), // Rule ID 139 //
5892 /* 24309 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5893 /* 24312 */ // MIs[0] dst
5894 /* 24312 */ // No operand predicates
5895 /* 24312 */ // MIs[0] zero
5896 /* 24312 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5897 /* 24316 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5898 /* 24320 */ // MIs[1] Operand 1
5899 /* 24320 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5900 /* 24331 */ // MIs[0] rhs
5901 /* 24331 */ // No operand predicates
5902 /* 24331 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5903 /* 24336 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5904 /* 24338 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[7]]
5905 /* 24338 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5906 /* 24343 */ GIR_EraseRootFromParent_Done,
5907 /* 24344 */ // Label 180: @24344
5908 /* 24344 */ GIM_Try, /*On fail goto*//*Label 181*/ GIMT_Encode4(24365), // Rule ID 87 //
5909 /* 24349 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
5910 /* 24352 */ // MIs[0] dst
5911 /* 24352 */ // No operand predicates
5912 /* 24352 */ // MIs[0] __undef_to_int_zero_match_0.x
5913 /* 24352 */ // No operand predicates
5914 /* 24352 */ // MIs[0] __undef_to_int_zero_match_0.y
5915 /* 24352 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5916 /* 24356 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5917 /* 24360 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5918 /* 24362 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[3]]
5919 /* 24362 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
5920 /* 24365 */ // Label 181: @24365
5921 /* 24365 */ GIM_Try, /*On fail goto*//*Label 182*/ GIMT_Encode4(24388), // Rule ID 140 //
5922 /* 24370 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
5923 /* 24373 */ // MIs[0] dst
5924 /* 24373 */ // No operand predicates
5925 /* 24373 */ // MIs[0] lhs
5926 /* 24373 */ // No operand predicates
5927 /* 24373 */ // MIs[0] zero
5928 /* 24373 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5929 /* 24377 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5930 /* 24382 */ // Combiner Rule #94: binop_right_to_zero
5931 /* 24382 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5932 /* 24387 */ GIR_EraseRootFromParent_Done,
5933 /* 24388 */ // Label 182: @24388
5934 /* 24388 */ GIM_Try, /*On fail goto*//*Label 183*/ GIMT_Encode4(24411), // Rule ID 145 //
5935 /* 24393 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule99Enabled),
5936 /* 24396 */ // MIs[0] dst
5937 /* 24396 */ // No operand predicates
5938 /* 24396 */ // MIs[0] x
5939 /* 24396 */ // No operand predicates
5940 /* 24396 */ // MIs[0] Operand 2
5941 /* 24396 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
5942 /* 24400 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5943 /* 24405 */ // Combiner Rule #99: right_identity_one_int
5944 /* 24405 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5945 /* 24410 */ GIR_EraseRootFromParent_Done,
5946 /* 24411 */ // Label 183: @24411
5947 /* 24411 */ GIM_Try, /*On fail goto*//*Label 184*/ GIMT_Encode4(24422), // Rule ID 20 //
5948 /* 24416 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
5949 /* 24419 */ // MIs[0] d
5950 /* 24419 */ // No operand predicates
5951 /* 24419 */ // MIs[0] op1
5952 /* 24419 */ // No operand predicates
5953 /* 24419 */ // MIs[0] op2
5954 /* 24419 */ // No operand predicates
5955 /* 24419 */ // Combiner Rule #20: mul_to_shl
5956 /* 24419 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
5957 /* 24422 */ // Label 184: @24422
5958 /* 24422 */ GIM_Try, /*On fail goto*//*Label 185*/ GIMT_Encode4(24433), // Rule ID 474 //
5959 /* 24427 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule293Enabled),
5960 /* 24430 */ // MIs[0] dst
5961 /* 24430 */ // No operand predicates
5962 /* 24430 */ // MIs[0] src0
5963 /* 24430 */ // No operand predicates
5964 /* 24430 */ // MIs[0] src1
5965 /* 24430 */ // No operand predicates
5966 /* 24430 */ // Combiner Rule #293: smulu64
5967 /* 24430 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner158),
5968 /* 24433 */ // Label 185: @24433
5969 /* 24433 */ GIM_Reject,
5970 /* 24434 */ // Label 4: @24434
5971 /* 24434 */ GIM_Try, /*On fail goto*//*Label 186*/ GIMT_Encode4(24445), // Rule ID 247 //
5972 /* 24439 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
5973 /* 24442 */ // Combiner Rule #178: div_rem_to_divrem; wip_match_opcode 'G_SDIV'
5974 /* 24442 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
5975 /* 24445 */ // Label 186: @24445
5976 /* 24445 */ GIM_Try, /*On fail goto*//*Label 187*/ GIMT_Encode4(24456), // Rule ID 283 //
5977 /* 24450 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
5978 /* 24453 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_SDIV'
5979 /* 24453 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
5980 /* 24456 */ // Label 187: @24456
5981 /* 24456 */ GIM_Try, /*On fail goto*//*Label 188*/ GIMT_Encode4(24467), // Rule ID 338 //
5982 /* 24461 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
5983 /* 24464 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_SDIV'
5984 /* 24464 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
5985 /* 24467 */ // Label 188: @24467
5986 /* 24467 */ GIM_Try, /*On fail goto*//*Label 189*/ GIMT_Encode4(24507), // Rule ID 135 //
5987 /* 24472 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5988 /* 24475 */ // MIs[0] dst
5989 /* 24475 */ // No operand predicates
5990 /* 24475 */ // MIs[0] zero
5991 /* 24475 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5992 /* 24479 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5993 /* 24483 */ // MIs[1] Operand 1
5994 /* 24483 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5995 /* 24494 */ // MIs[0] rhs
5996 /* 24494 */ // No operand predicates
5997 /* 24494 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5998 /* 24499 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5999 /* 24501 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[3]]
6000 /* 24501 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6001 /* 24506 */ GIR_EraseRootFromParent_Done,
6002 /* 24507 */ // Label 189: @24507
6003 /* 24507 */ GIM_Try, /*On fail goto*//*Label 190*/ GIMT_Encode4(24524), // Rule ID 362 //
6004 /* 24512 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
6005 /* 24515 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
6006 /* 24521 */ // MIs[0] dst
6007 /* 24521 */ // No operand predicates
6008 /* 24521 */ // MIs[0] x
6009 /* 24521 */ // No operand predicates
6010 /* 24521 */ // MIs[0] y
6011 /* 24521 */ // No operand predicates
6012 /* 24521 */ // Combiner Rule #220: sdiv_by_pow2
6013 /* 24521 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
6014 /* 24524 */ // Label 190: @24524
6015 /* 24524 */ GIM_Try, /*On fail goto*//*Label 191*/ GIMT_Encode4(24535), // Rule ID 364 //
6016 /* 24529 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule222Enabled),
6017 /* 24532 */ // MIs[0] dst
6018 /* 24532 */ // No operand predicates
6019 /* 24532 */ // MIs[0] x
6020 /* 24532 */ // No operand predicates
6021 /* 24532 */ // MIs[0] y
6022 /* 24532 */ // No operand predicates
6023 /* 24532 */ // Combiner Rule #222: sdiv_by_const
6024 /* 24532 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner111),
6025 /* 24535 */ // Label 191: @24535
6026 /* 24535 */ GIM_Reject,
6027 /* 24536 */ // Label 5: @24536
6028 /* 24536 */ GIM_Try, /*On fail goto*//*Label 192*/ GIMT_Encode4(24547), // Rule ID 248 //
6029 /* 24541 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
6030 /* 24544 */ // Combiner Rule #178: div_rem_to_divrem; wip_match_opcode 'G_UDIV'
6031 /* 24544 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
6032 /* 24547 */ // Label 192: @24547
6033 /* 24547 */ GIM_Try, /*On fail goto*//*Label 193*/ GIMT_Encode4(24558), // Rule ID 282 //
6034 /* 24552 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
6035 /* 24555 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_UDIV'
6036 /* 24555 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6037 /* 24558 */ // Label 193: @24558
6038 /* 24558 */ GIM_Try, /*On fail goto*//*Label 194*/ GIMT_Encode4(24569), // Rule ID 340 //
6039 /* 24563 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
6040 /* 24566 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_UDIV'
6041 /* 24566 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
6042 /* 24569 */ // Label 194: @24569
6043 /* 24569 */ GIM_Try, /*On fail goto*//*Label 195*/ GIMT_Encode4(24590), // Rule ID 91 //
6044 /* 24574 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
6045 /* 24577 */ // MIs[0] dst
6046 /* 24577 */ // No operand predicates
6047 /* 24577 */ // MIs[0] __binop_left_undef_to_zero_match_0.x
6048 /* 24577 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6049 /* 24581 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6050 /* 24585 */ // MIs[0] __binop_left_undef_to_zero_match_0.y
6051 /* 24585 */ // No operand predicates
6052 /* 24585 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6053 /* 24587 */ // Combiner Rule #79: binop_left_undef_to_zero @ [__binop_left_undef_to_zero_match_0[1]]
6054 /* 24587 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
6055 /* 24590 */ // Label 195: @24590
6056 /* 24590 */ GIM_Try, /*On fail goto*//*Label 196*/ GIMT_Encode4(24630), // Rule ID 136 //
6057 /* 24595 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
6058 /* 24598 */ // MIs[0] dst
6059 /* 24598 */ // No operand predicates
6060 /* 24598 */ // MIs[0] zero
6061 /* 24598 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6062 /* 24602 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6063 /* 24606 */ // MIs[1] Operand 1
6064 /* 24606 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
6065 /* 24617 */ // MIs[0] rhs
6066 /* 24617 */ // No operand predicates
6067 /* 24617 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6068 /* 24622 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6069 /* 24624 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[4]]
6070 /* 24624 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6071 /* 24629 */ GIR_EraseRootFromParent_Done,
6072 /* 24630 */ // Label 196: @24630
6073 /* 24630 */ GIM_Try, /*On fail goto*//*Label 197*/ GIMT_Encode4(24647), // Rule ID 361 //
6074 /* 24635 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule219Enabled),
6075 /* 24638 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
6076 /* 24644 */ // MIs[0] dst
6077 /* 24644 */ // No operand predicates
6078 /* 24644 */ // MIs[0] x
6079 /* 24644 */ // No operand predicates
6080 /* 24644 */ // MIs[0] y
6081 /* 24644 */ // No operand predicates
6082 /* 24644 */ // Combiner Rule #219: udiv_by_pow2
6083 /* 24644 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner112),
6084 /* 24647 */ // Label 197: @24647
6085 /* 24647 */ GIM_Try, /*On fail goto*//*Label 198*/ GIMT_Encode4(24658), // Rule ID 363 //
6086 /* 24652 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
6087 /* 24655 */ // MIs[0] dst
6088 /* 24655 */ // No operand predicates
6089 /* 24655 */ // MIs[0] x
6090 /* 24655 */ // No operand predicates
6091 /* 24655 */ // MIs[0] y
6092 /* 24655 */ // No operand predicates
6093 /* 24655 */ // Combiner Rule #221: udiv_by_const
6094 /* 24655 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
6095 /* 24658 */ // Label 198: @24658
6096 /* 24658 */ GIM_Reject,
6097 /* 24659 */ // Label 6: @24659
6098 /* 24659 */ GIM_Try, /*On fail goto*//*Label 199*/ GIMT_Encode4(24670), // Rule ID 249 //
6099 /* 24664 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
6100 /* 24667 */ // Combiner Rule #178: div_rem_to_divrem; wip_match_opcode 'G_SREM'
6101 /* 24667 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
6102 /* 24670 */ // Label 199: @24670
6103 /* 24670 */ GIM_Try, /*On fail goto*//*Label 200*/ GIMT_Encode4(24681), // Rule ID 285 //
6104 /* 24675 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
6105 /* 24678 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_SREM'
6106 /* 24678 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6107 /* 24681 */ // Label 200: @24681
6108 /* 24681 */ GIM_Try, /*On fail goto*//*Label 201*/ GIMT_Encode4(24692), // Rule ID 339 //
6109 /* 24686 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
6110 /* 24689 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_SREM'
6111 /* 24689 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
6112 /* 24692 */ // Label 201: @24692
6113 /* 24692 */ GIM_Try, /*On fail goto*//*Label 202*/ GIMT_Encode4(24732), // Rule ID 137 //
6114 /* 24697 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
6115 /* 24700 */ // MIs[0] dst
6116 /* 24700 */ // No operand predicates
6117 /* 24700 */ // MIs[0] zero
6118 /* 24700 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6119 /* 24704 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6120 /* 24708 */ // MIs[1] Operand 1
6121 /* 24708 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
6122 /* 24719 */ // MIs[0] rhs
6123 /* 24719 */ // No operand predicates
6124 /* 24719 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6125 /* 24724 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6126 /* 24726 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[5]]
6127 /* 24726 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6128 /* 24731 */ GIR_EraseRootFromParent_Done,
6129 /* 24732 */ // Label 202: @24732
6130 /* 24732 */ GIM_Try, /*On fail goto*//*Label 203*/ GIMT_Encode4(24743), // Rule ID 358 //
6131 /* 24737 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
6132 /* 24740 */ // MIs[0] dst
6133 /* 24740 */ // No operand predicates
6134 /* 24740 */ // MIs[0] x
6135 /* 24740 */ // No operand predicates
6136 /* 24740 */ // MIs[0] y
6137 /* 24740 */ // No operand predicates
6138 /* 24740 */ // Combiner Rule #216: srem_pow2_to_mask
6139 /* 24740 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
6140 /* 24743 */ // Label 203: @24743
6141 /* 24743 */ GIM_Try, /*On fail goto*//*Label 204*/ GIMT_Encode4(24754), // Rule ID 360 //
6142 /* 24748 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule218Enabled),
6143 /* 24751 */ // MIs[0] dst
6144 /* 24751 */ // No operand predicates
6145 /* 24751 */ // MIs[0] x
6146 /* 24751 */ // No operand predicates
6147 /* 24751 */ // MIs[0] y
6148 /* 24751 */ // No operand predicates
6149 /* 24751 */ // Combiner Rule #218: srem_by_const
6150 /* 24751 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner111),
6151 /* 24754 */ // Label 204: @24754
6152 /* 24754 */ GIM_Reject,
6153 /* 24755 */ // Label 7: @24755
6154 /* 24755 */ GIM_Try, /*On fail goto*//*Label 205*/ GIMT_Encode4(24766), // Rule ID 250 //
6155 /* 24760 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
6156 /* 24763 */ // Combiner Rule #178: div_rem_to_divrem; wip_match_opcode 'G_UREM'
6157 /* 24763 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
6158 /* 24766 */ // Label 205: @24766
6159 /* 24766 */ GIM_Try, /*On fail goto*//*Label 206*/ GIMT_Encode4(24777), // Rule ID 284 //
6160 /* 24771 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
6161 /* 24774 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_UREM'
6162 /* 24774 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6163 /* 24777 */ // Label 206: @24777
6164 /* 24777 */ GIM_Try, /*On fail goto*//*Label 207*/ GIMT_Encode4(24788), // Rule ID 341 //
6165 /* 24782 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
6166 /* 24785 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_UREM'
6167 /* 24785 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
6168 /* 24788 */ // Label 207: @24788
6169 /* 24788 */ GIM_Try, /*On fail goto*//*Label 208*/ GIMT_Encode4(24809), // Rule ID 92 //
6170 /* 24793 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
6171 /* 24796 */ // MIs[0] dst
6172 /* 24796 */ // No operand predicates
6173 /* 24796 */ // MIs[0] __binop_left_undef_to_zero_match_0.x
6174 /* 24796 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6175 /* 24800 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6176 /* 24804 */ // MIs[0] __binop_left_undef_to_zero_match_0.y
6177 /* 24804 */ // No operand predicates
6178 /* 24804 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6179 /* 24806 */ // Combiner Rule #79: binop_left_undef_to_zero @ [__binop_left_undef_to_zero_match_0[2]]
6180 /* 24806 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
6181 /* 24809 */ // Label 208: @24809
6182 /* 24809 */ GIM_Try, /*On fail goto*//*Label 209*/ GIMT_Encode4(24849), // Rule ID 138 //
6183 /* 24814 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
6184 /* 24817 */ // MIs[0] dst
6185 /* 24817 */ // No operand predicates
6186 /* 24817 */ // MIs[0] zero
6187 /* 24817 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6188 /* 24821 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6189 /* 24825 */ // MIs[1] Operand 1
6190 /* 24825 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
6191 /* 24836 */ // MIs[0] rhs
6192 /* 24836 */ // No operand predicates
6193 /* 24836 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6194 /* 24841 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6195 /* 24843 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[6]]
6196 /* 24843 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6197 /* 24848 */ GIR_EraseRootFromParent_Done,
6198 /* 24849 */ // Label 209: @24849
6199 /* 24849 */ GIM_Try, /*On fail goto*//*Label 210*/ GIMT_Encode4(24860), // Rule ID 198 //
6200 /* 24854 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
6201 /* 24857 */ // MIs[0] dst
6202 /* 24857 */ // No operand predicates
6203 /* 24857 */ // MIs[0] x
6204 /* 24857 */ // No operand predicates
6205 /* 24857 */ // MIs[0] y
6206 /* 24857 */ // No operand predicates
6207 /* 24857 */ // Combiner Rule #145: urem_pow2_to_mask
6208 /* 24857 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner66),
6209 /* 24860 */ // Label 210: @24860
6210 /* 24860 */ GIM_Try, /*On fail goto*//*Label 211*/ GIMT_Encode4(24871), // Rule ID 359 //
6211 /* 24865 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
6212 /* 24868 */ // MIs[0] dst
6213 /* 24868 */ // No operand predicates
6214 /* 24868 */ // MIs[0] x
6215 /* 24868 */ // No operand predicates
6216 /* 24868 */ // MIs[0] y
6217 /* 24868 */ // No operand predicates
6218 /* 24868 */ // Combiner Rule #217: urem_by_const
6219 /* 24868 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
6220 /* 24871 */ // Label 211: @24871
6221 /* 24871 */ GIM_Reject,
6222 /* 24872 */ // Label 8: @24872
6223 /* 24872 */ GIM_Try, /*On fail goto*//*Label 212*/ GIMT_Encode4(24883), // Rule ID 162 //
6224 /* 24877 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
6225 /* 24880 */ // Combiner Rule #113: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_AND'
6226 /* 24880 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
6227 /* 24883 */ // Label 212: @24883
6228 /* 24883 */ GIM_Try, /*On fail goto*//*Label 213*/ GIMT_Encode4(24894), // Rule ID 220 //
6229 /* 24888 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
6230 /* 24891 */ // Combiner Rule #167: overlapping_and; wip_match_opcode 'G_AND'
6231 /* 24891 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner74),
6232 /* 24894 */ // Label 213: @24894
6233 /* 24894 */ GIM_Try, /*On fail goto*//*Label 214*/ GIMT_Encode4(24905), // Rule ID 274 //
6234 /* 24899 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
6235 /* 24902 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_AND'
6236 /* 24902 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6237 /* 24905 */ // Label 214: @24905
6238 /* 24905 */ GIM_Try, /*On fail goto*//*Label 215*/ GIMT_Encode4(24916), // Rule ID 335 //
6239 /* 24910 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
6240 /* 24913 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_AND'
6241 /* 24913 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
6242 /* 24916 */ // Label 215: @24916
6243 /* 24916 */ GIM_Try, /*On fail goto*//*Label 216*/ GIMT_Encode4(24927), // Rule ID 371 //
6244 /* 24921 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
6245 /* 24924 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_AND'
6246 /* 24924 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
6247 /* 24927 */ // Label 216: @24927
6248 /* 24927 */ GIM_Try, /*On fail goto*//*Label 217*/ GIMT_Encode4(24938), // Rule ID 441 //
6249 /* 24932 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule269Enabled),
6250 /* 24935 */ // Combiner Rule #269: binop_with_neg; wip_match_opcode 'G_AND'
6251 /* 24935 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner148),
6252 /* 24938 */ // Label 217: @24938
6253 /* 24938 */ GIM_Try, /*On fail goto*//*Label 218*/ GIMT_Encode4(25024), // Rule ID 403 //
6254 /* 24943 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
6255 /* 24946 */ // MIs[0] root
6256 /* 24946 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
6257 /* 24950 */ // MIs[0] or
6258 /* 24950 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6259 /* 24954 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
6260 /* 24958 */ // MIs[1] x
6261 /* 24958 */ // No operand predicates
6262 /* 24958 */ // MIs[1] y
6263 /* 24958 */ // No operand predicates
6264 /* 24958 */ // MIs[0] not
6265 /* 24958 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6266 /* 24962 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6267 /* 24966 */ // MIs[2] y
6268 /* 24966 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
6269 /* 24971 */ // MIs[2] Operand 2
6270 /* 24971 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6271 /* 24975 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6272 /* 24977 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6273 /* 24980 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
6274 /* 24990 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6275 /* 24993 */ // Combiner Rule #234: and_xor_or_to_xor_and
6276 /* 24993 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
6277 /* 24996 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6278 /* 25001 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
6279 /* 25005 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
6280 /* 25008 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6281 /* 25012 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6282 /* 25016 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
6283 /* 25020 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6284 /* 25023 */ GIR_EraseRootFromParent_Done,
6285 /* 25024 */ // Label 218: @25024
6286 /* 25024 */ GIM_Try, /*On fail goto*//*Label 219*/ GIMT_Encode4(25122), // Rule ID 175 //
6287 /* 25029 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule122Enabled),
6288 /* 25032 */ // MIs[0] root
6289 /* 25032 */ // No operand predicates
6290 /* 25032 */ // MIs[0] d1
6291 /* 25032 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6292 /* 25036 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
6293 /* 25040 */ // MIs[1] p
6294 /* 25040 */ // No operand predicates
6295 /* 25040 */ // MIs[1] s1
6296 /* 25040 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
6297 /* 25044 */ // MIs[1] Operand 3
6298 /* 25044 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
6299 /* 25048 */ // MIs[0] d2
6300 /* 25048 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6301 /* 25052 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
6302 /* 25056 */ // MIs[2] p
6303 /* 25056 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6304 /* 25061 */ // MIs[2] s2
6305 /* 25061 */ // No operand predicates
6306 /* 25061 */ // MIs[2] Operand 3
6307 /* 25061 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
6308 /* 25065 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
6309 /* 25069 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6310 /* 25071 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6311 /* 25074 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
6312 /* 25084 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6313 /* 25087 */ // Combiner Rule #122: double_icmp_zero_and_combine
6314 /* 25087 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6315 /* 25090 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6316 /* 25095 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
6317 /* 25099 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
6318 /* 25103 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
6319 /* 25107 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6320 /* 25111 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
6321 /* 25115 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6322 /* 25118 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
6323 /* 25121 */ GIR_EraseRootFromParent_Done,
6324 /* 25122 */ // Label 219: @25122
6325 /* 25122 */ GIM_Try, /*On fail goto*//*Label 220*/ GIMT_Encode4(25159), // Rule ID 267 //
6326 /* 25127 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6327 /* 25130 */ // MIs[0] root
6328 /* 25130 */ // No operand predicates
6329 /* 25130 */ // MIs[0] shift
6330 /* 25130 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6331 /* 25134 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
6332 /* 25138 */ // MIs[1] x
6333 /* 25138 */ // No operand predicates
6334 /* 25138 */ // MIs[1] lsb
6335 /* 25138 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6336 /* 25142 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6337 /* 25146 */ // MIs[2] imm1
6338 /* 25146 */ // No operand predicates
6339 /* 25146 */ // MIs[0] mask
6340 /* 25146 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6341 /* 25150 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6342 /* 25154 */ // MIs[3] imm2
6343 /* 25154 */ // No operand predicates
6344 /* 25154 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
6345 /* 25156 */ // Combiner Rule #191: bitfield_extract_from_and
6346 /* 25156 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner89),
6347 /* 25159 */ // Label 220: @25159
6348 /* 25159 */ GIM_Try, /*On fail goto*//*Label 221*/ GIMT_Encode4(25208), // Rule ID 402 //
6349 /* 25164 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6350 /* 25167 */ // MIs[0] root
6351 /* 25167 */ // No operand predicates
6352 /* 25167 */ // MIs[0] or
6353 /* 25167 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6354 /* 25171 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
6355 /* 25175 */ // MIs[1] x
6356 /* 25175 */ // No operand predicates
6357 /* 25175 */ // MIs[1] not
6358 /* 25175 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6359 /* 25179 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6360 /* 25183 */ // MIs[2] y
6361 /* 25183 */ // No operand predicates
6362 /* 25183 */ // MIs[2] Operand 2
6363 /* 25183 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6364 /* 25187 */ // MIs[0] y
6365 /* 25187 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
6366 /* 25192 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6367 /* 25194 */ // Combiner Rule #233: and_xor_or_to_and
6368 /* 25194 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6369 /* 25197 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6370 /* 25199 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6371 /* 25203 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
6372 /* 25207 */ GIR_EraseRootFromParent_Done,
6373 /* 25208 */ // Label 221: @25208
6374 /* 25208 */ GIM_Try, /*On fail goto*//*Label 222*/ GIMT_Encode4(25229), // Rule ID 84 //
6375 /* 25213 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6376 /* 25216 */ // MIs[0] dst
6377 /* 25216 */ // No operand predicates
6378 /* 25216 */ // MIs[0] __undef_to_int_zero_match_0.x
6379 /* 25216 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6380 /* 25220 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6381 /* 25224 */ // MIs[0] __undef_to_int_zero_match_0.y
6382 /* 25224 */ // No operand predicates
6383 /* 25224 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6384 /* 25226 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[0]]
6385 /* 25226 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
6386 /* 25229 */ // Label 222: @25229
6387 /* 25229 */ GIM_Try, /*On fail goto*//*Label 223*/ GIMT_Encode4(25343), // Rule ID 479 //
6388 /* 25234 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule298Enabled),
6389 /* 25237 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i64,
6390 /* 25240 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_i64,
6391 /* 25243 */ // MIs[0] dst
6392 /* 25243 */ // No operand predicates
6393 /* 25243 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner34),
6394 /* 25247 */ GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_i32,
6395 /* 25250 */ GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_i32,
6396 /* 25253 */ GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_i32,
6397 /* 25256 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_i32,
6398 /* 25259 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_i32,
6399 /* 25262 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_i32,
6400 /* 25265 */ // Combiner Rule #298: combine_and_s64_with_s32_mask
6401 /* 25265 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6402 /* 25268 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6403 /* 25273 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6404 /* 25278 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
6405 /* 25280 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6406 /* 25284 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6407 /* 25289 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6408 /* 25294 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
6409 /* 25298 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6410 /* 25302 */ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6411 /* 25307 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
6412 /* 25310 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
6413 /* 25313 */ GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6414 /* 25317 */ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6415 /* 25322 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
6416 /* 25325 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
6417 /* 25328 */ GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
6418 /* 25332 */ GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
6419 /* 25336 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
6420 /* 25339 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
6421 /* 25342 */ GIR_EraseRootFromParent_Done,
6422 /* 25343 */ // Label 223: @25343
6423 /* 25343 */ GIM_Try, /*On fail goto*//*Label 224*/ GIMT_Encode4(25367), // Rule ID 128 //
6424 /* 25348 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
6425 /* 25351 */ // MIs[0] dst
6426 /* 25351 */ // No operand predicates
6427 /* 25351 */ // MIs[0] src
6428 /* 25351 */ // No operand predicates
6429 /* 25351 */ // MIs[0] src
6430 /* 25351 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6431 /* 25356 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6432 /* 25361 */ // Combiner Rule #91: binop_same_val @ [__binop_same_val_match_0[0]]
6433 /* 25361 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6434 /* 25366 */ GIR_EraseRootFromParent_Done,
6435 /* 25367 */ // Label 224: @25367
6436 /* 25367 */ GIM_Try, /*On fail goto*//*Label 225*/ GIMT_Encode4(25388), // Rule ID 86 //
6437 /* 25372 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6438 /* 25375 */ // MIs[0] dst
6439 /* 25375 */ // No operand predicates
6440 /* 25375 */ // MIs[0] __undef_to_int_zero_match_0.x
6441 /* 25375 */ // No operand predicates
6442 /* 25375 */ // MIs[0] __undef_to_int_zero_match_0.y
6443 /* 25375 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6444 /* 25379 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6445 /* 25383 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6446 /* 25385 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[2]]
6447 /* 25385 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
6448 /* 25388 */ // Label 225: @25388
6449 /* 25388 */ GIM_Try, /*On fail goto*//*Label 226*/ GIMT_Encode4(25399), // Rule ID 80 //
6450 /* 25393 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
6451 /* 25396 */ // MIs[0] dst
6452 /* 25396 */ // No operand predicates
6453 /* 25396 */ // MIs[0] src1
6454 /* 25396 */ // No operand predicates
6455 /* 25396 */ // MIs[0] src2
6456 /* 25396 */ // No operand predicates
6457 /* 25396 */ // Combiner Rule #74: load_and_mask
6458 /* 25396 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
6459 /* 25399 */ // Label 226: @25399
6460 /* 25399 */ GIM_Try, /*On fail goto*//*Label 227*/ GIMT_Encode4(25410), // Rule ID 182 //
6461 /* 25404 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule129Enabled),
6462 /* 25407 */ // MIs[0] dst
6463 /* 25407 */ // No operand predicates
6464 /* 25407 */ // MIs[0] src1
6465 /* 25407 */ // No operand predicates
6466 /* 25407 */ // MIs[0] src2
6467 /* 25407 */ // No operand predicates
6468 /* 25407 */ // Combiner Rule #129: narrow_binop_feeding_and
6469 /* 25407 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner59),
6470 /* 25410 */ // Label 227: @25410
6471 /* 25410 */ GIM_Try, /*On fail goto*//*Label 228*/ GIMT_Encode4(25421), // Rule ID 196 //
6472 /* 25415 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule143Enabled),
6473 /* 25418 */ // MIs[0] dst
6474 /* 25418 */ // No operand predicates
6475 /* 25418 */ // MIs[0] src1
6476 /* 25418 */ // No operand predicates
6477 /* 25418 */ // MIs[0] src2
6478 /* 25418 */ // No operand predicates
6479 /* 25418 */ // Combiner Rule #143: redundant_and
6480 /* 25418 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner64),
6481 /* 25421 */ // Label 228: @25421
6482 /* 25421 */ GIM_Try, /*On fail goto*//*Label 229*/ GIMT_Encode4(25432), // Rule ID 323 //
6483 /* 25426 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
6484 /* 25429 */ // MIs[0] dst
6485 /* 25429 */ // No operand predicates
6486 /* 25429 */ // MIs[0] src1
6487 /* 25429 */ // No operand predicates
6488 /* 25429 */ // MIs[0] src2
6489 /* 25429 */ // No operand predicates
6490 /* 25429 */ // Combiner Rule #206: and_or_disjoint_mask
6491 /* 25429 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner99),
6492 /* 25432 */ // Label 229: @25432
6493 /* 25432 */ GIM_Try, /*On fail goto*//*Label 230*/ GIMT_Encode4(25443), // Rule ID 398 //
6494 /* 25437 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule229Enabled),
6495 /* 25440 */ // MIs[0] dst
6496 /* 25440 */ // No operand predicates
6497 /* 25440 */ // MIs[0] src1
6498 /* 25440 */ // No operand predicates
6499 /* 25440 */ // MIs[0] src2
6500 /* 25440 */ // No operand predicates
6501 /* 25440 */ // Combiner Rule #229: match_ands
6502 /* 25440 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
6503 /* 25443 */ // Label 230: @25443
6504 /* 25443 */ GIM_Reject,
6505 /* 25444 */ // Label 9: @25444
6506 /* 25444 */ GIM_Try, /*On fail goto*//*Label 231*/ GIMT_Encode4(25455), // Rule ID 163 //
6507 /* 25449 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
6508 /* 25452 */ // Combiner Rule #113: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_OR'
6509 /* 25452 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
6510 /* 25455 */ // Label 231: @25455
6511 /* 25455 */ GIM_Try, /*On fail goto*//*Label 232*/ GIMT_Encode4(25466), // Rule ID 278 //
6512 /* 25460 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
6513 /* 25463 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_OR'
6514 /* 25463 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6515 /* 25466 */ // Label 232: @25466
6516 /* 25466 */ GIM_Try, /*On fail goto*//*Label 233*/ GIMT_Encode4(25477), // Rule ID 336 //
6517 /* 25471 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
6518 /* 25474 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_OR'
6519 /* 25474 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
6520 /* 25477 */ // Label 233: @25477
6521 /* 25477 */ GIM_Try, /*On fail goto*//*Label 234*/ GIMT_Encode4(25488), // Rule ID 372 //
6522 /* 25482 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
6523 /* 25485 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_OR'
6524 /* 25485 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
6525 /* 25488 */ // Label 234: @25488
6526 /* 25488 */ GIM_Try, /*On fail goto*//*Label 235*/ GIMT_Encode4(25499), // Rule ID 442 //
6527 /* 25493 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule269Enabled),
6528 /* 25496 */ // Combiner Rule #269: binop_with_neg; wip_match_opcode 'G_OR'
6529 /* 25496 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner148),
6530 /* 25499 */ // Label 235: @25499
6531 /* 25499 */ GIM_Try, /*On fail goto*//*Label 236*/ GIMT_Encode4(25585), // Rule ID 401 //
6532 /* 25504 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule232Enabled),
6533 /* 25507 */ // MIs[0] root
6534 /* 25507 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
6535 /* 25511 */ // MIs[0] and
6536 /* 25511 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6537 /* 25515 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6538 /* 25519 */ // MIs[1] x
6539 /* 25519 */ // No operand predicates
6540 /* 25519 */ // MIs[1] y
6541 /* 25519 */ // No operand predicates
6542 /* 25519 */ // MIs[0] not
6543 /* 25519 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6544 /* 25523 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6545 /* 25527 */ // MIs[2] y
6546 /* 25527 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
6547 /* 25532 */ // MIs[2] Operand 2
6548 /* 25532 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6549 /* 25536 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6550 /* 25538 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6551 /* 25541 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
6552 /* 25551 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6553 /* 25554 */ // Combiner Rule #232: or_and_xor_to_xor_or
6554 /* 25554 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
6555 /* 25557 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6556 /* 25562 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
6557 /* 25566 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
6558 /* 25569 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6559 /* 25573 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6560 /* 25577 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
6561 /* 25581 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6562 /* 25584 */ GIR_EraseRootFromParent_Done,
6563 /* 25585 */ // Label 236: @25585
6564 /* 25585 */ GIM_Try, /*On fail goto*//*Label 237*/ GIMT_Encode4(25672), // Rule ID 481 //
6565 /* 25590 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule299Enabled),
6566 /* 25593 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i64,
6567 /* 25596 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_i64,
6568 /* 25599 */ // MIs[0] dst
6569 /* 25599 */ // No operand predicates
6570 /* 25599 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6571 /* 25603 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6572 /* 25607 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_i32,
6573 /* 25611 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
6574 /* 25615 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6575 /* 25617 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
6576 /* 25620 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6577 /* 25623 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6578 /* 25626 */ // Combiner Rule #299: combine_or_s64_s32 @ [dst[1]]
6579 /* 25626 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6580 /* 25629 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6581 /* 25634 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6582 /* 25639 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
6583 /* 25641 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6584 /* 25645 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6585 /* 25650 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6586 /* 25653 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
6587 /* 25657 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
6588 /* 25661 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
6589 /* 25665 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
6590 /* 25668 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
6591 /* 25671 */ GIR_EraseRootFromParent_Done,
6592 /* 25672 */ // Label 237: @25672
6593 /* 25672 */ GIM_Try, /*On fail goto*//*Label 238*/ GIMT_Encode4(25719), // Rule ID 258 //
6594 /* 25677 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
6595 /* 25680 */ // MIs[0] root
6596 /* 25680 */ // No operand predicates
6597 /* 25680 */ // MIs[0] out1
6598 /* 25680 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6599 /* 25684 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHL),
6600 /* 25688 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6601 /* 25688 */ // No operand predicates
6602 /* 25688 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
6603 /* 25688 */ // No operand predicates
6604 /* 25688 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6605 /* 25688 */ // No operand predicates
6606 /* 25688 */ // MIs[0] out2
6607 /* 25688 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6608 /* 25692 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SHL),
6609 /* 25696 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6610 /* 25696 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6611 /* 25701 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6612 /* 25701 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
6613 /* 25706 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6614 /* 25711 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6615 /* 25713 */ // Combiner Rule #184: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[0]]
6616 /* 25713 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6617 /* 25718 */ GIR_EraseRootFromParent_Done,
6618 /* 25719 */ // Label 238: @25719
6619 /* 25719 */ GIM_Try, /*On fail goto*//*Label 239*/ GIMT_Encode4(25766), // Rule ID 260 //
6620 /* 25724 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
6621 /* 25727 */ // MIs[0] root
6622 /* 25727 */ // No operand predicates
6623 /* 25727 */ // MIs[0] out1
6624 /* 25727 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6625 /* 25731 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHR),
6626 /* 25735 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
6627 /* 25735 */ // No operand predicates
6628 /* 25735 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6629 /* 25735 */ // No operand predicates
6630 /* 25735 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6631 /* 25735 */ // No operand predicates
6632 /* 25735 */ // MIs[0] out2
6633 /* 25735 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6634 /* 25739 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
6635 /* 25743 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6636 /* 25743 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
6637 /* 25748 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6638 /* 25748 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
6639 /* 25753 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6640 /* 25758 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6641 /* 25760 */ // Combiner Rule #185: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[0]]
6642 /* 25760 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6643 /* 25765 */ GIR_EraseRootFromParent_Done,
6644 /* 25766 */ // Label 239: @25766
6645 /* 25766 */ GIM_Try, /*On fail goto*//*Label 240*/ GIMT_Encode4(25864), // Rule ID 176 //
6646 /* 25771 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule123Enabled),
6647 /* 25774 */ // MIs[0] root
6648 /* 25774 */ // No operand predicates
6649 /* 25774 */ // MIs[0] d1
6650 /* 25774 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6651 /* 25778 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
6652 /* 25782 */ // MIs[1] p
6653 /* 25782 */ // No operand predicates
6654 /* 25782 */ // MIs[1] s1
6655 /* 25782 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
6656 /* 25786 */ // MIs[1] Operand 3
6657 /* 25786 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
6658 /* 25790 */ // MIs[0] d2
6659 /* 25790 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6660 /* 25794 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
6661 /* 25798 */ // MIs[2] p
6662 /* 25798 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6663 /* 25803 */ // MIs[2] s2
6664 /* 25803 */ // No operand predicates
6665 /* 25803 */ // MIs[2] Operand 3
6666 /* 25803 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
6667 /* 25807 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner14),
6668 /* 25811 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6669 /* 25813 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6670 /* 25816 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
6671 /* 25826 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6672 /* 25829 */ // Combiner Rule #123: double_icmp_zero_or_combine
6673 /* 25829 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6674 /* 25832 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6675 /* 25837 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
6676 /* 25841 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
6677 /* 25845 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
6678 /* 25849 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6679 /* 25853 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
6680 /* 25857 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6681 /* 25860 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
6682 /* 25863 */ GIR_EraseRootFromParent_Done,
6683 /* 25864 */ // Label 240: @25864
6684 /* 25864 */ GIM_Try, /*On fail goto*//*Label 241*/ GIMT_Encode4(25913), // Rule ID 400 //
6685 /* 25869 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule231Enabled),
6686 /* 25872 */ // MIs[0] root
6687 /* 25872 */ // No operand predicates
6688 /* 25872 */ // MIs[0] and
6689 /* 25872 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6690 /* 25876 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6691 /* 25880 */ // MIs[1] x
6692 /* 25880 */ // No operand predicates
6693 /* 25880 */ // MIs[1] not
6694 /* 25880 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6695 /* 25884 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6696 /* 25888 */ // MIs[2] y
6697 /* 25888 */ // No operand predicates
6698 /* 25888 */ // MIs[2] Operand 2
6699 /* 25888 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6700 /* 25892 */ // MIs[0] y
6701 /* 25892 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
6702 /* 25897 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6703 /* 25899 */ // Combiner Rule #231: or_and_xor_to_or
6704 /* 25899 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6705 /* 25902 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6706 /* 25904 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6707 /* 25908 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
6708 /* 25912 */ GIR_EraseRootFromParent_Done,
6709 /* 25913 */ // Label 241: @25913
6710 /* 25913 */ GIM_Try, /*On fail goto*//*Label 242*/ GIMT_Encode4(25947), // Rule ID 452 //
6711 /* 25918 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule278Enabled),
6712 /* 25921 */ // MIs[0] dst
6713 /* 25921 */ // No operand predicates
6714 /* 25921 */ // MIs[0] __combine_or_of_and_match_0.and
6715 /* 25921 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6716 /* 25925 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6717 /* 25929 */ // MIs[1] x
6718 /* 25929 */ // No operand predicates
6719 /* 25929 */ // MIs[1] y
6720 /* 25929 */ // No operand predicates
6721 /* 25929 */ // MIs[0] x
6722 /* 25929 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
6723 /* 25934 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
6724 /* 25939 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6725 /* 25941 */ // Combiner Rule #278: combine_or_of_and @ [__combine_or_of_and_match_0[0]]
6726 /* 25941 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
6727 /* 25946 */ GIR_EraseRootFromParent_Done,
6728 /* 25947 */ // Label 242: @25947
6729 /* 25947 */ GIM_Try, /*On fail goto*//*Label 243*/ GIMT_Encode4(25981), // Rule ID 453 //
6730 /* 25952 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule278Enabled),
6731 /* 25955 */ // MIs[0] dst
6732 /* 25955 */ // No operand predicates
6733 /* 25955 */ // MIs[0] __combine_or_of_and_match_0.and
6734 /* 25955 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6735 /* 25959 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6736 /* 25963 */ // MIs[1] y
6737 /* 25963 */ // No operand predicates
6738 /* 25963 */ // MIs[1] x
6739 /* 25963 */ // No operand predicates
6740 /* 25963 */ // MIs[0] x
6741 /* 25963 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
6742 /* 25968 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6743 /* 25973 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6744 /* 25975 */ // Combiner Rule #278: combine_or_of_and @ [__combine_or_of_and_match_0[1]]
6745 /* 25975 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6746 /* 25980 */ GIR_EraseRootFromParent_Done,
6747 /* 25981 */ // Label 243: @25981
6748 /* 25981 */ GIM_Try, /*On fail goto*//*Label 244*/ GIMT_Encode4(26028), // Rule ID 261 //
6749 /* 25986 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
6750 /* 25989 */ // MIs[0] root
6751 /* 25989 */ // No operand predicates
6752 /* 25989 */ // MIs[0] out2
6753 /* 25989 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6754 /* 25993 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
6755 /* 25997 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6756 /* 25997 */ // No operand predicates
6757 /* 25997 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6758 /* 25997 */ // No operand predicates
6759 /* 25997 */ // MIs[0] out1
6760 /* 25997 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6761 /* 26001 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHR),
6762 /* 26005 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
6763 /* 26005 */ // No operand predicates
6764 /* 26005 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6765 /* 26005 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
6766 /* 26010 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6767 /* 26010 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
6768 /* 26015 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6769 /* 26020 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6770 /* 26022 */ // Combiner Rule #185: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[1]]
6771 /* 26022 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6772 /* 26027 */ GIR_EraseRootFromParent_Done,
6773 /* 26028 */ // Label 244: @26028
6774 /* 26028 */ GIM_Try, /*On fail goto*//*Label 245*/ GIMT_Encode4(26075), // Rule ID 259 //
6775 /* 26033 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
6776 /* 26036 */ // MIs[0] root
6777 /* 26036 */ // No operand predicates
6778 /* 26036 */ // MIs[0] out2
6779 /* 26036 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6780 /* 26040 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
6781 /* 26044 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6782 /* 26044 */ // No operand predicates
6783 /* 26044 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6784 /* 26044 */ // No operand predicates
6785 /* 26044 */ // MIs[0] out1
6786 /* 26044 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6787 /* 26048 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHL),
6788 /* 26052 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6789 /* 26052 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6790 /* 26057 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
6791 /* 26057 */ // No operand predicates
6792 /* 26057 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6793 /* 26057 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
6794 /* 26062 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6795 /* 26067 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6796 /* 26069 */ // Combiner Rule #184: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[1]]
6797 /* 26069 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6798 /* 26074 */ GIR_EraseRootFromParent_Done,
6799 /* 26075 */ // Label 245: @26075
6800 /* 26075 */ GIM_Try, /*On fail goto*//*Label 246*/ GIMT_Encode4(26125), // Rule ID 405 //
6801 /* 26080 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule236Enabled),
6802 /* 26083 */ // MIs[0] root
6803 /* 26083 */ // No operand predicates
6804 /* 26083 */ // MIs[0] xor
6805 /* 26083 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6806 /* 26087 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
6807 /* 26091 */ // MIs[1] x
6808 /* 26091 */ // No operand predicates
6809 /* 26091 */ // MIs[1] y
6810 /* 26091 */ // No operand predicates
6811 /* 26091 */ // MIs[0] and
6812 /* 26091 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6813 /* 26095 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_AND),
6814 /* 26099 */ // MIs[2] x
6815 /* 26099 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6816 /* 26104 */ // MIs[2] y
6817 /* 26104 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
6818 /* 26109 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6819 /* 26111 */ // Combiner Rule #236: or_xor_and
6820 /* 26111 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6821 /* 26114 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6822 /* 26116 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6823 /* 26120 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
6824 /* 26124 */ GIR_EraseRootFromParent_Done,
6825 /* 26125 */ // Label 246: @26125
6826 /* 26125 */ GIM_Try, /*On fail goto*//*Label 247*/ GIMT_Encode4(26175), // Rule ID 404 //
6827 /* 26130 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule235Enabled),
6828 /* 26133 */ // MIs[0] root
6829 /* 26133 */ // No operand predicates
6830 /* 26133 */ // MIs[0] xor
6831 /* 26133 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6832 /* 26137 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
6833 /* 26141 */ // MIs[1] x
6834 /* 26141 */ // No operand predicates
6835 /* 26141 */ // MIs[1] y
6836 /* 26141 */ // No operand predicates
6837 /* 26141 */ // MIs[0] or
6838 /* 26141 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6839 /* 26145 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_OR),
6840 /* 26149 */ // MIs[2] x
6841 /* 26149 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6842 /* 26154 */ // MIs[2] y
6843 /* 26154 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
6844 /* 26159 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6845 /* 26161 */ // Combiner Rule #235: or_xor_or
6846 /* 26161 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6847 /* 26164 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6848 /* 26166 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6849 /* 26170 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
6850 /* 26174 */ GIR_EraseRootFromParent_Done,
6851 /* 26175 */ // Label 247: @26175
6852 /* 26175 */ GIM_Try, /*On fail goto*//*Label 248*/ GIMT_Encode4(26196), // Rule ID 88 //
6853 /* 26180 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
6854 /* 26183 */ // MIs[0] dst
6855 /* 26183 */ // No operand predicates
6856 /* 26183 */ // MIs[0] __undef_to_negative_one_match_0.x
6857 /* 26183 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6858 /* 26187 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6859 /* 26191 */ // MIs[0] __undef_to_negative_one_match_0.y
6860 /* 26191 */ // No operand predicates
6861 /* 26191 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6862 /* 26193 */ // Combiner Rule #78: undef_to_negative_one @ [__undef_to_negative_one_match_0[0]]
6863 /* 26193 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
6864 /* 26196 */ // Label 248: @26196
6865 /* 26196 */ GIM_Try, /*On fail goto*//*Label 249*/ GIMT_Encode4(26397),
6866 /* 26201 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i64,
6867 /* 26204 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_i64,
6868 /* 26207 */ GIM_Try, /*On fail goto*//*Label 250*/ GIMT_Encode4(26288), // Rule ID 480 //
6869 /* 26212 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule299Enabled),
6870 /* 26215 */ // MIs[0] dst
6871 /* 26215 */ // No operand predicates
6872 /* 26215 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6873 /* 26219 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6874 /* 26223 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_i32,
6875 /* 26227 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
6876 /* 26231 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6877 /* 26233 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
6878 /* 26236 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6879 /* 26239 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6880 /* 26242 */ // Combiner Rule #299: combine_or_s64_s32 @ [dst[0]]
6881 /* 26242 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6882 /* 26245 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6883 /* 26250 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6884 /* 26255 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
6885 /* 26257 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6886 /* 26261 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6887 /* 26266 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6888 /* 26269 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
6889 /* 26273 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
6890 /* 26277 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
6891 /* 26281 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
6892 /* 26284 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
6893 /* 26287 */ GIR_EraseRootFromParent_Done,
6894 /* 26288 */ // Label 250: @26288
6895 /* 26288 */ GIM_Try, /*On fail goto*//*Label 251*/ GIMT_Encode4(26396), // Rule ID 478 //
6896 /* 26293 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule297Enabled),
6897 /* 26296 */ // MIs[0] dst
6898 /* 26296 */ // No operand predicates
6899 /* 26296 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner34),
6900 /* 26300 */ GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_i32,
6901 /* 26303 */ GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_i32,
6902 /* 26306 */ GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_i32,
6903 /* 26309 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_i32,
6904 /* 26312 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_i32,
6905 /* 26315 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_i32,
6906 /* 26318 */ // Combiner Rule #297: combine_or_s64_with_s32_mask
6907 /* 26318 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6908 /* 26321 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6909 /* 26326 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6910 /* 26331 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
6911 /* 26333 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6912 /* 26337 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6913 /* 26342 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6914 /* 26347 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
6915 /* 26351 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6916 /* 26355 */ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6917 /* 26360 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
6918 /* 26363 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
6919 /* 26366 */ GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6920 /* 26370 */ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6921 /* 26375 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
6922 /* 26378 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
6923 /* 26381 */ GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
6924 /* 26385 */ GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
6925 /* 26389 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
6926 /* 26392 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
6927 /* 26395 */ GIR_EraseRootFromParent_Done,
6928 /* 26396 */ // Label 251: @26396
6929 /* 26396 */ GIM_Reject,
6930 /* 26397 */ // Label 249: @26397
6931 /* 26397 */ GIM_Try, /*On fail goto*//*Label 252*/ GIMT_Encode4(26421), // Rule ID 129 //
6932 /* 26402 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
6933 /* 26405 */ // MIs[0] dst
6934 /* 26405 */ // No operand predicates
6935 /* 26405 */ // MIs[0] src
6936 /* 26405 */ // No operand predicates
6937 /* 26405 */ // MIs[0] src
6938 /* 26405 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6939 /* 26410 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6940 /* 26415 */ // Combiner Rule #91: binop_same_val @ [__binop_same_val_match_0[1]]
6941 /* 26415 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6942 /* 26420 */ GIR_EraseRootFromParent_Done,
6943 /* 26421 */ // Label 252: @26421
6944 /* 26421 */ GIM_Try, /*On fail goto*//*Label 253*/ GIMT_Encode4(26455), // Rule ID 454 //
6945 /* 26426 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule278Enabled),
6946 /* 26429 */ // MIs[0] dst
6947 /* 26429 */ // No operand predicates
6948 /* 26429 */ // MIs[0] x
6949 /* 26429 */ // No operand predicates
6950 /* 26429 */ // MIs[0] __combine_or_of_and_match_0.and
6951 /* 26429 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6952 /* 26433 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6953 /* 26437 */ // MIs[1] x
6954 /* 26437 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
6955 /* 26442 */ // MIs[1] y
6956 /* 26442 */ // No operand predicates
6957 /* 26442 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6958 /* 26447 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6959 /* 26449 */ // Combiner Rule #278: combine_or_of_and @ [__combine_or_of_and_match_0[2]]
6960 /* 26449 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6961 /* 26454 */ GIR_EraseRootFromParent_Done,
6962 /* 26455 */ // Label 253: @26455
6963 /* 26455 */ GIM_Try, /*On fail goto*//*Label 254*/ GIMT_Encode4(26489), // Rule ID 455 //
6964 /* 26460 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule278Enabled),
6965 /* 26463 */ // MIs[0] dst
6966 /* 26463 */ // No operand predicates
6967 /* 26463 */ // MIs[0] x
6968 /* 26463 */ // No operand predicates
6969 /* 26463 */ // MIs[0] __combine_or_of_and_match_0.and
6970 /* 26463 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6971 /* 26467 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6972 /* 26471 */ // MIs[1] y
6973 /* 26471 */ // No operand predicates
6974 /* 26471 */ // MIs[1] x
6975 /* 26471 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6976 /* 26476 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6977 /* 26481 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6978 /* 26483 */ // Combiner Rule #278: combine_or_of_and @ [__combine_or_of_and_match_0[3]]
6979 /* 26483 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6980 /* 26488 */ GIR_EraseRootFromParent_Done,
6981 /* 26489 */ // Label 254: @26489
6982 /* 26489 */ GIM_Try, /*On fail goto*//*Label 255*/ GIMT_Encode4(26510), // Rule ID 89 //
6983 /* 26494 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
6984 /* 26497 */ // MIs[0] dst
6985 /* 26497 */ // No operand predicates
6986 /* 26497 */ // MIs[0] __undef_to_negative_one_match_0.x
6987 /* 26497 */ // No operand predicates
6988 /* 26497 */ // MIs[0] __undef_to_negative_one_match_0.y
6989 /* 26497 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6990 /* 26501 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6991 /* 26505 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6992 /* 26507 */ // Combiner Rule #78: undef_to_negative_one @ [__undef_to_negative_one_match_0[1]]
6993 /* 26507 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
6994 /* 26510 */ // Label 255: @26510
6995 /* 26510 */ GIM_Try, /*On fail goto*//*Label 256*/ GIMT_Encode4(26533), // Rule ID 120 //
6996 /* 26515 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
6997 /* 26518 */ // MIs[0] dst
6998 /* 26518 */ // No operand predicates
6999 /* 26518 */ // MIs[0] lhs
7000 /* 26518 */ // No operand predicates
7001 /* 26518 */ // MIs[0] Operand 2
7002 /* 26518 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7003 /* 26522 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7004 /* 26527 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[2]]
7005 /* 26527 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7006 /* 26532 */ GIR_EraseRootFromParent_Done,
7007 /* 26533 */ // Label 256: @26533
7008 /* 26533 */ GIM_Try, /*On fail goto*//*Label 257*/ GIMT_Encode4(26544), // Rule ID 197 //
7009 /* 26538 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule144Enabled),
7010 /* 26541 */ // MIs[0] dst
7011 /* 26541 */ // No operand predicates
7012 /* 26541 */ // MIs[0] src1
7013 /* 26541 */ // No operand predicates
7014 /* 26541 */ // MIs[0] src2
7015 /* 26541 */ // No operand predicates
7016 /* 26541 */ // Combiner Rule #144: redundant_or
7017 /* 26541 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner65),
7018 /* 26544 */ // Label 257: @26544
7019 /* 26544 */ GIM_Try, /*On fail goto*//*Label 258*/ GIMT_Encode4(26555), // Rule ID 246 //
7020 /* 26549 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled),
7021 /* 26552 */ // MIs[0] dst
7022 /* 26552 */ // No operand predicates
7023 /* 26552 */ // MIs[0] src1
7024 /* 26552 */ // No operand predicates
7025 /* 26552 */ // MIs[0] src2
7026 /* 26552 */ // No operand predicates
7027 /* 26552 */ // Combiner Rule #177: load_or_combine
7028 /* 26552 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
7029 /* 26555 */ // Label 258: @26555
7030 /* 26555 */ GIM_Try, /*On fail goto*//*Label 259*/ GIMT_Encode4(26566), // Rule ID 251 //
7031 /* 26560 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
7032 /* 26563 */ // MIs[0] dst
7033 /* 26563 */ // No operand predicates
7034 /* 26563 */ // MIs[0] src1
7035 /* 26563 */ // No operand predicates
7036 /* 26563 */ // MIs[0] src2
7037 /* 26563 */ // No operand predicates
7038 /* 26563 */ // Combiner Rule #179: funnel_shift_from_or_shift
7039 /* 26563 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
7040 /* 26566 */ // Label 259: @26566
7041 /* 26566 */ GIM_Try, /*On fail goto*//*Label 260*/ GIMT_Encode4(26577), // Rule ID 399 //
7042 /* 26571 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule230Enabled),
7043 /* 26574 */ // MIs[0] dst
7044 /* 26574 */ // No operand predicates
7045 /* 26574 */ // MIs[0] src1
7046 /* 26574 */ // No operand predicates
7047 /* 26574 */ // MIs[0] src2
7048 /* 26574 */ // No operand predicates
7049 /* 26574 */ // Combiner Rule #230: match_ors
7050 /* 26574 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
7051 /* 26577 */ // Label 260: @26577
7052 /* 26577 */ GIM_Reject,
7053 /* 26578 */ // Label 10: @26578
7054 /* 26578 */ GIM_Try, /*On fail goto*//*Label 261*/ GIMT_Encode4(26589), // Rule ID 164 //
7055 /* 26583 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
7056 /* 26586 */ // Combiner Rule #113: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_XOR'
7057 /* 26586 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
7058 /* 26589 */ // Label 261: @26589
7059 /* 26589 */ GIM_Try, /*On fail goto*//*Label 262*/ GIMT_Encode4(26600), // Rule ID 281 //
7060 /* 26594 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
7061 /* 26597 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_XOR'
7062 /* 26597 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
7063 /* 26600 */ // Label 262: @26600
7064 /* 26600 */ GIM_Try, /*On fail goto*//*Label 263*/ GIMT_Encode4(26611), // Rule ID 337 //
7065 /* 26605 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
7066 /* 26608 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_XOR'
7067 /* 26608 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7068 /* 26611 */ // Label 263: @26611
7069 /* 26611 */ GIM_Try, /*On fail goto*//*Label 264*/ GIMT_Encode4(26622), // Rule ID 373 //
7070 /* 26616 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
7071 /* 26619 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_XOR'
7072 /* 26619 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7073 /* 26622 */ // Label 264: @26622
7074 /* 26622 */ GIM_Try, /*On fail goto*//*Label 265*/ GIMT_Encode4(26633), // Rule ID 443 //
7075 /* 26627 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule269Enabled),
7076 /* 26630 */ // Combiner Rule #269: binop_with_neg; wip_match_opcode 'G_XOR'
7077 /* 26630 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner148),
7078 /* 26633 */ // Label 265: @26633
7079 /* 26633 */ GIM_Try, /*On fail goto*//*Label 266*/ GIMT_Encode4(26693), // Rule ID 13 //
7080 /* 26638 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
7081 /* 26641 */ // MIs[0] root
7082 /* 26641 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
7083 /* 26645 */ // MIs[0] add
7084 /* 26645 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7085 /* 26649 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
7086 /* 26653 */ // MIs[1] A
7087 /* 26653 */ // No operand predicates
7088 /* 26653 */ // MIs[1] Operand 2
7089 /* 26653 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 255,
7090 /* 26657 */ // MIs[0] Operand 2
7091 /* 26657 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
7092 /* 26661 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
7093 /* 26665 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7094 /* 26667 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7095 /* 26670 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
7096 /* 26680 */ // Combiner Rule #13: NotAPlusNegOne
7097 /* 26680 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
7098 /* 26683 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7099 /* 26685 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
7100 /* 26688 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
7101 /* 26692 */ GIR_EraseRootFromParent_Done,
7102 /* 26693 */ // Label 266: @26693
7103 /* 26693 */ GIM_Try, /*On fail goto*//*Label 267*/ GIMT_Encode4(26714), // Rule ID 106 //
7104 /* 26698 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
7105 /* 26701 */ // MIs[0] dst
7106 /* 26701 */ // No operand predicates
7107 /* 26701 */ // MIs[0] __propagate_undef_any_op_match_0.x
7108 /* 26701 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7109 /* 26705 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7110 /* 26709 */ // MIs[0] __propagate_undef_any_op_match_0.y
7111 /* 26709 */ // No operand predicates
7112 /* 26709 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7113 /* 26711 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[2]]
7114 /* 26711 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
7115 /* 26714 */ // Label 267: @26714
7116 /* 26714 */ GIM_Try, /*On fail goto*//*Label 268*/ GIMT_Encode4(26753), // Rule ID 131 //
7117 /* 26719 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
7118 /* 26722 */ // MIs[0] dst
7119 /* 26722 */ // No operand predicates
7120 /* 26722 */ // MIs[0] x
7121 /* 26722 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
7122 /* 26726 */ // MIs[0] x
7123 /* 26726 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
7124 /* 26731 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7125 /* 26734 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
7126 /* 26744 */ // Combiner Rule #92: same_val_zero @ [__same_val_zero_match_0[1]]
7127 /* 26744 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7128 /* 26747 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7129 /* 26749 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
7130 /* 26752 */ GIR_EraseRootFromParent_Done,
7131 /* 26753 */ // Label 268: @26753
7132 /* 26753 */ GIM_Try, /*On fail goto*//*Label 269*/ GIMT_Encode4(26774), // Rule ID 109 //
7133 /* 26758 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
7134 /* 26761 */ // MIs[0] dst
7135 /* 26761 */ // No operand predicates
7136 /* 26761 */ // MIs[0] __propagate_undef_any_op_match_0.x
7137 /* 26761 */ // No operand predicates
7138 /* 26761 */ // MIs[0] __propagate_undef_any_op_match_0.y
7139 /* 26761 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7140 /* 26765 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7141 /* 26769 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7142 /* 26771 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[5]]
7143 /* 26771 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
7144 /* 26774 */ // Label 269: @26774
7145 /* 26774 */ GIM_Try, /*On fail goto*//*Label 270*/ GIMT_Encode4(26797), // Rule ID 121 //
7146 /* 26779 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
7147 /* 26782 */ // MIs[0] dst
7148 /* 26782 */ // No operand predicates
7149 /* 26782 */ // MIs[0] lhs
7150 /* 26782 */ // No operand predicates
7151 /* 26782 */ // MIs[0] Operand 2
7152 /* 26782 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7153 /* 26786 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7154 /* 26791 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[3]]
7155 /* 26791 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7156 /* 26796 */ GIR_EraseRootFromParent_Done,
7157 /* 26797 */ // Label 270: @26797
7158 /* 26797 */ GIM_Try, /*On fail goto*//*Label 271*/ GIMT_Encode4(26808), // Rule ID 202 //
7159 /* 26802 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule149Enabled),
7160 /* 26805 */ // MIs[0] dst
7161 /* 26805 */ // No operand predicates
7162 /* 26805 */ // MIs[0] src1
7163 /* 26805 */ // No operand predicates
7164 /* 26805 */ // MIs[0] src2
7165 /* 26805 */ // No operand predicates
7166 /* 26805 */ // Combiner Rule #149: not_cmp_fold
7167 /* 26805 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
7168 /* 26808 */ // Label 271: @26808
7169 /* 26808 */ GIM_Try, /*On fail goto*//*Label 272*/ GIMT_Encode4(26819), // Rule ID 234 //
7170 /* 26813 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
7171 /* 26816 */ // MIs[0] dst
7172 /* 26816 */ // No operand predicates
7173 /* 26816 */ // MIs[0] src1
7174 /* 26816 */ // No operand predicates
7175 /* 26816 */ // MIs[0] src2
7176 /* 26816 */ // No operand predicates
7177 /* 26816 */ // Combiner Rule #173: xor_of_and_with_same_reg
7178 /* 26816 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7179 /* 26819 */ // Label 272: @26819
7180 /* 26819 */ GIM_Reject,
7181 /* 26820 */ // Label 11: @26820
7182 /* 26820 */ GIM_Try, /*On fail goto*//*Label 273*/ GIMT_Encode4(26834), // Rule ID 159 //
7183 /* 26825 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
7184 /* 26828 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
7185 /* 26831 */ // MIs[0] dst
7186 /* 26831 */ // No operand predicates
7187 /* 26831 */ // MIs[0] srcs
7188 /* 26831 */ // No operand predicates
7189 /* 26831 */ // Combiner Rule #111: extend_through_phis
7190 /* 26831 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
7191 /* 26834 */ // Label 273: @26834
7192 /* 26834 */ GIM_Reject,
7193 /* 26835 */ // Label 12: @26835
7194 /* 26835 */ GIM_Try, /*On fail goto*//*Label 274*/ GIMT_Encode4(26846), // Rule ID 415 //
7195 /* 26840 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule246Enabled),
7196 /* 26843 */ // Combiner Rule #246: unmerge_anyext_build_vector; wip_match_opcode 'G_UNMERGE_VALUES'
7197 /* 26843 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
7198 /* 26846 */ // Label 274: @26846
7199 /* 26846 */ GIM_Try, /*On fail goto*//*Label 275*/ GIMT_Encode4(26857), // Rule ID 416 //
7200 /* 26851 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule247Enabled),
7201 /* 26854 */ // Combiner Rule #247: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
7202 /* 26854 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132),
7203 /* 26857 */ // Label 275: @26857
7204 /* 26857 */ GIM_Try, /*On fail goto*//*Label 276*/ GIMT_Encode4(26868), // Rule ID 418 //
7205 /* 26862 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule249Enabled),
7206 /* 26865 */ // Combiner Rule #249: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
7207 /* 26865 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner134),
7208 /* 26868 */ // Label 276: @26868
7209 /* 26868 */ GIM_Try, /*On fail goto*//*Label 277*/ GIMT_Encode4(26879), // Rule ID 419 //
7210 /* 26873 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule250Enabled),
7211 /* 26876 */ // Combiner Rule #250: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
7212 /* 26876 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner135),
7213 /* 26879 */ // Label 277: @26879
7214 /* 26879 */ GIM_Try, /*On fail goto*//*Label 278*/ GIMT_Encode4(26890), // Rule ID 420 //
7215 /* 26884 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule251Enabled),
7216 /* 26887 */ // Combiner Rule #251: unmerge_dead_to_trunc; wip_match_opcode 'G_UNMERGE_VALUES'
7217 /* 26887 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner136),
7218 /* 26890 */ // Label 278: @26890
7219 /* 26890 */ GIM_Try, /*On fail goto*//*Label 279*/ GIMT_Encode4(26901), // Rule ID 421 //
7220 /* 26895 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule252Enabled),
7221 /* 26898 */ // Combiner Rule #252: unmerge_zext_to_zext; wip_match_opcode 'G_UNMERGE_VALUES'
7222 /* 26898 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner137),
7223 /* 26901 */ // Label 279: @26901
7224 /* 26901 */ GIM_Reject,
7225 /* 26902 */ // Label 13: @26902
7226 /* 26902 */ GIM_Try, /*On fail goto*//*Label 280*/ GIMT_Encode4(26916), // Rule ID 417 //
7227 /* 26907 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule248Enabled),
7228 /* 26910 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
7229 /* 26913 */ // MIs[0] dst
7230 /* 26913 */ // No operand predicates
7231 /* 26913 */ // MIs[0] merge_srcs
7232 /* 26913 */ // No operand predicates
7233 /* 26913 */ // Combiner Rule #248: merge_unmerge
7234 /* 26913 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
7235 /* 26916 */ // Label 280: @26916
7236 /* 26916 */ GIM_Try, /*On fail goto*//*Label 281*/ GIMT_Encode4(26978),
7237 /* 26921 */ GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
7238 /* 26924 */ GIM_Try, /*On fail goto*//*Label 282*/ GIMT_Encode4(26945), // Rule ID 422 //
7239 /* 26929 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule253Enabled),
7240 /* 26932 */ // MIs[0] root
7241 /* 26932 */ // No operand predicates
7242 /* 26932 */ // MIs[0] x
7243 /* 26932 */ // No operand predicates
7244 /* 26932 */ // MIs[0] undef
7245 /* 26932 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7246 /* 26936 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7247 /* 26940 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7248 /* 26942 */ // Combiner Rule #253: merge_of_x_and_undef
7249 /* 26942 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner138),
7250 /* 26945 */ // Label 282: @26945
7251 /* 26945 */ GIM_Try, /*On fail goto*//*Label 283*/ GIMT_Encode4(26977), // Rule ID 423 //
7252 /* 26950 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule254Enabled),
7253 /* 26953 */ // MIs[0] root
7254 /* 26953 */ // No operand predicates
7255 /* 26953 */ // MIs[0] x
7256 /* 26953 */ // No operand predicates
7257 /* 26953 */ // MIs[0] zero
7258 /* 26953 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7259 /* 26957 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7260 /* 26961 */ // MIs[1] Operand 1
7261 /* 26961 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
7262 /* 26972 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7263 /* 26974 */ // Combiner Rule #254: merge_of_x_and_zero
7264 /* 26974 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner139),
7265 /* 26977 */ // Label 283: @26977
7266 /* 26977 */ GIM_Reject,
7267 /* 26978 */ // Label 281: @26978
7268 /* 26978 */ GIM_Reject,
7269 /* 26979 */ // Label 14: @26979
7270 /* 26979 */ GIM_Try, /*On fail goto*//*Label 284*/ GIMT_Encode4(26990), // Rule ID 111 //
7271 /* 26984 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
7272 /* 26987 */ // Combiner Rule #84: propagate_undef_all_ops; wip_match_opcode 'G_BUILD_VECTOR'
7273 /* 26987 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
7274 /* 26990 */ // Label 284: @26990
7275 /* 26990 */ GIM_Try, /*On fail goto*//*Label 285*/ GIMT_Encode4(27001), // Rule ID 150 //
7276 /* 26995 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
7277 /* 26998 */ // Combiner Rule #102: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR'
7278 /* 26998 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner41),
7279 /* 27001 */ // Label 285: @27001
7280 /* 27001 */ GIM_Try, /*On fail goto*//*Label 286*/ GIMT_Encode4(27043),
7281 /* 27006 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
7282 /* 27009 */ GIM_Try, /*On fail goto*//*Label 287*/ GIMT_Encode4(27020), // Rule ID 76 //
7283 /* 27014 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
7284 /* 27017 */ // MIs[0] dst
7285 /* 27017 */ // No operand predicates
7286 /* 27017 */ // MIs[0] srcs
7287 /* 27017 */ // No operand predicates
7288 /* 27017 */ // Combiner Rule #72: extract_all_elts_from_build_vector
7289 /* 27017 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner28),
7290 /* 27020 */ // Label 287: @27020
7291 /* 27020 */ GIM_Try, /*On fail goto*//*Label 288*/ GIMT_Encode4(27031), // Rule ID 414 //
7292 /* 27025 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule245Enabled),
7293 /* 27028 */ // MIs[0] dst
7294 /* 27028 */ // No operand predicates
7295 /* 27028 */ // MIs[0] unused
7296 /* 27028 */ // No operand predicates
7297 /* 27028 */ // Combiner Rule #245: combine_use_vector_truncate
7298 /* 27028 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
7299 /* 27031 */ // Label 288: @27031
7300 /* 27031 */ GIM_Try, /*On fail goto*//*Label 289*/ GIMT_Encode4(27042), // Rule ID 424 //
7301 /* 27036 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule255Enabled),
7302 /* 27039 */ // MIs[0] dst
7303 /* 27039 */ // No operand predicates
7304 /* 27039 */ // MIs[0] unused
7305 /* 27039 */ // No operand predicates
7306 /* 27039 */ // Combiner Rule #255: combine_build_unmerge
7307 /* 27039 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner140),
7308 /* 27042 */ // Label 289: @27042
7309 /* 27042 */ GIM_Reject,
7310 /* 27043 */ // Label 286: @27043
7311 /* 27043 */ GIM_Reject,
7312 /* 27044 */ // Label 15: @27044
7313 /* 27044 */ GIM_Try, /*On fail goto*//*Label 290*/ GIMT_Encode4(27055), // Rule ID 149 //
7314 /* 27049 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
7315 /* 27052 */ // Combiner Rule #102: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR_TRUNC'
7316 /* 27052 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner41),
7317 /* 27055 */ // Label 290: @27055
7318 /* 27055 */ GIM_Reject,
7319 /* 27056 */ // Label 16: @27056
7320 /* 27056 */ GIM_Try, /*On fail goto*//*Label 291*/ GIMT_Encode4(27070), // Rule ID 407 //
7321 /* 27061 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule238Enabled),
7322 /* 27064 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
7323 /* 27067 */ // MIs[0] dst
7324 /* 27067 */ // No operand predicates
7325 /* 27067 */ // MIs[0] srcs
7326 /* 27067 */ // No operand predicates
7327 /* 27067 */ // Combiner Rule #238: combine_concat_vector
7328 /* 27067 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
7329 /* 27070 */ // Label 291: @27070
7330 /* 27070 */ GIM_Reject,
7331 /* 27071 */ // Label 17: @27071
7332 /* 27071 */ GIM_Try, /*On fail goto*//*Label 292*/ GIMT_Encode4(27092), // Rule ID 142 //
7333 /* 27076 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule96Enabled),
7334 /* 27079 */ // MIs[0] dst
7335 /* 27079 */ // No operand predicates
7336 /* 27079 */ // MIs[0] t
7337 /* 27079 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7338 /* 27083 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
7339 /* 27087 */ // MIs[1] ptr
7340 /* 27087 */ // No operand predicates
7341 /* 27087 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7342 /* 27089 */ // Combiner Rule #96: i2p_to_p2i
7343 /* 27089 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
7344 /* 27092 */ // Label 292: @27092
7345 /* 27092 */ GIM_Try, /*On fail goto*//*Label 293*/ GIMT_Encode4(27113), // Rule ID 100 //
7346 /* 27097 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
7347 /* 27100 */ // MIs[0] dst
7348 /* 27100 */ // No operand predicates
7349 /* 27100 */ // MIs[0] __unary_undef_to_undef_match_0.x
7350 /* 27100 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7351 /* 27104 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7352 /* 27108 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7353 /* 27110 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[3]]
7354 /* 27110 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
7355 /* 27113 */ // Label 293: @27113
7356 /* 27113 */ GIM_Reject,
7357 /* 27114 */ // Label 18: @27114
7358 /* 27114 */ GIM_Try, /*On fail goto*//*Label 294*/ GIMT_Encode4(27147), // Rule ID 141 //
7359 /* 27119 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
7360 /* 27122 */ // MIs[0] dst
7361 /* 27122 */ // No operand predicates
7362 /* 27122 */ // MIs[0] mid
7363 /* 27122 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7364 /* 27126 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_PTRTOINT),
7365 /* 27130 */ // MIs[1] x
7366 /* 27130 */ // No operand predicates
7367 /* 27130 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
7368 /* 27134 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7369 /* 27139 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7370 /* 27141 */ // Combiner Rule #95: p2i_to_i2p
7371 /* 27141 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7372 /* 27146 */ GIR_EraseRootFromParent_Done,
7373 /* 27147 */ // Label 294: @27147
7374 /* 27147 */ GIM_Try, /*On fail goto*//*Label 295*/ GIMT_Encode4(27168), // Rule ID 101 //
7375 /* 27152 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
7376 /* 27155 */ // MIs[0] dst
7377 /* 27155 */ // No operand predicates
7378 /* 27155 */ // MIs[0] __unary_undef_to_undef_match_0.x
7379 /* 27155 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7380 /* 27159 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7381 /* 27163 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7382 /* 27165 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[4]]
7383 /* 27165 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
7384 /* 27168 */ // Label 295: @27168
7385 /* 27168 */ GIM_Reject,
7386 /* 27169 */ // Label 19: @27169
7387 /* 27169 */ GIM_Try, /*On fail goto*//*Label 296*/ GIMT_Encode4(27201), // Rule ID 154 //
7388 /* 27174 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
7389 /* 27177 */ // MIs[0] dst
7390 /* 27177 */ // No operand predicates
7391 /* 27177 */ // MIs[0] src1
7392 /* 27177 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7393 /* 27181 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
7394 /* 27185 */ // MIs[1] src0
7395 /* 27185 */ // No operand predicates
7396 /* 27185 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
7397 /* 27189 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7398 /* 27191 */ // Combiner Rule #106: bitcast_bitcast_to_bitcast
7399 /* 27191 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_BITCAST),
7400 /* 27194 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7401 /* 27196 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src0
7402 /* 27200 */ GIR_EraseRootFromParent_Done,
7403 /* 27201 */ // Label 296: @27201
7404 /* 27201 */ GIM_Try, /*On fail goto*//*Label 297*/ GIMT_Encode4(27222), // Rule ID 153 //
7405 /* 27206 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
7406 /* 27209 */ // MIs[0] dst
7407 /* 27209 */ // No operand predicates
7408 /* 27209 */ // MIs[0] src1
7409 /* 27209 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7410 /* 27213 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
7411 /* 27217 */ // MIs[1] src0
7412 /* 27217 */ // No operand predicates
7413 /* 27217 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7414 /* 27219 */ // Combiner Rule #105: bitcast_bitcast_fold
7415 /* 27219 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner44),
7416 /* 27222 */ // Label 297: @27222
7417 /* 27222 */ GIM_Try, /*On fail goto*//*Label 298*/ GIMT_Encode4(27243), // Rule ID 98 //
7418 /* 27227 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
7419 /* 27230 */ // MIs[0] dst
7420 /* 27230 */ // No operand predicates
7421 /* 27230 */ // MIs[0] __unary_undef_to_undef_match_0.x
7422 /* 27230 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7423 /* 27234 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7424 /* 27238 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7425 /* 27240 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[1]]
7426 /* 27240 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
7427 /* 27243 */ // Label 298: @27243
7428 /* 27243 */ GIM_Reject,
7429 /* 27244 */ // Label 20: @27244
7430 /* 27244 */ GIM_Try, /*On fail goto*//*Label 299*/ GIMT_Encode4(27273), // Rule ID 25 //
7431 /* 27249 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
7432 /* 27252 */ // MIs[0] dst
7433 /* 27252 */ // No operand predicates
7434 /* 27252 */ // MIs[0] src
7435 /* 27252 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7436 /* 27256 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREEZE),
7437 /* 27260 */ // MIs[1] __idempotent_prop_match_0.x
7438 /* 27260 */ // No operand predicates
7439 /* 27260 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7440 /* 27265 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7441 /* 27267 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[0]]
7442 /* 27267 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7443 /* 27272 */ GIR_EraseRootFromParent_Done,
7444 /* 27273 */ // Label 299: @27273
7445 /* 27273 */ GIM_Try, /*On fail goto*//*Label 300*/ GIMT_Encode4(27296), // Rule ID 50 //
7446 /* 27278 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
7447 /* 27281 */ // MIs[0] root
7448 /* 27281 */ // No operand predicates
7449 /* 27281 */ // MIs[0] src
7450 /* 27281 */ // No operand predicates
7451 /* 27281 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
7452 /* 27285 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7453 /* 27290 */ // Combiner Rule #46: freeze_of_non_undef_non_poison
7454 /* 27290 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7455 /* 27295 */ GIR_EraseRootFromParent_Done,
7456 /* 27296 */ // Label 300: @27296
7457 /* 27296 */ GIM_Try, /*On fail goto*//*Label 301*/ GIMT_Encode4(27307), // Rule ID 51 //
7458 /* 27301 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
7459 /* 27304 */ // MIs[0] dst
7460 /* 27304 */ // No operand predicates
7461 /* 27304 */ // MIs[0] src
7462 /* 27304 */ // No operand predicates
7463 /* 27304 */ // Combiner Rule #47: push_freeze_to_prevent_poison_from_propagating
7464 /* 27304 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
7465 /* 27307 */ // Label 301: @27307
7466 /* 27307 */ GIM_Reject,
7467 /* 27308 */ // Label 21: @27308
7468 /* 27308 */ GIM_Try, /*On fail goto*//*Label 302*/ GIMT_Encode4(27329), // Rule ID 212 //
7469 /* 27313 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
7470 /* 27316 */ // MIs[0] dst
7471 /* 27316 */ // No operand predicates
7472 /* 27316 */ // MIs[0] src0
7473 /* 27316 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7474 /* 27320 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7475 /* 27324 */ // MIs[1] cst
7476 /* 27324 */ // No operand predicates
7477 /* 27324 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7478 /* 27326 */ // Combiner Rule #159: constant_fold_intrinsic_trunc
7479 /* 27326 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
7480 /* 27329 */ // Label 302: @27329
7481 /* 27329 */ GIM_Reject,
7482 /* 27330 */ // Label 22: @27330
7483 /* 27330 */ GIM_Try, /*On fail goto*//*Label 303*/ GIMT_Encode4(27351), // Rule ID 213 //
7484 /* 27335 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
7485 /* 27338 */ // MIs[0] dst
7486 /* 27338 */ // No operand predicates
7487 /* 27338 */ // MIs[0] src0
7488 /* 27338 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7489 /* 27342 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7490 /* 27346 */ // MIs[1] cst
7491 /* 27346 */ // No operand predicates
7492 /* 27346 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7493 /* 27348 */ // Combiner Rule #160: constant_fold_intrinsic_round
7494 /* 27348 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
7495 /* 27351 */ // Label 303: @27351
7496 /* 27351 */ GIM_Reject,
7497 /* 27352 */ // Label 23: @27352
7498 /* 27352 */ GIM_Try, /*On fail goto*//*Label 304*/ GIMT_Encode4(27373), // Rule ID 214 //
7499 /* 27357 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
7500 /* 27360 */ // MIs[0] dst
7501 /* 27360 */ // No operand predicates
7502 /* 27360 */ // MIs[0] src0
7503 /* 27360 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7504 /* 27364 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7505 /* 27368 */ // MIs[1] cst
7506 /* 27368 */ // No operand predicates
7507 /* 27368 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7508 /* 27370 */ // Combiner Rule #161: constant_fold_intrinsic_roundeven
7509 /* 27370 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
7510 /* 27373 */ // Label 304: @27373
7511 /* 27373 */ GIM_Reject,
7512 /* 27374 */ // Label 24: @27374
7513 /* 27374 */ GIM_Try, /*On fail goto*//*Label 305*/ GIMT_Encode4(27385), // Rule ID 77 //
7514 /* 27379 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
7515 /* 27382 */ // Combiner Rule #73: extending_loads; wip_match_opcode 'G_LOAD'
7516 /* 27382 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
7517 /* 27385 */ // Label 305: @27385
7518 /* 27385 */ GIM_Reject,
7519 /* 27386 */ // Label 25: @27386
7520 /* 27386 */ GIM_Try, /*On fail goto*//*Label 306*/ GIMT_Encode4(27397), // Rule ID 78 //
7521 /* 27391 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
7522 /* 27394 */ // Combiner Rule #73: extending_loads; wip_match_opcode 'G_SEXTLOAD'
7523 /* 27394 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
7524 /* 27397 */ // Label 306: @27397
7525 /* 27397 */ GIM_Reject,
7526 /* 27398 */ // Label 26: @27398
7527 /* 27398 */ GIM_Try, /*On fail goto*//*Label 307*/ GIMT_Encode4(27409), // Rule ID 79 //
7528 /* 27403 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
7529 /* 27406 */ // Combiner Rule #73: extending_loads; wip_match_opcode 'G_ZEXTLOAD'
7530 /* 27406 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
7531 /* 27409 */ // Label 307: @27409
7532 /* 27409 */ GIM_Reject,
7533 /* 27410 */ // Label 27: @27410
7534 /* 27410 */ GIM_Try, /*On fail goto*//*Label 308*/ GIMT_Encode4(27421), // Rule ID 113 //
7535 /* 27415 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
7536 /* 27418 */ // Combiner Rule #86: erase_undef_store; wip_match_opcode 'G_STORE'
7537 /* 27418 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
7538 /* 27421 */ // Label 308: @27421
7539 /* 27421 */ GIM_Reject,
7540 /* 27422 */ // Label 28: @27422
7541 /* 27422 */ GIM_Try, /*On fail goto*//*Label 309*/ GIMT_Encode4(27603),
7542 /* 27427 */ GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
7543 /* 27430 */ GIM_Try, /*On fail goto*//*Label 310*/ GIMT_Encode4(27490), // Rule ID 469 //
7544 /* 27435 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule288Enabled),
7545 /* 27438 */ GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::amdgcn_rcp),
7546 /* 27443 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmContract),
7547 /* 27449 */ // MIs[0] dst
7548 /* 27449 */ // No operand predicates
7549 /* 27449 */ // MIs[0] sqrt
7550 /* 27449 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7551 /* 27453 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC),
7552 /* 27457 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
7553 /* 27460 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::FmContract),
7554 /* 27466 */ // MIs[1] sqrt
7555 /* 27466 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/2,
7556 /* 27471 */ // MIs[1] x
7557 /* 27471 */ // No operand predicates
7558 /* 27471 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7559 /* 27473 */ // Combiner Rule #288: rcp_of_amdgcn_sqrt_to_rsq
7560 /* 27473 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_INTRINSIC),
7561 /* 27476 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7562 /* 27478 */ GIR_AddIntrinsicID, /*MI*/0, GIMT_Encode2(Intrinsic::amdgcn_rsq),
7563 /* 27482 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // x
7564 /* 27486 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
7565 /* 27489 */ GIR_EraseRootFromParent_Done,
7566 /* 27490 */ // Label 310: @27490
7567 /* 27490 */ GIM_Try, /*On fail goto*//*Label 311*/ GIMT_Encode4(27550), // Rule ID 471 //
7568 /* 27495 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule290Enabled),
7569 /* 27498 */ GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::amdgcn_sqrt),
7570 /* 27503 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmContract),
7571 /* 27509 */ // MIs[0] dst
7572 /* 27509 */ // No operand predicates
7573 /* 27509 */ // MIs[0] rcp
7574 /* 27509 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7575 /* 27513 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC),
7576 /* 27517 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
7577 /* 27520 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::FmContract),
7578 /* 27526 */ // MIs[1] rcp
7579 /* 27526 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/2,
7580 /* 27531 */ // MIs[1] x
7581 /* 27531 */ // No operand predicates
7582 /* 27531 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7583 /* 27533 */ // Combiner Rule #290: amdgcn_sqrt_of_rcp_to_rsq
7584 /* 27533 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_INTRINSIC),
7585 /* 27536 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7586 /* 27538 */ GIR_AddIntrinsicID, /*MI*/0, GIMT_Encode2(Intrinsic::amdgcn_rsq),
7587 /* 27542 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // x
7588 /* 27546 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
7589 /* 27549 */ GIR_EraseRootFromParent_Done,
7590 /* 27550 */ // Label 311: @27550
7591 /* 27550 */ GIM_Try, /*On fail goto*//*Label 312*/ GIMT_Encode4(27602), // Rule ID 468 //
7592 /* 27555 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule287Enabled),
7593 /* 27558 */ GIM_CheckIntrinsicID, /*MI*/0, /*Op*/1, GIMT_Encode2(Intrinsic::amdgcn_rcp),
7594 /* 27563 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmContract),
7595 /* 27569 */ // MIs[0] dst
7596 /* 27569 */ // No operand predicates
7597 /* 27569 */ // MIs[0] sqrt
7598 /* 27569 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7599 /* 27573 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSQRT),
7600 /* 27577 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::FmContract),
7601 /* 27583 */ // MIs[1] x
7602 /* 27583 */ // No operand predicates
7603 /* 27583 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7604 /* 27585 */ // Combiner Rule #287: rcp_of_fsqrt_to_rsq
7605 /* 27585 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_INTRINSIC),
7606 /* 27588 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7607 /* 27590 */ GIR_AddIntrinsicID, /*MI*/0, GIMT_Encode2(Intrinsic::amdgcn_rsq),
7608 /* 27594 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7609 /* 27598 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
7610 /* 27601 */ GIR_EraseRootFromParent_Done,
7611 /* 27602 */ // Label 312: @27602
7612 /* 27602 */ GIM_Reject,
7613 /* 27603 */ // Label 309: @27603
7614 /* 27603 */ GIM_Reject,
7615 /* 27604 */ // Label 29: @27604
7616 /* 27604 */ GIM_Try, /*On fail goto*//*Label 313*/ GIMT_Encode4(27625), // Rule ID 64 //
7617 /* 27609 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled),
7618 /* 27612 */ // MIs[0] root
7619 /* 27612 */ // No operand predicates
7620 /* 27612 */ // MIs[0] select
7621 /* 27612 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7622 /* 27616 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
7623 /* 27620 */ // MIs[1] cond
7624 /* 27620 */ // No operand predicates
7625 /* 27620 */ // MIs[1] true
7626 /* 27620 */ // No operand predicates
7627 /* 27620 */ // MIs[1] false
7628 /* 27620 */ // No operand predicates
7629 /* 27620 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7630 /* 27622 */ // Combiner Rule #60: select_of_anyext
7631 /* 27622 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
7632 /* 27625 */ // Label 313: @27625
7633 /* 27625 */ GIM_Try, /*On fail goto*//*Label 314*/ GIMT_Encode4(27646), // Rule ID 59 //
7634 /* 27630 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
7635 /* 27633 */ // MIs[0] root
7636 /* 27633 */ // No operand predicates
7637 /* 27633 */ // MIs[0] second
7638 /* 27633 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7639 /* 27637 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7640 /* 27641 */ // MIs[1] src
7641 /* 27641 */ // No operand predicates
7642 /* 27641 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7643 /* 27643 */ // Combiner Rule #55: anyext_of_anyext
7644 /* 27643 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7645 /* 27646 */ // Label 314: @27646
7646 /* 27646 */ GIM_Try, /*On fail goto*//*Label 315*/ GIMT_Encode4(27667), // Rule ID 61 //
7647 /* 27651 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
7648 /* 27654 */ // MIs[0] root
7649 /* 27654 */ // No operand predicates
7650 /* 27654 */ // MIs[0] second
7651 /* 27654 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7652 /* 27658 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
7653 /* 27662 */ // MIs[1] src
7654 /* 27662 */ // No operand predicates
7655 /* 27662 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7656 /* 27664 */ // Combiner Rule #57: anyext_of_sext
7657 /* 27664 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7658 /* 27667 */ // Label 315: @27667
7659 /* 27667 */ GIM_Try, /*On fail goto*//*Label 316*/ GIMT_Encode4(27688), // Rule ID 60 //
7660 /* 27672 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
7661 /* 27675 */ // MIs[0] root
7662 /* 27675 */ // No operand predicates
7663 /* 27675 */ // MIs[0] second
7664 /* 27675 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7665 /* 27679 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
7666 /* 27683 */ // MIs[1] src
7667 /* 27683 */ // No operand predicates
7668 /* 27683 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7669 /* 27685 */ // Combiner Rule #56: anyext_of_zext
7670 /* 27685 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7671 /* 27688 */ // Label 316: @27688
7672 /* 27688 */ GIM_Try, /*On fail goto*//*Label 317*/ GIMT_Encode4(27709), // Rule ID 99 //
7673 /* 27693 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
7674 /* 27696 */ // MIs[0] dst
7675 /* 27696 */ // No operand predicates
7676 /* 27696 */ // MIs[0] __unary_undef_to_undef_match_0.x
7677 /* 27696 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7678 /* 27700 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7679 /* 27704 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7680 /* 27706 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[2]]
7681 /* 27706 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
7682 /* 27709 */ // Label 317: @27709
7683 /* 27709 */ GIM_Try, /*On fail goto*//*Label 318*/ GIMT_Encode4(27720), // Rule ID 143 //
7684 /* 27714 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled),
7685 /* 27717 */ // MIs[0] dst
7686 /* 27717 */ // No operand predicates
7687 /* 27717 */ // MIs[0] src
7688 /* 27717 */ // No operand predicates
7689 /* 27717 */ // Combiner Rule #97: anyext_trunc_fold
7690 /* 27717 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
7691 /* 27720 */ // Label 318: @27720
7692 /* 27720 */ GIM_Try, /*On fail goto*//*Label 319*/ GIMT_Encode4(27731), // Rule ID 306 //
7693 /* 27725 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
7694 /* 27728 */ // MIs[0] dst
7695 /* 27728 */ // No operand predicates
7696 /* 27728 */ // MIs[0] d.src
7697 /* 27728 */ // No operand predicates
7698 /* 27728 */ // Combiner Rule #197: constant_fold_cast_op @ [d[2]]
7699 /* 27728 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
7700 /* 27731 */ // Label 319: @27731
7701 /* 27731 */ GIM_Reject,
7702 /* 27732 */ // Label 30: @27732
7703 /* 27732 */ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(1), GIMT_Encode2(6), /*)*//*default:*//*Label 323*/ GIMT_Encode4(27998),
7704 /* 27743 */ /*GILLT_i16*//*Label 320*/ GIMT_Encode4(27763), GIMT_Encode4(0), GIMT_Encode4(0),
7705 /* 27755 */ /*GILLT_f16*//*Label 321*/ GIMT_Encode4(27830),
7706 /* 27759 */ /*GILLT_bf16*//*Label 322*/ GIMT_Encode4(27914),
7707 /* 27763 */ // Label 320: @27763
7708 /* 27763 */ GIM_Try, /*On fail goto*//*Label 324*/ GIMT_Encode4(27829), // Rule ID 475 //
7709 /* 27768 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule294Enabled),
7710 /* 27771 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i32,
7711 /* 27774 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7712 /* 27778 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
7713 /* 27782 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_i32,
7714 /* 27786 */ // MIs[1] src
7715 /* 27786 */ // No operand predicates
7716 /* 27786 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7717 /* 27790 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7718 /* 27794 */ // MIs[2] Operand 1
7719 /* 27794 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(16),
7720 /* 27805 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner33),
7721 /* 27809 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7722 /* 27811 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_i16,
7723 /* 27814 */ // Combiner Rule #294: trunc_lshr16_unmerge_i16
7724 /* 27814 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
7725 /* 27817 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7726 /* 27822 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7727 /* 27824 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
7728 /* 27828 */ GIR_EraseRootFromParent_Done,
7729 /* 27829 */ // Label 324: @27829
7730 /* 27829 */ GIM_Reject,
7731 /* 27830 */ // Label 321: @27830
7732 /* 27830 */ GIM_Try, /*On fail goto*//*Label 325*/ GIMT_Encode4(27913), // Rule ID 476 //
7733 /* 27835 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule295Enabled),
7734 /* 27838 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i32,
7735 /* 27841 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7736 /* 27845 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
7737 /* 27849 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_i32,
7738 /* 27853 */ // MIs[1] src
7739 /* 27853 */ // No operand predicates
7740 /* 27853 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7741 /* 27857 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7742 /* 27861 */ // MIs[2] Operand 1
7743 /* 27861 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(16),
7744 /* 27872 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner33),
7745 /* 27876 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7746 /* 27878 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_i16,
7747 /* 27881 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_i16,
7748 /* 27884 */ // Combiner Rule #295: trunc_lshr16_unmerge_f16
7749 /* 27884 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
7750 /* 27887 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7751 /* 27892 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7752 /* 27897 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
7753 /* 27901 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_BITCAST),
7754 /* 27905 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
7755 /* 27909 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
7756 /* 27912 */ GIR_EraseRootFromParent_Done,
7757 /* 27913 */ // Label 325: @27913
7758 /* 27913 */ GIM_Reject,
7759 /* 27914 */ // Label 322: @27914
7760 /* 27914 */ GIM_Try, /*On fail goto*//*Label 326*/ GIMT_Encode4(27997), // Rule ID 477 //
7761 /* 27919 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule296Enabled),
7762 /* 27922 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i32,
7763 /* 27925 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7764 /* 27929 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
7765 /* 27933 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_i32,
7766 /* 27937 */ // MIs[1] src
7767 /* 27937 */ // No operand predicates
7768 /* 27937 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7769 /* 27941 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7770 /* 27945 */ // MIs[2] Operand 1
7771 /* 27945 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(16),
7772 /* 27956 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner33),
7773 /* 27960 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7774 /* 27962 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_i16,
7775 /* 27965 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_i16,
7776 /* 27968 */ // Combiner Rule #296: trunc_lshr16_unmerge_bf16
7777 /* 27968 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
7778 /* 27971 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7779 /* 27976 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7780 /* 27981 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
7781 /* 27985 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_BITCAST),
7782 /* 27989 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
7783 /* 27993 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
7784 /* 27996 */ GIR_EraseRootFromParent_Done,
7785 /* 27997 */ // Label 326: @27997
7786 /* 27997 */ GIM_Reject,
7787 /* 27998 */ // Label 323: @27998
7788 /* 27998 */ GIM_Try, /*On fail goto*//*Label 327*/ GIMT_Encode4(28019), // Rule ID 65 //
7789 /* 28003 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule61Enabled),
7790 /* 28006 */ // MIs[0] root
7791 /* 28006 */ // No operand predicates
7792 /* 28006 */ // MIs[0] select
7793 /* 28006 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7794 /* 28010 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
7795 /* 28014 */ // MIs[1] cond
7796 /* 28014 */ // No operand predicates
7797 /* 28014 */ // MIs[1] true
7798 /* 28014 */ // No operand predicates
7799 /* 28014 */ // MIs[1] false
7800 /* 28014 */ // No operand predicates
7801 /* 28014 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7802 /* 28016 */ // Combiner Rule #61: select_of_truncate
7803 /* 28016 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
7804 /* 28019 */ // Label 327: @28019
7805 /* 28019 */ GIM_Try, /*On fail goto*//*Label 328*/ GIMT_Encode4(28048), // Rule ID 67 //
7806 /* 28024 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled),
7807 /* 28027 */ // MIs[0] root
7808 /* 28027 */ // No operand predicates
7809 /* 28027 */ // MIs[0] binop
7810 /* 28027 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7811 /* 28031 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
7812 /* 28035 */ // MIs[1] x
7813 /* 28035 */ // No operand predicates
7814 /* 28035 */ // MIs[1] const
7815 /* 28035 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7816 /* 28039 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7817 /* 28043 */ // MIs[2] imm
7818 /* 28043 */ // No operand predicates
7819 /* 28043 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7820 /* 28045 */ // Combiner Rule #63: narrow_binop_add
7821 /* 28045 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
7822 /* 28048 */ // Label 328: @28048
7823 /* 28048 */ GIM_Try, /*On fail goto*//*Label 329*/ GIMT_Encode4(28077), // Rule ID 70 //
7824 /* 28053 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule66Enabled),
7825 /* 28056 */ // MIs[0] root
7826 /* 28056 */ // No operand predicates
7827 /* 28056 */ // MIs[0] binop
7828 /* 28056 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7829 /* 28060 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
7830 /* 28064 */ // MIs[1] x
7831 /* 28064 */ // No operand predicates
7832 /* 28064 */ // MIs[1] const
7833 /* 28064 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7834 /* 28068 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7835 /* 28072 */ // MIs[2] imm
7836 /* 28072 */ // No operand predicates
7837 /* 28072 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7838 /* 28074 */ // Combiner Rule #66: narrow_binop_and
7839 /* 28074 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
7840 /* 28077 */ // Label 329: @28077
7841 /* 28077 */ GIM_Try, /*On fail goto*//*Label 330*/ GIMT_Encode4(28106), // Rule ID 69 //
7842 /* 28082 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
7843 /* 28085 */ // MIs[0] root
7844 /* 28085 */ // No operand predicates
7845 /* 28085 */ // MIs[0] binop
7846 /* 28085 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7847 /* 28089 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
7848 /* 28093 */ // MIs[1] x
7849 /* 28093 */ // No operand predicates
7850 /* 28093 */ // MIs[1] const
7851 /* 28093 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7852 /* 28097 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7853 /* 28101 */ // MIs[2] imm
7854 /* 28101 */ // No operand predicates
7855 /* 28101 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7856 /* 28103 */ // Combiner Rule #65: narrow_binop_mul
7857 /* 28103 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
7858 /* 28106 */ // Label 330: @28106
7859 /* 28106 */ GIM_Try, /*On fail goto*//*Label 331*/ GIMT_Encode4(28135), // Rule ID 71 //
7860 /* 28111 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule67Enabled),
7861 /* 28114 */ // MIs[0] root
7862 /* 28114 */ // No operand predicates
7863 /* 28114 */ // MIs[0] binop
7864 /* 28114 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7865 /* 28118 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
7866 /* 28122 */ // MIs[1] x
7867 /* 28122 */ // No operand predicates
7868 /* 28122 */ // MIs[1] const
7869 /* 28122 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7870 /* 28126 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7871 /* 28130 */ // MIs[2] imm
7872 /* 28130 */ // No operand predicates
7873 /* 28130 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7874 /* 28132 */ // Combiner Rule #67: narrow_binop_or
7875 /* 28132 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
7876 /* 28135 */ // Label 331: @28135
7877 /* 28135 */ GIM_Try, /*On fail goto*//*Label 332*/ GIMT_Encode4(28164), // Rule ID 68 //
7878 /* 28140 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
7879 /* 28143 */ // MIs[0] root
7880 /* 28143 */ // No operand predicates
7881 /* 28143 */ // MIs[0] binop
7882 /* 28143 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7883 /* 28147 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
7884 /* 28151 */ // MIs[1] x
7885 /* 28151 */ // No operand predicates
7886 /* 28151 */ // MIs[1] const
7887 /* 28151 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7888 /* 28155 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7889 /* 28159 */ // MIs[2] imm
7890 /* 28159 */ // No operand predicates
7891 /* 28159 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7892 /* 28161 */ // Combiner Rule #64: narrow_binop_sub
7893 /* 28161 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
7894 /* 28164 */ // Label 332: @28164
7895 /* 28164 */ GIM_Try, /*On fail goto*//*Label 333*/ GIMT_Encode4(28196), // Rule ID 431 //
7896 /* 28169 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule260Enabled),
7897 /* 28172 */ // MIs[0] dst
7898 /* 28172 */ // No operand predicates
7899 /* 28172 */ // MIs[0] min
7900 /* 28172 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7901 /* 28176 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMIN),
7902 /* 28180 */ // MIs[1] x
7903 /* 28180 */ // No operand predicates
7904 /* 28180 */ // MIs[1] y
7905 /* 28180 */ // No operand predicates
7906 /* 28180 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner23),
7907 /* 28184 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7908 /* 28186 */ // Combiner Rule #260: trunc_usatu
7909 /* 28186 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_TRUNC_USAT_U),
7910 /* 28189 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7911 /* 28191 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7912 /* 28195 */ GIR_EraseRootFromParent_Done,
7913 /* 28196 */ // Label 333: @28196
7914 /* 28196 */ GIM_Try, /*On fail goto*//*Label 334*/ GIMT_Encode4(28225), // Rule ID 72 //
7915 /* 28201 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
7916 /* 28204 */ // MIs[0] root
7917 /* 28204 */ // No operand predicates
7918 /* 28204 */ // MIs[0] binop
7919 /* 28204 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7920 /* 28208 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
7921 /* 28212 */ // MIs[1] x
7922 /* 28212 */ // No operand predicates
7923 /* 28212 */ // MIs[1] const
7924 /* 28212 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7925 /* 28216 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7926 /* 28220 */ // MIs[2] imm
7927 /* 28220 */ // No operand predicates
7928 /* 28220 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7929 /* 28222 */ // Combiner Rule #68: narrow_binop_xor
7930 /* 28222 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
7931 /* 28225 */ // Label 334: @28225
7932 /* 28225 */ GIM_Try, /*On fail goto*//*Label 335*/ GIMT_Encode4(28246), // Rule ID 54 //
7933 /* 28230 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
7934 /* 28233 */ // MIs[0] root
7935 /* 28233 */ // No operand predicates
7936 /* 28233 */ // MIs[0] ext
7937 /* 28233 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7938 /* 28237 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7939 /* 28241 */ // MIs[1] src
7940 /* 28241 */ // No operand predicates
7941 /* 28241 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7942 /* 28243 */ // Combiner Rule #50: truncate_of_anyext
7943 /* 28243 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
7944 /* 28246 */ // Label 335: @28246
7945 /* 28246 */ GIM_Try, /*On fail goto*//*Label 336*/ GIMT_Encode4(28270), // Rule ID 66 //
7946 /* 28251 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled),
7947 /* 28254 */ // MIs[0] root
7948 /* 28254 */ // No operand predicates
7949 /* 28254 */ // MIs[0] bv
7950 /* 28254 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7951 /* 28258 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
7952 /* 28262 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
7953 /* 28265 */ // MIs[1] unused
7954 /* 28265 */ // No operand predicates
7955 /* 28265 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7956 /* 28267 */ // Combiner Rule #62: buildvector_of_truncate
7957 /* 28267 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
7958 /* 28270 */ // Label 336: @28270
7959 /* 28270 */ GIM_Try, /*On fail goto*//*Label 337*/ GIMT_Encode4(28291), // Rule ID 53 //
7960 /* 28275 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
7961 /* 28278 */ // MIs[0] root
7962 /* 28278 */ // No operand predicates
7963 /* 28278 */ // MIs[0] ext
7964 /* 28278 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7965 /* 28282 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
7966 /* 28286 */ // MIs[1] src
7967 /* 28286 */ // No operand predicates
7968 /* 28286 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7969 /* 28288 */ // Combiner Rule #49: truncate_of_sext
7970 /* 28288 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
7971 /* 28291 */ // Label 337: @28291
7972 /* 28291 */ GIM_Try, /*On fail goto*//*Label 338*/ GIMT_Encode4(28312), // Rule ID 52 //
7973 /* 28296 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
7974 /* 28299 */ // MIs[0] root
7975 /* 28299 */ // No operand predicates
7976 /* 28299 */ // MIs[0] ext
7977 /* 28299 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7978 /* 28303 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
7979 /* 28307 */ // MIs[1] src
7980 /* 28307 */ // No operand predicates
7981 /* 28307 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7982 /* 28309 */ // Combiner Rule #48: truncate_of_zext
7983 /* 28309 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
7984 /* 28312 */ // Label 338: @28312
7985 /* 28312 */ GIM_Try, /*On fail goto*//*Label 339*/ GIMT_Encode4(28333), // Rule ID 97 //
7986 /* 28317 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
7987 /* 28320 */ // MIs[0] dst
7988 /* 28320 */ // No operand predicates
7989 /* 28320 */ // MIs[0] __unary_undef_to_undef_match_0.x
7990 /* 28320 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7991 /* 28324 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7992 /* 28328 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7993 /* 28330 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[0]]
7994 /* 28330 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
7995 /* 28333 */ // Label 339: @28333
7996 /* 28333 */ GIM_Try, /*On fail goto*//*Label 340*/ GIMT_Encode4(28354), // Rule ID 73 //
7997 /* 28338 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled),
7998 /* 28341 */ // MIs[0] root
7999 /* 28341 */ // No operand predicates
8000 /* 28341 */ // MIs[0] int
8001 /* 28341 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8002 /* 28345 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8003 /* 28349 */ // MIs[1] imm
8004 /* 28349 */ // No operand predicates
8005 /* 28349 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8006 /* 28351 */ // Combiner Rule #69: integer_of_truncate
8007 /* 28351 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
8008 /* 28354 */ // Label 340: @28354
8009 /* 28354 */ GIM_Try, /*On fail goto*//*Label 341*/ GIMT_Encode4(28365), // Rule ID 151 //
8010 /* 28359 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
8011 /* 28362 */ // MIs[0] dst
8012 /* 28362 */ // No operand predicates
8013 /* 28362 */ // MIs[0] src
8014 /* 28362 */ // No operand predicates
8015 /* 28362 */ // Combiner Rule #103: trunc_buildvector_fold
8016 /* 28362 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner42),
8017 /* 28365 */ // Label 341: @28365
8018 /* 28365 */ GIM_Try, /*On fail goto*//*Label 342*/ GIMT_Encode4(28376), // Rule ID 152 //
8019 /* 28370 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
8020 /* 28373 */ // MIs[0] dst
8021 /* 28373 */ // No operand predicates
8022 /* 28373 */ // MIs[0] src
8023 /* 28373 */ // No operand predicates
8024 /* 28373 */ // Combiner Rule #104: trunc_lshr_buildvector_fold
8025 /* 28373 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
8026 /* 28376 */ // Label 342: @28376
8027 /* 28376 */ GIM_Try, /*On fail goto*//*Label 343*/ GIMT_Encode4(28387), // Rule ID 201 //
8028 /* 28381 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
8029 /* 28384 */ // MIs[0] dst
8030 /* 28384 */ // No operand predicates
8031 /* 28384 */ // MIs[0] src
8032 /* 28384 */ // No operand predicates
8033 /* 28384 */ // Combiner Rule #148: trunc_shift
8034 /* 28384 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
8035 /* 28387 */ // Label 343: @28387
8036 /* 28387 */ GIM_Try, /*On fail goto*//*Label 344*/ GIMT_Encode4(28398), // Rule ID 429 //
8037 /* 28392 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule258Enabled),
8038 /* 28395 */ // MIs[0] dst
8039 /* 28395 */ // No operand predicates
8040 /* 28395 */ // MIs[0] src
8041 /* 28395 */ // No operand predicates
8042 /* 28395 */ // Combiner Rule #258: trunc_ssats
8043 /* 28395 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner143),
8044 /* 28398 */ // Label 344: @28398
8045 /* 28398 */ GIM_Try, /*On fail goto*//*Label 345*/ GIMT_Encode4(28409), // Rule ID 430 //
8046 /* 28403 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule259Enabled),
8047 /* 28406 */ // MIs[0] dst
8048 /* 28406 */ // No operand predicates
8049 /* 28406 */ // MIs[0] src
8050 /* 28406 */ // No operand predicates
8051 /* 28406 */ // Combiner Rule #259: trunc_ssatu
8052 /* 28406 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner144),
8053 /* 28409 */ // Label 345: @28409
8054 /* 28409 */ GIM_Reject,
8055 /* 28410 */ // Label 31: @28410
8056 /* 28410 */ GIM_Try, /*On fail goto*//*Label 346*/ GIMT_Encode4(28442), // Rule ID 432 //
8057 /* 28415 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule261Enabled),
8058 /* 28418 */ // MIs[0] dst
8059 /* 28418 */ // No operand predicates
8060 /* 28418 */ // MIs[0] src
8061 /* 28418 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8062 /* 28422 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPTOUI),
8063 /* 28426 */ // MIs[1] x
8064 /* 28426 */ // No operand predicates
8065 /* 28426 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner24),
8066 /* 28430 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8067 /* 28432 */ // Combiner Rule #261: truncusatu_to_fptouisat
8068 /* 28432 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FPTOUI_SAT),
8069 /* 28435 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8070 /* 28437 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
8071 /* 28441 */ GIR_EraseRootFromParent_Done,
8072 /* 28442 */ // Label 346: @28442
8073 /* 28442 */ GIM_Reject,
8074 /* 28443 */ // Label 32: @28443
8075 /* 28443 */ GIM_Try, /*On fail goto*//*Label 347*/ GIMT_Encode4(28464), // Rule ID 58 //
8076 /* 28448 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
8077 /* 28451 */ // MIs[0] root
8078 /* 28451 */ // No operand predicates
8079 /* 28451 */ // MIs[0] second
8080 /* 28451 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8081 /* 28455 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8082 /* 28459 */ // MIs[1] src
8083 /* 28459 */ // No operand predicates
8084 /* 28459 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8085 /* 28461 */ // Combiner Rule #54: sext_of_anyext
8086 /* 28461 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
8087 /* 28464 */ // Label 347: @28464
8088 /* 28464 */ GIM_Try, /*On fail goto*//*Label 348*/ GIMT_Encode4(28485), // Rule ID 57 //
8089 /* 28469 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
8090 /* 28472 */ // MIs[0] root
8091 /* 28472 */ // No operand predicates
8092 /* 28472 */ // MIs[0] second
8093 /* 28472 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8094 /* 28476 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
8095 /* 28480 */ // MIs[1] src
8096 /* 28480 */ // No operand predicates
8097 /* 28480 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8098 /* 28482 */ // Combiner Rule #53: sext_of_sext
8099 /* 28482 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
8100 /* 28485 */ // Label 348: @28485
8101 /* 28485 */ GIM_Try, /*On fail goto*//*Label 349*/ GIMT_Encode4(28506), // Rule ID 408 //
8102 /* 28490 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule239Enabled),
8103 /* 28493 */ // MIs[0] root
8104 /* 28493 */ // No operand predicates
8105 /* 28493 */ // MIs[0] src
8106 /* 28493 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8107 /* 28497 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
8108 /* 28501 */ // MIs[1] x
8109 /* 28501 */ // No operand predicates
8110 /* 28501 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8111 /* 28503 */ // Combiner Rule #239: sext_trunc
8112 /* 28503 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner124),
8113 /* 28506 */ // Label 349: @28506
8114 /* 28506 */ GIM_Try, /*On fail goto*//*Label 350*/ GIMT_Encode4(28517), // Rule ID 305 //
8115 /* 28511 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
8116 /* 28514 */ // MIs[0] dst
8117 /* 28514 */ // No operand predicates
8118 /* 28514 */ // MIs[0] d.src
8119 /* 28514 */ // No operand predicates
8120 /* 28514 */ // Combiner Rule #197: constant_fold_cast_op @ [d[1]]
8121 /* 28514 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
8122 /* 28517 */ // Label 350: @28517
8123 /* 28517 */ GIM_Reject,
8124 /* 28518 */ // Label 33: @28518
8125 /* 28518 */ GIM_Try, /*On fail goto*//*Label 351*/ GIMT_Encode4(28539), // Rule ID 62 //
8126 /* 28523 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
8127 /* 28526 */ // MIs[0] dst
8128 /* 28526 */ // No operand predicates
8129 /* 28526 */ // MIs[0] x
8130 /* 28526 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8131 /* 28530 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
8132 /* 28534 */ // MIs[1] src
8133 /* 28534 */ // No operand predicates
8134 /* 28534 */ // MIs[1] a
8135 /* 28534 */ // No operand predicates
8136 /* 28534 */ // MIs[0] b
8137 /* 28534 */ // No operand predicates
8138 /* 28534 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8139 /* 28536 */ // Combiner Rule #58: sext_inreg_of_sext_inreg
8140 /* 28536 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
8141 /* 28539 */ // Label 351: @28539
8142 /* 28539 */ GIM_Try, /*On fail goto*//*Label 352*/ GIMT_Encode4(28579), // Rule ID 195 //
8143 /* 28544 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule142Enabled),
8144 /* 28547 */ // MIs[0] dst
8145 /* 28547 */ // No operand predicates
8146 /* 28547 */ // MIs[0] tmp4
8147 /* 28547 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8148 /* 28551 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8149 /* 28555 */ // MIs[1] tmp2
8150 /* 28555 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8151 /* 28559 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
8152 /* 28563 */ GIM_CheckNumOperands, /*MI*/2, /*Expected*/3,
8153 /* 28566 */ // MIs[2] tmp3
8154 /* 28566 */ // No operand predicates
8155 /* 28566 */ // MIs[2] tmp1
8156 /* 28566 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
8157 /* 28570 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8158 /* 28574 */ // MIs[3] src
8159 /* 28574 */ // No operand predicates
8160 /* 28574 */ // MIs[0] amt
8161 /* 28574 */ // No operand predicates
8162 /* 28574 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
8163 /* 28576 */ // Combiner Rule #142: redundant_aext_unmerge_sext_inreg
8164 /* 28576 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
8165 /* 28579 */ // Label 352: @28579
8166 /* 28579 */ GIM_Try, /*On fail goto*//*Label 353*/ GIMT_Encode4(28611), // Rule ID 193 //
8167 /* 28584 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule140Enabled),
8168 /* 28587 */ // MIs[0] dst
8169 /* 28587 */ // No operand predicates
8170 /* 28587 */ // MIs[0] tmp
8171 /* 28587 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8172 /* 28591 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8173 /* 28595 */ // MIs[1] src
8174 /* 28595 */ // No operand predicates
8175 /* 28595 */ // MIs[0] amt
8176 /* 28595 */ // No operand predicates
8177 /* 28595 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner18),
8178 /* 28599 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8179 /* 28601 */ // Combiner Rule #140: redundant_aext_sext_inreg
8180 /* 28601 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
8181 /* 28604 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8182 /* 28606 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
8183 /* 28610 */ GIR_EraseRootFromParent_Done,
8184 /* 28611 */ // Label 353: @28611
8185 /* 28611 */ GIM_Try, /*On fail goto*//*Label 354*/ GIMT_Encode4(28651), // Rule ID 194 //
8186 /* 28616 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule141Enabled),
8187 /* 28619 */ // MIs[0] dst
8188 /* 28619 */ // No operand predicates
8189 /* 28619 */ // MIs[0] tmp4
8190 /* 28619 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8191 /* 28623 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
8192 /* 28627 */ // MIs[1] tmp2
8193 /* 28627 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8194 /* 28631 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
8195 /* 28635 */ GIM_CheckNumOperands, /*MI*/2, /*Expected*/3,
8196 /* 28638 */ // MIs[2] tmp3
8197 /* 28638 */ // No operand predicates
8198 /* 28638 */ // MIs[2] tmp1
8199 /* 28638 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
8200 /* 28642 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
8201 /* 28646 */ // MIs[3] src
8202 /* 28646 */ // No operand predicates
8203 /* 28646 */ // MIs[0] amt
8204 /* 28646 */ // No operand predicates
8205 /* 28646 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
8206 /* 28648 */ // Combiner Rule #141: redundant_zext_unmerge_sext_inreg
8207 /* 28648 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
8208 /* 28651 */ // Label 354: @28651
8209 /* 28651 */ GIM_Try, /*On fail goto*//*Label 355*/ GIMT_Encode4(28683), // Rule ID 192 //
8210 /* 28656 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule139Enabled),
8211 /* 28659 */ // MIs[0] dst
8212 /* 28659 */ // No operand predicates
8213 /* 28659 */ // MIs[0] tmp
8214 /* 28659 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8215 /* 28663 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
8216 /* 28667 */ // MIs[1] src
8217 /* 28667 */ // No operand predicates
8218 /* 28667 */ // MIs[0] amt
8219 /* 28667 */ // No operand predicates
8220 /* 28667 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner18),
8221 /* 28671 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8222 /* 28673 */ // Combiner Rule #139: redundant_zext_sext_inreg
8223 /* 28673 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
8224 /* 28676 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8225 /* 28678 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
8226 /* 28682 */ GIR_EraseRootFromParent_Done,
8227 /* 28683 */ // Label 355: @28683
8228 /* 28683 */ GIM_Try, /*On fail goto*//*Label 356*/ GIMT_Encode4(28706), // Rule ID 191 //
8229 /* 28688 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule138Enabled),
8230 /* 28691 */ // MIs[0] dst
8231 /* 28691 */ // No operand predicates
8232 /* 28691 */ // MIs[0] src
8233 /* 28691 */ // No operand predicates
8234 /* 28691 */ // MIs[0] sz
8235 /* 28691 */ // No operand predicates
8236 /* 28691 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner17),
8237 /* 28695 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8238 /* 28700 */ // Combiner Rule #138: redundant_sext_inreg
8239 /* 28700 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8240 /* 28705 */ GIR_EraseRootFromParent_Done,
8241 /* 28706 */ // Label 356: @28706
8242 /* 28706 */ GIM_Try, /*On fail goto*//*Label 357*/ GIMT_Encode4(28717), // Rule ID 180 //
8243 /* 28711 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule127Enabled),
8244 /* 28714 */ // MIs[0] dst
8245 /* 28714 */ // No operand predicates
8246 /* 28714 */ // MIs[0] src
8247 /* 28714 */ // No operand predicates
8248 /* 28714 */ // MIs[0] sz
8249 /* 28714 */ // No operand predicates
8250 /* 28714 */ // Combiner Rule #127: sext_inreg_of_load
8251 /* 28714 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner57),
8252 /* 28717 */ // Label 357: @28717
8253 /* 28717 */ GIM_Try, /*On fail goto*//*Label 358*/ GIMT_Encode4(28728), // Rule ID 200 //
8254 /* 28722 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
8255 /* 28725 */ // MIs[0] dst
8256 /* 28725 */ // No operand predicates
8257 /* 28725 */ // MIs[0] src
8258 /* 28725 */ // No operand predicates
8259 /* 28725 */ // MIs[0] imm
8260 /* 28725 */ // No operand predicates
8261 /* 28725 */ // Combiner Rule #147: sext_inreg_to_zext_inreg
8262 /* 28725 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner68),
8263 /* 28728 */ // Label 358: @28728
8264 /* 28728 */ GIM_Try, /*On fail goto*//*Label 359*/ GIMT_Encode4(28739), // Rule ID 266 //
8265 /* 28733 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
8266 /* 28736 */ // MIs[0] dst
8267 /* 28736 */ // No operand predicates
8268 /* 28736 */ // MIs[0] src
8269 /* 28736 */ // No operand predicates
8270 /* 28736 */ // MIs[0] sz
8271 /* 28736 */ // No operand predicates
8272 /* 28736 */ // Combiner Rule #190: bitfield_extract_from_sext_inreg
8273 /* 28736 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
8274 /* 28739 */ // Label 359: @28739
8275 /* 28739 */ GIM_Try, /*On fail goto*//*Label 360*/ GIMT_Encode4(28750), // Rule ID 473 //
8276 /* 28744 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule292Enabled),
8277 /* 28747 */ // MIs[0] dst
8278 /* 28747 */ // No operand predicates
8279 /* 28747 */ // MIs[0] src
8280 /* 28747 */ // No operand predicates
8281 /* 28747 */ // MIs[0] width
8282 /* 28747 */ // No operand predicates
8283 /* 28747 */ // Combiner Rule #292: sign_extension_in_reg
8284 /* 28747 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner157),
8285 /* 28750 */ // Label 360: @28750
8286 /* 28750 */ GIM_Reject,
8287 /* 28751 */ // Label 34: @28751
8288 /* 28751 */ GIM_Try, /*On fail goto*//*Label 361*/ GIMT_Encode4(28772), // Rule ID 63 //
8289 /* 28756 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled),
8290 /* 28759 */ // MIs[0] root
8291 /* 28759 */ // No operand predicates
8292 /* 28759 */ // MIs[0] select
8293 /* 28759 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8294 /* 28763 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
8295 /* 28767 */ // MIs[1] cond
8296 /* 28767 */ // No operand predicates
8297 /* 28767 */ // MIs[1] true
8298 /* 28767 */ // No operand predicates
8299 /* 28767 */ // MIs[1] false
8300 /* 28767 */ // No operand predicates
8301 /* 28767 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8302 /* 28769 */ // Combiner Rule #59: select_of_zext
8303 /* 28769 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
8304 /* 28772 */ // Label 361: @28772
8305 /* 28772 */ GIM_Try, /*On fail goto*//*Label 362*/ GIMT_Encode4(28793), // Rule ID 56 //
8306 /* 28777 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
8307 /* 28780 */ // MIs[0] root
8308 /* 28780 */ // No operand predicates
8309 /* 28780 */ // MIs[0] second
8310 /* 28780 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8311 /* 28784 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8312 /* 28788 */ // MIs[1] src
8313 /* 28788 */ // No operand predicates
8314 /* 28788 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8315 /* 28790 */ // Combiner Rule #52: zext_of_anyext
8316 /* 28790 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
8317 /* 28793 */ // Label 362: @28793
8318 /* 28793 */ GIM_Try, /*On fail goto*//*Label 363*/ GIMT_Encode4(28820), // Rule ID 409 //
8319 /* 28798 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule240Enabled),
8320 /* 28801 */ // MIs[0] root
8321 /* 28801 */ // No operand predicates
8322 /* 28801 */ // MIs[0] src
8323 /* 28801 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8324 /* 28805 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
8325 /* 28809 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::NoUWrap),
8326 /* 28815 */ // MIs[1] x
8327 /* 28815 */ // No operand predicates
8328 /* 28815 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8329 /* 28817 */ // Combiner Rule #240: zext_trunc
8330 /* 28817 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner125),
8331 /* 28820 */ // Label 363: @28820
8332 /* 28820 */ GIM_Try, /*On fail goto*//*Label 364*/ GIMT_Encode4(28841), // Rule ID 55 //
8333 /* 28825 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
8334 /* 28828 */ // MIs[0] root
8335 /* 28828 */ // No operand predicates
8336 /* 28828 */ // MIs[0] second
8337 /* 28828 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8338 /* 28832 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
8339 /* 28836 */ // MIs[1] src
8340 /* 28836 */ // No operand predicates
8341 /* 28836 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8342 /* 28838 */ // Combiner Rule #51: zext_of_zext
8343 /* 28838 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
8344 /* 28841 */ // Label 364: @28841
8345 /* 28841 */ GIM_Try, /*On fail goto*//*Label 365*/ GIMT_Encode4(28858), // Rule ID 410 //
8346 /* 28846 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule241Enabled),
8347 /* 28849 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NonNeg),
8348 /* 28855 */ // MIs[0] root
8349 /* 28855 */ // No operand predicates
8350 /* 28855 */ // MIs[0] x
8351 /* 28855 */ // No operand predicates
8352 /* 28855 */ // Combiner Rule #241: nneg_zext
8353 /* 28855 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner126),
8354 /* 28858 */ // Label 365: @28858
8355 /* 28858 */ GIM_Try, /*On fail goto*//*Label 366*/ GIMT_Encode4(28869), // Rule ID 199 //
8356 /* 28863 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
8357 /* 28866 */ // MIs[0] dst
8358 /* 28866 */ // No operand predicates
8359 /* 28866 */ // MIs[0] src
8360 /* 28866 */ // No operand predicates
8361 /* 28866 */ // Combiner Rule #146: zext_trunc_fold
8362 /* 28866 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner67),
8363 /* 28869 */ // Label 366: @28869
8364 /* 28869 */ GIM_Try, /*On fail goto*//*Label 367*/ GIMT_Encode4(28880), // Rule ID 304 //
8365 /* 28874 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
8366 /* 28877 */ // MIs[0] dst
8367 /* 28877 */ // No operand predicates
8368 /* 28877 */ // MIs[0] d.src
8369 /* 28877 */ // No operand predicates
8370 /* 28877 */ // Combiner Rule #197: constant_fold_cast_op @ [d[0]]
8371 /* 28877 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
8372 /* 28880 */ // Label 367: @28880
8373 /* 28880 */ GIM_Reject,
8374 /* 28881 */ // Label 35: @28881
8375 /* 28881 */ GIM_Try, /*On fail goto*//*Label 368*/ GIMT_Encode4(28892), // Rule ID 236 //
8376 /* 28886 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
8377 /* 28889 */ // Combiner Rule #175: shift_immed_chain; wip_match_opcode 'G_SHL'
8378 /* 28889 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
8379 /* 28892 */ // Label 368: @28892
8380 /* 28892 */ GIM_Try, /*On fail goto*//*Label 369*/ GIMT_Encode4(28903), // Rule ID 241 //
8381 /* 28897 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
8382 /* 28900 */ // Combiner Rule #176: shift_of_shifted_logic_chain; wip_match_opcode 'G_SHL'
8383 /* 28900 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
8384 /* 28903 */ // Label 369: @28903
8385 /* 28903 */ GIM_Try, /*On fail goto*//*Label 370*/ GIMT_Encode4(28914), // Rule ID 279 //
8386 /* 28908 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
8387 /* 28911 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_SHL'
8388 /* 28911 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
8389 /* 28914 */ // Label 370: @28914
8390 /* 28914 */ GIM_Try, /*On fail goto*//*Label 371*/ GIMT_Encode4(28925), // Rule ID 344 //
8391 /* 28919 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
8392 /* 28922 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_SHL'
8393 /* 28922 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
8394 /* 28925 */ // Label 371: @28925
8395 /* 28925 */ GIM_Try, /*On fail goto*//*Label 372*/ GIMT_Encode4(29003), // Rule ID 264 //
8396 /* 28930 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
8397 /* 28933 */ // MIs[0] dst
8398 /* 28933 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
8399 /* 28937 */ // MIs[0] binop_dst
8400 /* 28937 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8401 /* 28941 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
8402 /* 28945 */ // MIs[1] x
8403 /* 28945 */ // No operand predicates
8404 /* 28945 */ // MIs[1] c1
8405 /* 28945 */ // No operand predicates
8406 /* 28945 */ // MIs[0] c2
8407 /* 28945 */ // No operand predicates
8408 /* 28945 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner22),
8409 /* 28949 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8410 /* 28951 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
8411 /* 28954 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8412 /* 28957 */ // Combiner Rule #188: commute_shift_add
8413 /* 28957 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
8414 /* 28960 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8415 /* 28965 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
8416 /* 28969 */ GIR_RootToRootCopy, /*OpIdx*/2, // c2
8417 /* 28971 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
8418 /* 28975 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8419 /* 28980 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/2, // c1
8420 /* 28984 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // c2
8421 /* 28988 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
8422 /* 28992 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
8423 /* 28996 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
8424 /* 28999 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
8425 /* 29002 */ GIR_EraseRootFromParent_Done,
8426 /* 29003 */ // Label 372: @29003
8427 /* 29003 */ GIM_Try, /*On fail goto*//*Label 373*/ GIMT_Encode4(29081), // Rule ID 265 //
8428 /* 29008 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule189Enabled),
8429 /* 29011 */ // MIs[0] dst
8430 /* 29011 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
8431 /* 29015 */ // MIs[0] binop_dst
8432 /* 29015 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8433 /* 29019 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
8434 /* 29023 */ // MIs[1] x
8435 /* 29023 */ // No operand predicates
8436 /* 29023 */ // MIs[1] c1
8437 /* 29023 */ // No operand predicates
8438 /* 29023 */ // MIs[0] c2
8439 /* 29023 */ // No operand predicates
8440 /* 29023 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner22),
8441 /* 29027 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8442 /* 29029 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
8443 /* 29032 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8444 /* 29035 */ // Combiner Rule #189: commute_shift_or
8445 /* 29035 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
8446 /* 29038 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8447 /* 29043 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
8448 /* 29047 */ GIR_RootToRootCopy, /*OpIdx*/2, // c2
8449 /* 29049 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
8450 /* 29053 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8451 /* 29058 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/2, // c1
8452 /* 29062 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // c2
8453 /* 29066 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
8454 /* 29070 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
8455 /* 29074 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
8456 /* 29077 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
8457 /* 29080 */ GIR_EraseRootFromParent_Done,
8458 /* 29081 */ // Label 373: @29081
8459 /* 29081 */ GIM_Try, /*On fail goto*//*Label 374*/ GIMT_Encode4(29116), // Rule ID 48 //
8460 /* 29086 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
8461 /* 29089 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
8462 /* 29095 */ // MIs[0] root
8463 /* 29095 */ // No operand predicates
8464 /* 29095 */ // MIs[0] left
8465 /* 29095 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8466 /* 29099 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
8467 /* 29103 */ // MIs[1] imm
8468 /* 29103 */ // No operand predicates
8469 /* 29103 */ // MIs[0] x
8470 /* 29103 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
8471 /* 29107 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8472 /* 29111 */ // MIs[2] imm1
8473 /* 29111 */ // No operand predicates
8474 /* 29111 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8475 /* 29113 */ // Combiner Rule #44: shl_of_vscale
8476 /* 29113 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
8477 /* 29116 */ // Label 374: @29116
8478 /* 29116 */ GIM_Try, /*On fail goto*//*Label 375*/ GIMT_Encode4(29137), // Rule ID 90 //
8479 /* 29121 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
8480 /* 29124 */ // MIs[0] dst
8481 /* 29124 */ // No operand predicates
8482 /* 29124 */ // MIs[0] __binop_left_undef_to_zero_match_0.x
8483 /* 29124 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8484 /* 29128 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8485 /* 29132 */ // MIs[0] __binop_left_undef_to_zero_match_0.y
8486 /* 29132 */ // No operand predicates
8487 /* 29132 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8488 /* 29134 */ // Combiner Rule #79: binop_left_undef_to_zero @ [__binop_left_undef_to_zero_match_0[0]]
8489 /* 29134 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
8490 /* 29137 */ // Label 375: @29137
8491 /* 29137 */ GIM_Try, /*On fail goto*//*Label 376*/ GIMT_Encode4(29177), // Rule ID 132 //
8492 /* 29142 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
8493 /* 29145 */ // MIs[0] dst
8494 /* 29145 */ // No operand predicates
8495 /* 29145 */ // MIs[0] zero
8496 /* 29145 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8497 /* 29149 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8498 /* 29153 */ // MIs[1] Operand 1
8499 /* 29153 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
8500 /* 29164 */ // MIs[0] rhs
8501 /* 29164 */ // No operand predicates
8502 /* 29164 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8503 /* 29169 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8504 /* 29171 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[0]]
8505 /* 29171 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8506 /* 29176 */ GIR_EraseRootFromParent_Done,
8507 /* 29177 */ // Label 376: @29177
8508 /* 29177 */ GIM_Try, /*On fail goto*//*Label 377*/ GIMT_Encode4(29198), // Rule ID 93 //
8509 /* 29182 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
8510 /* 29185 */ // MIs[0] dst
8511 /* 29185 */ // No operand predicates
8512 /* 29185 */ // MIs[0] __binop_right_undef_to_undef_match_0.x
8513 /* 29185 */ // No operand predicates
8514 /* 29185 */ // MIs[0] __binop_right_undef_to_undef_match_0.y
8515 /* 29185 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8516 /* 29189 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8517 /* 29193 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8518 /* 29195 */ // Combiner Rule #80: binop_right_undef_to_undef @ [__binop_right_undef_to_undef_match_0[0]]
8519 /* 29195 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
8520 /* 29198 */ // Label 377: @29198
8521 /* 29198 */ GIM_Try, /*On fail goto*//*Label 378*/ GIMT_Encode4(29221), // Rule ID 122 //
8522 /* 29203 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
8523 /* 29206 */ // MIs[0] dst
8524 /* 29206 */ // No operand predicates
8525 /* 29206 */ // MIs[0] lhs
8526 /* 29206 */ // No operand predicates
8527 /* 29206 */ // MIs[0] Operand 2
8528 /* 29206 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
8529 /* 29210 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8530 /* 29215 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[4]]
8531 /* 29215 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8532 /* 29220 */ GIR_EraseRootFromParent_Done,
8533 /* 29221 */ // Label 378: @29221
8534 /* 29221 */ GIM_Try, /*On fail goto*//*Label 379*/ GIMT_Encode4(29232), // Rule ID 165 //
8535 /* 29226 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
8536 /* 29229 */ // MIs[0] root
8537 /* 29229 */ // No operand predicates
8538 /* 29229 */ // MIs[0] mi.shifted
8539 /* 29229 */ // No operand predicates
8540 /* 29229 */ // MIs[0] mi.amt
8541 /* 29229 */ // No operand predicates
8542 /* 29229 */ // Combiner Rule #114: shifts_too_big @ [mi[0]]
8543 /* 29229 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
8544 /* 29232 */ // Label 379: @29232
8545 /* 29232 */ GIM_Try, /*On fail goto*//*Label 380*/ GIMT_Encode4(29243), // Rule ID 181 //
8546 /* 29237 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule128Enabled),
8547 /* 29240 */ // MIs[0] dst
8548 /* 29240 */ // No operand predicates
8549 /* 29240 */ // MIs[0] src0
8550 /* 29240 */ // No operand predicates
8551 /* 29240 */ // MIs[0] src1
8552 /* 29240 */ // No operand predicates
8553 /* 29240 */ // Combiner Rule #128: reduce_shl_of_extend
8554 /* 29240 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner58),
8555 /* 29243 */ // Label 380: @29243
8556 /* 29243 */ GIM_Reject,
8557 /* 29244 */ // Label 36: @29244
8558 /* 29244 */ GIM_Try, /*On fail goto*//*Label 381*/ GIMT_Encode4(29255), // Rule ID 238 //
8559 /* 29249 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
8560 /* 29252 */ // Combiner Rule #175: shift_immed_chain; wip_match_opcode 'G_LSHR'
8561 /* 29252 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
8562 /* 29255 */ // Label 381: @29255
8563 /* 29255 */ GIM_Try, /*On fail goto*//*Label 382*/ GIMT_Encode4(29266), // Rule ID 243 //
8564 /* 29260 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
8565 /* 29263 */ // Combiner Rule #176: shift_of_shifted_logic_chain; wip_match_opcode 'G_LSHR'
8566 /* 29263 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
8567 /* 29266 */ // Label 382: @29266
8568 /* 29266 */ GIM_Try, /*On fail goto*//*Label 383*/ GIMT_Encode4(29277), // Rule ID 276 //
8569 /* 29271 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
8570 /* 29274 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_LSHR'
8571 /* 29274 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
8572 /* 29277 */ // Label 383: @29277
8573 /* 29277 */ GIM_Try, /*On fail goto*//*Label 384*/ GIMT_Encode4(29288), // Rule ID 342 //
8574 /* 29282 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
8575 /* 29285 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_LSHR'
8576 /* 29285 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
8577 /* 29288 */ // Label 384: @29288
8578 /* 29288 */ GIM_Try, /*On fail goto*//*Label 385*/ GIMT_Encode4(29377), // Rule ID 450 //
8579 /* 29293 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule276Enabled),
8580 /* 29296 */ // MIs[0] dst
8581 /* 29296 */ // No operand predicates
8582 /* 29296 */ // MIs[0] sum
8583 /* 29296 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8584 /* 29300 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
8585 /* 29304 */ // MIs[1] inner
8586 /* 29304 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8587 /* 29308 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
8588 /* 29312 */ // MIs[2] ext1
8589 /* 29312 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
8590 /* 29316 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
8591 /* 29320 */ // MIs[3] x
8592 /* 29320 */ GIM_RecordRegType, /*MI*/3, /*Op*/1, /*TempTypeIdx*/255,
8593 /* 29324 */ // MIs[2] ext2
8594 /* 29324 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/4, /*MI*/2, /*OpIdx*/2, // MIs[4]
8595 /* 29328 */ GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_ZEXT),
8596 /* 29332 */ // MIs[4] y
8597 /* 29332 */ // No operand predicates
8598 /* 29332 */ // MIs[1] Operand 2
8599 /* 29332 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
8600 /* 29336 */ // MIs[0] Operand 2
8601 /* 29336 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
8602 /* 29340 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner30),
8603 /* 29344 */ GIM_CheckIsSafeToFold, /*NumInsns*/4,
8604 /* 29346 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8605 /* 29349 */ // Combiner Rule #276: avgceil_u_match
8606 /* 29349 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UAVGCEIL),
8607 /* 29352 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8608 /* 29357 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // x
8609 /* 29361 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // y
8610 /* 29365 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
8611 /* 29369 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
8612 /* 29373 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
8613 /* 29376 */ GIR_EraseRootFromParent_Done,
8614 /* 29377 */ // Label 385: @29377
8615 /* 29377 */ GIM_Try, /*On fail goto*//*Label 386*/ GIMT_Encode4(29454), // Rule ID 448 //
8616 /* 29382 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule274Enabled),
8617 /* 29385 */ // MIs[0] dst
8618 /* 29385 */ // No operand predicates
8619 /* 29385 */ // MIs[0] sum
8620 /* 29385 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8621 /* 29389 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
8622 /* 29393 */ // MIs[1] ext1
8623 /* 29393 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8624 /* 29397 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
8625 /* 29401 */ // MIs[2] x
8626 /* 29401 */ GIM_RecordRegType, /*MI*/2, /*Op*/1, /*TempTypeIdx*/255,
8627 /* 29405 */ // MIs[1] ext2
8628 /* 29405 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
8629 /* 29409 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
8630 /* 29413 */ // MIs[3] y
8631 /* 29413 */ // No operand predicates
8632 /* 29413 */ // MIs[0] Operand 2
8633 /* 29413 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
8634 /* 29417 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner28),
8635 /* 29421 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
8636 /* 29423 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8637 /* 29426 */ // Combiner Rule #274: avgfloor_u_match
8638 /* 29426 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UAVGFLOOR),
8639 /* 29429 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8640 /* 29434 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // x
8641 /* 29438 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // y
8642 /* 29442 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
8643 /* 29446 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
8644 /* 29450 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
8645 /* 29453 */ GIR_EraseRootFromParent_Done,
8646 /* 29454 */ // Label 386: @29454
8647 /* 29454 */ GIM_Try, /*On fail goto*//*Label 387*/ GIMT_Encode4(29483), // Rule ID 433 //
8648 /* 29459 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule262Enabled),
8649 /* 29462 */ // MIs[0] dst
8650 /* 29462 */ // No operand predicates
8651 /* 29462 */ // MIs[0] d2
8652 /* 29462 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8653 /* 29466 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
8654 /* 29470 */ // MIs[1] d1
8655 /* 29470 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8656 /* 29474 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
8657 /* 29478 */ // MIs[2] x
8658 /* 29478 */ // No operand predicates
8659 /* 29478 */ // MIs[2] y
8660 /* 29478 */ // No operand predicates
8661 /* 29478 */ // MIs[0] z
8662 /* 29478 */ // No operand predicates
8663 /* 29478 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8664 /* 29480 */ // Combiner Rule #262: lshr_of_trunc_of_lshr
8665 /* 29480 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner145),
8666 /* 29483 */ // Label 387: @29483
8667 /* 29483 */ GIM_Try, /*On fail goto*//*Label 388*/ GIMT_Encode4(29523), // Rule ID 133 //
8668 /* 29488 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
8669 /* 29491 */ // MIs[0] dst
8670 /* 29491 */ // No operand predicates
8671 /* 29491 */ // MIs[0] zero
8672 /* 29491 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8673 /* 29495 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8674 /* 29499 */ // MIs[1] Operand 1
8675 /* 29499 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
8676 /* 29510 */ // MIs[0] rhs
8677 /* 29510 */ // No operand predicates
8678 /* 29510 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8679 /* 29515 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8680 /* 29517 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[1]]
8681 /* 29517 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8682 /* 29522 */ GIR_EraseRootFromParent_Done,
8683 /* 29523 */ // Label 388: @29523
8684 /* 29523 */ GIM_Try, /*On fail goto*//*Label 389*/ GIMT_Encode4(29544), // Rule ID 95 //
8685 /* 29528 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
8686 /* 29531 */ // MIs[0] dst
8687 /* 29531 */ // No operand predicates
8688 /* 29531 */ // MIs[0] __binop_right_undef_to_undef_match_0.x
8689 /* 29531 */ // No operand predicates
8690 /* 29531 */ // MIs[0] __binop_right_undef_to_undef_match_0.y
8691 /* 29531 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8692 /* 29535 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8693 /* 29539 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8694 /* 29541 */ // Combiner Rule #80: binop_right_undef_to_undef @ [__binop_right_undef_to_undef_match_0[2]]
8695 /* 29541 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
8696 /* 29544 */ // Label 389: @29544
8697 /* 29544 */ GIM_Try, /*On fail goto*//*Label 390*/ GIMT_Encode4(29567), // Rule ID 124 //
8698 /* 29549 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
8699 /* 29552 */ // MIs[0] dst
8700 /* 29552 */ // No operand predicates
8701 /* 29552 */ // MIs[0] lhs
8702 /* 29552 */ // No operand predicates
8703 /* 29552 */ // MIs[0] Operand 2
8704 /* 29552 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
8705 /* 29556 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8706 /* 29561 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[6]]
8707 /* 29561 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8708 /* 29566 */ GIR_EraseRootFromParent_Done,
8709 /* 29567 */ // Label 390: @29567
8710 /* 29567 */ GIM_Try, /*On fail goto*//*Label 391*/ GIMT_Encode4(29578), // Rule ID 167 //
8711 /* 29572 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
8712 /* 29575 */ // MIs[0] root
8713 /* 29575 */ // No operand predicates
8714 /* 29575 */ // MIs[0] mi.shifted
8715 /* 29575 */ // No operand predicates
8716 /* 29575 */ // MIs[0] mi.amt
8717 /* 29575 */ // No operand predicates
8718 /* 29575 */ // Combiner Rule #114: shifts_too_big @ [mi[2]]
8719 /* 29575 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
8720 /* 29578 */ // Label 391: @29578
8721 /* 29578 */ GIM_Try, /*On fail goto*//*Label 392*/ GIMT_Encode4(29589), // Rule ID 269 //
8722 /* 29583 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
8723 /* 29586 */ // MIs[0] dst
8724 /* 29586 */ // No operand predicates
8725 /* 29586 */ // MIs[0] root.src
8726 /* 29586 */ // No operand predicates
8727 /* 29586 */ // MIs[0] root.amt
8728 /* 29586 */ // No operand predicates
8729 /* 29586 */ // Combiner Rule #192: bitfield_extract_from_shr @ [root[1]]
8730 /* 29586 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner90),
8731 /* 29589 */ // Label 392: @29589
8732 /* 29589 */ GIM_Try, /*On fail goto*//*Label 393*/ GIMT_Encode4(29600), // Rule ID 271 //
8733 /* 29594 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
8734 /* 29597 */ // MIs[0] dst
8735 /* 29597 */ // No operand predicates
8736 /* 29597 */ // MIs[0] root.src
8737 /* 29597 */ // No operand predicates
8738 /* 29597 */ // MIs[0] root.amt
8739 /* 29597 */ // No operand predicates
8740 /* 29597 */ // Combiner Rule #193: bitfield_extract_from_shr_and @ [root[1]]
8741 /* 29597 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
8742 /* 29600 */ // Label 393: @29600
8743 /* 29600 */ GIM_Reject,
8744 /* 29601 */ // Label 37: @29601
8745 /* 29601 */ GIM_Try, /*On fail goto*//*Label 394*/ GIMT_Encode4(29612), // Rule ID 237 //
8746 /* 29606 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
8747 /* 29609 */ // Combiner Rule #175: shift_immed_chain; wip_match_opcode 'G_ASHR'
8748 /* 29609 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
8749 /* 29612 */ // Label 394: @29612
8750 /* 29612 */ GIM_Try, /*On fail goto*//*Label 395*/ GIMT_Encode4(29623), // Rule ID 242 //
8751 /* 29617 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
8752 /* 29620 */ // Combiner Rule #176: shift_of_shifted_logic_chain; wip_match_opcode 'G_ASHR'
8753 /* 29620 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
8754 /* 29623 */ // Label 395: @29623
8755 /* 29623 */ GIM_Try, /*On fail goto*//*Label 396*/ GIMT_Encode4(29634), // Rule ID 275 //
8756 /* 29628 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
8757 /* 29631 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_ASHR'
8758 /* 29631 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
8759 /* 29634 */ // Label 396: @29634
8760 /* 29634 */ GIM_Try, /*On fail goto*//*Label 397*/ GIMT_Encode4(29645), // Rule ID 343 //
8761 /* 29639 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
8762 /* 29642 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_ASHR'
8763 /* 29642 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
8764 /* 29645 */ // Label 397: @29645
8765 /* 29645 */ GIM_Try, /*On fail goto*//*Label 398*/ GIMT_Encode4(29734), // Rule ID 451 //
8766 /* 29650 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule277Enabled),
8767 /* 29653 */ // MIs[0] dst
8768 /* 29653 */ // No operand predicates
8769 /* 29653 */ // MIs[0] sum
8770 /* 29653 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8771 /* 29657 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
8772 /* 29661 */ // MIs[1] inner
8773 /* 29661 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8774 /* 29665 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
8775 /* 29669 */ // MIs[2] ext1
8776 /* 29669 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
8777 /* 29673 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_SEXT),
8778 /* 29677 */ // MIs[3] x
8779 /* 29677 */ GIM_RecordRegType, /*MI*/3, /*Op*/1, /*TempTypeIdx*/255,
8780 /* 29681 */ // MIs[2] ext2
8781 /* 29681 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/4, /*MI*/2, /*OpIdx*/2, // MIs[4]
8782 /* 29685 */ GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_SEXT),
8783 /* 29689 */ // MIs[4] y
8784 /* 29689 */ // No operand predicates
8785 /* 29689 */ // MIs[1] Operand 2
8786 /* 29689 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
8787 /* 29693 */ // MIs[0] Operand 2
8788 /* 29693 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
8789 /* 29697 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner31),
8790 /* 29701 */ GIM_CheckIsSafeToFold, /*NumInsns*/4,
8791 /* 29703 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8792 /* 29706 */ // Combiner Rule #277: avgceil_s_match
8793 /* 29706 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SAVGCEIL),
8794 /* 29709 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8795 /* 29714 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // x
8796 /* 29718 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // y
8797 /* 29722 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
8798 /* 29726 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
8799 /* 29730 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
8800 /* 29733 */ GIR_EraseRootFromParent_Done,
8801 /* 29734 */ // Label 398: @29734
8802 /* 29734 */ GIM_Try, /*On fail goto*//*Label 399*/ GIMT_Encode4(29811), // Rule ID 449 //
8803 /* 29739 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule275Enabled),
8804 /* 29742 */ // MIs[0] dst
8805 /* 29742 */ // No operand predicates
8806 /* 29742 */ // MIs[0] sum
8807 /* 29742 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8808 /* 29746 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
8809 /* 29750 */ // MIs[1] ext1
8810 /* 29750 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8811 /* 29754 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
8812 /* 29758 */ // MIs[2] x
8813 /* 29758 */ GIM_RecordRegType, /*MI*/2, /*Op*/1, /*TempTypeIdx*/255,
8814 /* 29762 */ // MIs[1] ext2
8815 /* 29762 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
8816 /* 29766 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_SEXT),
8817 /* 29770 */ // MIs[3] y
8818 /* 29770 */ // No operand predicates
8819 /* 29770 */ // MIs[0] Operand 2
8820 /* 29770 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
8821 /* 29774 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner29),
8822 /* 29778 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
8823 /* 29780 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8824 /* 29783 */ // Combiner Rule #275: avgfloor_s_match
8825 /* 29783 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SAVGFLOOR),
8826 /* 29786 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8827 /* 29791 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // x
8828 /* 29795 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // y
8829 /* 29799 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
8830 /* 29803 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
8831 /* 29807 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
8832 /* 29810 */ GIR_EraseRootFromParent_Done,
8833 /* 29811 */ // Label 399: @29811
8834 /* 29811 */ GIM_Try, /*On fail goto*//*Label 400*/ GIMT_Encode4(29851), // Rule ID 134 //
8835 /* 29816 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
8836 /* 29819 */ // MIs[0] dst
8837 /* 29819 */ // No operand predicates
8838 /* 29819 */ // MIs[0] zero
8839 /* 29819 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8840 /* 29823 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8841 /* 29827 */ // MIs[1] Operand 1
8842 /* 29827 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
8843 /* 29838 */ // MIs[0] rhs
8844 /* 29838 */ // No operand predicates
8845 /* 29838 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8846 /* 29843 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8847 /* 29845 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[2]]
8848 /* 29845 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8849 /* 29850 */ GIR_EraseRootFromParent_Done,
8850 /* 29851 */ // Label 400: @29851
8851 /* 29851 */ GIM_Try, /*On fail goto*//*Label 401*/ GIMT_Encode4(29872), // Rule ID 94 //
8852 /* 29856 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
8853 /* 29859 */ // MIs[0] dst
8854 /* 29859 */ // No operand predicates
8855 /* 29859 */ // MIs[0] __binop_right_undef_to_undef_match_0.x
8856 /* 29859 */ // No operand predicates
8857 /* 29859 */ // MIs[0] __binop_right_undef_to_undef_match_0.y
8858 /* 29859 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8859 /* 29863 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8860 /* 29867 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8861 /* 29869 */ // Combiner Rule #80: binop_right_undef_to_undef @ [__binop_right_undef_to_undef_match_0[1]]
8862 /* 29869 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
8863 /* 29872 */ // Label 401: @29872
8864 /* 29872 */ GIM_Try, /*On fail goto*//*Label 402*/ GIMT_Encode4(29895), // Rule ID 123 //
8865 /* 29877 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
8866 /* 29880 */ // MIs[0] dst
8867 /* 29880 */ // No operand predicates
8868 /* 29880 */ // MIs[0] lhs
8869 /* 29880 */ // No operand predicates
8870 /* 29880 */ // MIs[0] Operand 2
8871 /* 29880 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
8872 /* 29884 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8873 /* 29889 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[5]]
8874 /* 29889 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8875 /* 29894 */ GIR_EraseRootFromParent_Done,
8876 /* 29895 */ // Label 402: @29895
8877 /* 29895 */ GIM_Try, /*On fail goto*//*Label 403*/ GIMT_Encode4(29906), // Rule ID 166 //
8878 /* 29900 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
8879 /* 29903 */ // MIs[0] root
8880 /* 29903 */ // No operand predicates
8881 /* 29903 */ // MIs[0] mi.shifted
8882 /* 29903 */ // No operand predicates
8883 /* 29903 */ // MIs[0] mi.amt
8884 /* 29903 */ // No operand predicates
8885 /* 29903 */ // Combiner Rule #114: shifts_too_big @ [mi[1]]
8886 /* 29903 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
8887 /* 29906 */ // Label 403: @29906
8888 /* 29906 */ GIM_Try, /*On fail goto*//*Label 404*/ GIMT_Encode4(29917), // Rule ID 178 //
8889 /* 29911 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule125Enabled),
8890 /* 29914 */ // MIs[0] dst
8891 /* 29914 */ // No operand predicates
8892 /* 29914 */ // MIs[0] src1
8893 /* 29914 */ // No operand predicates
8894 /* 29914 */ // MIs[0] src2
8895 /* 29914 */ // No operand predicates
8896 /* 29914 */ // Combiner Rule #125: shl_ashr_to_sext_inreg
8897 /* 29914 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
8898 /* 29917 */ // Label 404: @29917
8899 /* 29917 */ GIM_Try, /*On fail goto*//*Label 405*/ GIMT_Encode4(29928), // Rule ID 268 //
8900 /* 29922 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
8901 /* 29925 */ // MIs[0] dst
8902 /* 29925 */ // No operand predicates
8903 /* 29925 */ // MIs[0] root.src
8904 /* 29925 */ // No operand predicates
8905 /* 29925 */ // MIs[0] root.amt
8906 /* 29925 */ // No operand predicates
8907 /* 29925 */ // Combiner Rule #192: bitfield_extract_from_shr @ [root[0]]
8908 /* 29925 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner90),
8909 /* 29928 */ // Label 405: @29928
8910 /* 29928 */ GIM_Try, /*On fail goto*//*Label 406*/ GIMT_Encode4(29939), // Rule ID 270 //
8911 /* 29933 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
8912 /* 29936 */ // MIs[0] dst
8913 /* 29936 */ // No operand predicates
8914 /* 29936 */ // MIs[0] root.src
8915 /* 29936 */ // No operand predicates
8916 /* 29936 */ // MIs[0] root.amt
8917 /* 29936 */ // No operand predicates
8918 /* 29936 */ // Combiner Rule #193: bitfield_extract_from_shr_and @ [root[0]]
8919 /* 29936 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
8920 /* 29939 */ // Label 406: @29939
8921 /* 29939 */ GIM_Reject,
8922 /* 29940 */ // Label 38: @29940
8923 /* 29940 */ GIM_Try, /*On fail goto*//*Label 407*/ GIMT_Encode4(29960), // Rule ID 255 //
8924 /* 29945 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
8925 /* 29948 */ // MIs[0] x
8926 /* 29948 */ // No operand predicates
8927 /* 29948 */ // MIs[0] y
8928 /* 29948 */ // No operand predicates
8929 /* 29948 */ // MIs[0] z
8930 /* 29948 */ // No operand predicates
8931 /* 29948 */ // MIs[0] Operand 3
8932 /* 29948 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
8933 /* 29952 */ // Combiner Rule #182: funnel_shift_left_zero
8934 /* 29952 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8935 /* 29955 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
8936 /* 29957 */ GIR_RootToRootCopy, /*OpIdx*/1, // y
8937 /* 29959 */ GIR_EraseRootFromParent_Done,
8938 /* 29960 */ // Label 407: @29960
8939 /* 29960 */ GIM_Try, /*On fail goto*//*Label 408*/ GIMT_Encode4(29971), // Rule ID 252 //
8940 /* 29965 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
8941 /* 29968 */ // MIs[0] dst
8942 /* 29968 */ // No operand predicates
8943 /* 29968 */ // MIs[0] root.x
8944 /* 29968 */ // No operand predicates
8945 /* 29968 */ // MIs[0] root.y
8946 /* 29968 */ // No operand predicates
8947 /* 29968 */ // MIs[0] root.amt
8948 /* 29968 */ // No operand predicates
8949 /* 29968 */ // Combiner Rule #180: funnel_shift_to_rotate @ [root[0]]
8950 /* 29968 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
8951 /* 29971 */ // Label 408: @29971
8952 /* 29971 */ GIM_Try, /*On fail goto*//*Label 409*/ GIMT_Encode4(29982), // Rule ID 256 //
8953 /* 29976 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
8954 /* 29979 */ // MIs[0] dst
8955 /* 29979 */ // No operand predicates
8956 /* 29979 */ // MIs[0] root.x
8957 /* 29979 */ // No operand predicates
8958 /* 29979 */ // MIs[0] root.y
8959 /* 29979 */ // No operand predicates
8960 /* 29979 */ // MIs[0] root.amt
8961 /* 29979 */ // No operand predicates
8962 /* 29979 */ // Combiner Rule #183: funnel_shift_overshift @ [root[0]]
8963 /* 29979 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
8964 /* 29982 */ // Label 409: @29982
8965 /* 29982 */ GIM_Reject,
8966 /* 29983 */ // Label 39: @29983
8967 /* 29983 */ GIM_Try, /*On fail goto*//*Label 410*/ GIMT_Encode4(30003), // Rule ID 254 //
8968 /* 29988 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
8969 /* 29991 */ // MIs[0] x
8970 /* 29991 */ // No operand predicates
8971 /* 29991 */ // MIs[0] y
8972 /* 29991 */ // No operand predicates
8973 /* 29991 */ // MIs[0] z
8974 /* 29991 */ // No operand predicates
8975 /* 29991 */ // MIs[0] Operand 3
8976 /* 29991 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
8977 /* 29995 */ // Combiner Rule #181: funnel_shift_right_zero
8978 /* 29995 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8979 /* 29998 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
8980 /* 30000 */ GIR_RootToRootCopy, /*OpIdx*/2, // z
8981 /* 30002 */ GIR_EraseRootFromParent_Done,
8982 /* 30003 */ // Label 410: @30003
8983 /* 30003 */ GIM_Try, /*On fail goto*//*Label 411*/ GIMT_Encode4(30014), // Rule ID 253 //
8984 /* 30008 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
8985 /* 30011 */ // MIs[0] dst
8986 /* 30011 */ // No operand predicates
8987 /* 30011 */ // MIs[0] root.x
8988 /* 30011 */ // No operand predicates
8989 /* 30011 */ // MIs[0] root.y
8990 /* 30011 */ // No operand predicates
8991 /* 30011 */ // MIs[0] root.amt
8992 /* 30011 */ // No operand predicates
8993 /* 30011 */ // Combiner Rule #180: funnel_shift_to_rotate @ [root[1]]
8994 /* 30011 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
8995 /* 30014 */ // Label 411: @30014
8996 /* 30014 */ GIM_Try, /*On fail goto*//*Label 412*/ GIMT_Encode4(30025), // Rule ID 257 //
8997 /* 30019 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
8998 /* 30022 */ // MIs[0] dst
8999 /* 30022 */ // No operand predicates
9000 /* 30022 */ // MIs[0] root.x
9001 /* 30022 */ // No operand predicates
9002 /* 30022 */ // MIs[0] root.y
9003 /* 30022 */ // No operand predicates
9004 /* 30022 */ // MIs[0] root.amt
9005 /* 30022 */ // No operand predicates
9006 /* 30022 */ // Combiner Rule #183: funnel_shift_overshift @ [root[1]]
9007 /* 30022 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
9008 /* 30025 */ // Label 412: @30025
9009 /* 30025 */ GIM_Reject,
9010 /* 30026 */ // Label 40: @30026
9011 /* 30026 */ GIM_Try, /*On fail goto*//*Label 413*/ GIMT_Encode4(30049), // Rule ID 127 //
9012 /* 30031 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
9013 /* 30034 */ // MIs[0] dst
9014 /* 30034 */ // No operand predicates
9015 /* 30034 */ // MIs[0] lhs
9016 /* 30034 */ // No operand predicates
9017 /* 30034 */ // MIs[0] Operand 2
9018 /* 30034 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
9019 /* 30038 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9020 /* 30043 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[9]]
9021 /* 30043 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9022 /* 30048 */ GIR_EraseRootFromParent_Done,
9023 /* 30049 */ // Label 413: @30049
9024 /* 30049 */ GIM_Reject,
9025 /* 30050 */ // Label 41: @30050
9026 /* 30050 */ GIM_Try, /*On fail goto*//*Label 414*/ GIMT_Encode4(30073), // Rule ID 126 //
9027 /* 30055 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
9028 /* 30058 */ // MIs[0] dst
9029 /* 30058 */ // No operand predicates
9030 /* 30058 */ // MIs[0] lhs
9031 /* 30058 */ // No operand predicates
9032 /* 30058 */ // MIs[0] Operand 2
9033 /* 30058 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
9034 /* 30062 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9035 /* 30067 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[8]]
9036 /* 30067 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9037 /* 30072 */ GIR_EraseRootFromParent_Done,
9038 /* 30073 */ // Label 414: @30073
9039 /* 30073 */ GIM_Reject,
9040 /* 30074 */ // Label 42: @30074
9041 /* 30074 */ GIM_Try, /*On fail goto*//*Label 415*/ GIMT_Encode4(30085), // Rule ID 171 //
9042 /* 30079 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
9043 /* 30082 */ // MIs[0] root
9044 /* 30082 */ // No operand predicates
9045 /* 30082 */ // MIs[0] pred
9046 /* 30082 */ // No operand predicates
9047 /* 30082 */ // MIs[0] lhs
9048 /* 30082 */ // No operand predicates
9049 /* 30082 */ // MIs[0] rhs
9050 /* 30082 */ // No operand predicates
9051 /* 30082 */ // Combiner Rule #118: canonicalize_icmp
9052 /* 30082 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
9053 /* 30085 */ // Label 415: @30085
9054 /* 30085 */ GIM_Try, /*On fail goto*//*Label 416*/ GIMT_Encode4(30096), // Rule ID 173 //
9055 /* 30090 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule120Enabled),
9056 /* 30093 */ // MIs[0] dst
9057 /* 30093 */ // No operand predicates
9058 /* 30093 */ // MIs[0] pred
9059 /* 30093 */ // No operand predicates
9060 /* 30093 */ // MIs[0] src1
9061 /* 30093 */ // No operand predicates
9062 /* 30093 */ // MIs[0] src2
9063 /* 30093 */ // No operand predicates
9064 /* 30093 */ // Combiner Rule #120: icmp_to_true_false_known_bits
9065 /* 30093 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner53),
9066 /* 30096 */ // Label 416: @30096
9067 /* 30096 */ GIM_Try, /*On fail goto*//*Label 417*/ GIMT_Encode4(30107), // Rule ID 174 //
9068 /* 30101 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
9069 /* 30104 */ // MIs[0] dst
9070 /* 30104 */ // No operand predicates
9071 /* 30104 */ // MIs[0] pred
9072 /* 30104 */ // No operand predicates
9073 /* 30104 */ // MIs[0] src1
9074 /* 30104 */ // No operand predicates
9075 /* 30104 */ // MIs[0] src2
9076 /* 30104 */ // No operand predicates
9077 /* 30104 */ // Combiner Rule #121: icmp_to_lhs_known_bits
9078 /* 30104 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
9079 /* 30107 */ // Label 417: @30107
9080 /* 30107 */ GIM_Try, /*On fail goto*//*Label 418*/ GIMT_Encode4(30118), // Rule ID 177 //
9081 /* 30112 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule124Enabled),
9082 /* 30115 */ // MIs[0] dst
9083 /* 30115 */ // No operand predicates
9084 /* 30115 */ // MIs[0] pred
9085 /* 30115 */ // No operand predicates
9086 /* 30115 */ // MIs[0] src1
9087 /* 30115 */ // No operand predicates
9088 /* 30115 */ // MIs[0] src2
9089 /* 30115 */ // No operand predicates
9090 /* 30115 */ // Combiner Rule #124: redundant_binop_in_equality
9091 /* 30115 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
9092 /* 30118 */ // Label 418: @30118
9093 /* 30118 */ GIM_Reject,
9094 /* 30119 */ // Label 43: @30119
9095 /* 30119 */ GIM_Try, /*On fail goto*//*Label 419*/ GIMT_Encode4(30130), // Rule ID 172 //
9096 /* 30124 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
9097 /* 30127 */ // MIs[0] root
9098 /* 30127 */ // No operand predicates
9099 /* 30127 */ // MIs[0] pred
9100 /* 30127 */ // No operand predicates
9101 /* 30127 */ // MIs[0] lhs
9102 /* 30127 */ // No operand predicates
9103 /* 30127 */ // MIs[0] rhs
9104 /* 30127 */ // No operand predicates
9105 /* 30127 */ // Combiner Rule #119: canonicalize_fcmp
9106 /* 30127 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
9107 /* 30130 */ // Label 419: @30130
9108 /* 30130 */ GIM_Reject,
9109 /* 30131 */ // Label 44: @30131
9110 /* 30131 */ GIM_Try_CheckFeatures, /*On fail goto*//*Label 420*/ GIMT_Encode4(30157), GIMT_Encode2(GIFBS_HasFminFmaxLegacy), // Rule ID 456 //
9111 /* 30138 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule279Enabled),
9112 /* 30141 */ GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_f32,
9113 /* 30144 */ // MIs[0] cond
9114 /* 30144 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9115 /* 30148 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCMP),
9116 /* 30152 */ // MIs[1] pred
9117 /* 30152 */ // No operand predicates
9118 /* 30152 */ // MIs[1] lhs
9119 /* 30152 */ // No operand predicates
9120 /* 30152 */ // MIs[1] rhs
9121 /* 30152 */ // No operand predicates
9122 /* 30152 */ // MIs[0] true
9123 /* 30152 */ // No operand predicates
9124 /* 30152 */ // MIs[0] false
9125 /* 30152 */ // No operand predicates
9126 /* 30152 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9127 /* 30154 */ // Combiner Rule #279: fcmp_select_to_fmin_fmax_legacy
9128 /* 30154 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner149),
9129 /* 30157 */ // Label 420: @30157
9130 /* 30157 */ GIM_Try, /*On fail goto*//*Label 421*/ GIMT_Encode4(30206), // Rule ID 189 //
9131 /* 30162 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled),
9132 /* 30165 */ // MIs[0] dst
9133 /* 30165 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
9134 /* 30169 */ // MIs[0] c
9135 /* 30169 */ // No operand predicates
9136 /* 30169 */ // MIs[0] x
9137 /* 30169 */ // No operand predicates
9138 /* 30169 */ // MIs[0] Operand 3
9139 /* 30169 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
9140 /* 30173 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner16),
9141 /* 30177 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
9142 /* 30180 */ // Combiner Rule #136: select_zero_false
9143 /* 30180 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FREEZE),
9144 /* 30183 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
9145 /* 30188 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
9146 /* 30190 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
9147 /* 30194 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
9148 /* 30198 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // c
9149 /* 30202 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9150 /* 30205 */ GIR_EraseRootFromParent_Done,
9151 /* 30206 */ // Label 421: @30206
9152 /* 30206 */ GIM_Try, /*On fail goto*//*Label 422*/ GIMT_Encode4(30227), // Rule ID 187 //
9153 /* 30211 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule134Enabled),
9154 /* 30214 */ // MIs[0] root
9155 /* 30214 */ // No operand predicates
9156 /* 30214 */ // MIs[0] tst
9157 /* 30214 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9158 /* 30218 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
9159 /* 30222 */ // MIs[1] tst1
9160 /* 30222 */ // No operand predicates
9161 /* 30222 */ // MIs[1] a
9162 /* 30222 */ // No operand predicates
9163 /* 30222 */ // MIs[1] b
9164 /* 30222 */ // No operand predicates
9165 /* 30222 */ // MIs[0] x
9166 /* 30222 */ // No operand predicates
9167 /* 30222 */ // MIs[0] y
9168 /* 30222 */ // No operand predicates
9169 /* 30222 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9170 /* 30224 */ // Combiner Rule #134: select_to_iminmax
9171 /* 30224 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner61),
9172 /* 30227 */ // Label 422: @30227
9173 /* 30227 */ GIM_Try, /*On fail goto*//*Label 423*/ GIMT_Encode4(30263), // Rule ID 190 //
9174 /* 30232 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled),
9175 /* 30235 */ // MIs[0] dst
9176 /* 30235 */ // No operand predicates
9177 /* 30235 */ // MIs[0] c
9178 /* 30235 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9179 /* 30239 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
9180 /* 30243 */ // MIs[1] src
9181 /* 30243 */ // No operand predicates
9182 /* 30243 */ // MIs[1] Operand 2
9183 /* 30243 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 255,
9184 /* 30247 */ // MIs[0] x
9185 /* 30247 */ // No operand predicates
9186 /* 30247 */ // MIs[0] y
9187 /* 30247 */ // No operand predicates
9188 /* 30247 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9189 /* 30249 */ // Combiner Rule #137: select_not
9190 /* 30249 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SELECT),
9191 /* 30252 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9192 /* 30254 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
9193 /* 30258 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
9194 /* 30260 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
9195 /* 30262 */ GIR_EraseRootFromParent_Done,
9196 /* 30263 */ // Label 423: @30263
9197 /* 30263 */ GIM_Try, /*On fail goto*//*Label 424*/ GIMT_Encode4(30292), // Rule ID 183 //
9198 /* 30268 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule130Enabled),
9199 /* 30271 */ // MIs[0] dst
9200 /* 30271 */ // No operand predicates
9201 /* 30271 */ // MIs[0] undef
9202 /* 30271 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9203 /* 30275 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9204 /* 30279 */ // MIs[0] x
9205 /* 30279 */ // No operand predicates
9206 /* 30279 */ // MIs[0] y
9207 /* 30279 */ // No operand predicates
9208 /* 30279 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
9209 /* 30284 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9210 /* 30286 */ // Combiner Rule #130: select_undef_cmp
9211 /* 30286 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
9212 /* 30291 */ GIR_EraseRootFromParent_Done,
9213 /* 30292 */ // Label 424: @30292
9214 /* 30292 */ GIM_Try, /*On fail goto*//*Label 425*/ GIMT_Encode4(30332), // Rule ID 184 //
9215 /* 30297 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled),
9216 /* 30300 */ // MIs[0] dst
9217 /* 30300 */ // No operand predicates
9218 /* 30300 */ // MIs[0] cond
9219 /* 30300 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9220 /* 30304 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
9221 /* 30308 */ // MIs[1] Operand 1
9222 /* 30308 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
9223 /* 30319 */ // MIs[0] tval
9224 /* 30319 */ // No operand predicates
9225 /* 30319 */ // MIs[0] fval
9226 /* 30319 */ // No operand predicates
9227 /* 30319 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
9228 /* 30324 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9229 /* 30326 */ // Combiner Rule #131: select_constant_cmp_false
9230 /* 30326 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
9231 /* 30331 */ GIR_EraseRootFromParent_Done,
9232 /* 30332 */ // Label 425: @30332
9233 /* 30332 */ GIM_Try, /*On fail goto*//*Label 426*/ GIMT_Encode4(30372), // Rule ID 185 //
9234 /* 30337 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled),
9235 /* 30340 */ // MIs[0] dst
9236 /* 30340 */ // No operand predicates
9237 /* 30340 */ // MIs[0] cond
9238 /* 30340 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9239 /* 30344 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
9240 /* 30348 */ // MIs[1] Operand 1
9241 /* 30348 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(1),
9242 /* 30359 */ // MIs[0] tval
9243 /* 30359 */ // No operand predicates
9244 /* 30359 */ // MIs[0] fval
9245 /* 30359 */ // No operand predicates
9246 /* 30359 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9247 /* 30364 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9248 /* 30366 */ // Combiner Rule #132: select_constant_cmp_true
9249 /* 30366 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9250 /* 30371 */ GIR_EraseRootFromParent_Done,
9251 /* 30372 */ // Label 426: @30372
9252 /* 30372 */ GIM_Try, /*On fail goto*//*Label 427*/ GIMT_Encode4(30396), // Rule ID 116 //
9253 /* 30377 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
9254 /* 30380 */ // MIs[0] dst
9255 /* 30380 */ // No operand predicates
9256 /* 30380 */ // MIs[0] cond
9257 /* 30380 */ // No operand predicates
9258 /* 30380 */ // MIs[0] x
9259 /* 30380 */ // No operand predicates
9260 /* 30380 */ // MIs[0] x
9261 /* 30380 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/0, /*OtherOpIdx*/2,
9262 /* 30385 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9263 /* 30390 */ // Combiner Rule #88: select_same_val_trivial
9264 /* 30390 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9265 /* 30395 */ GIR_EraseRootFromParent_Done,
9266 /* 30396 */ // Label 427: @30396
9267 /* 30396 */ GIM_Try, /*On fail goto*//*Label 428*/ GIMT_Encode4(30419), // Rule ID 117 //
9268 /* 30401 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
9269 /* 30404 */ // MIs[0] dst
9270 /* 30404 */ // No operand predicates
9271 /* 30404 */ // MIs[0] cond
9272 /* 30404 */ // No operand predicates
9273 /* 30404 */ // MIs[0] tval
9274 /* 30404 */ // No operand predicates
9275 /* 30404 */ // MIs[0] fval
9276 /* 30404 */ // No operand predicates
9277 /* 30404 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
9278 /* 30408 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9279 /* 30413 */ // Combiner Rule #89: select_same_val_equiv
9280 /* 30413 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9281 /* 30418 */ GIR_EraseRootFromParent_Done,
9282 /* 30419 */ // Label 428: @30419
9283 /* 30419 */ GIM_Try, /*On fail goto*//*Label 429*/ GIMT_Encode4(30430), // Rule ID 186 //
9284 /* 30424 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule133Enabled),
9285 /* 30427 */ // MIs[0] dst
9286 /* 30427 */ // No operand predicates
9287 /* 30427 */ // MIs[0] cond
9288 /* 30427 */ // No operand predicates
9289 /* 30427 */ // MIs[0] tval
9290 /* 30427 */ // No operand predicates
9291 /* 30427 */ // MIs[0] fval
9292 /* 30427 */ // No operand predicates
9293 /* 30427 */ // Combiner Rule #133: select_constant_cmp_general
9294 /* 30427 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner60),
9295 /* 30430 */ // Label 429: @30430
9296 /* 30430 */ GIM_Try, /*On fail goto*//*Label 430*/ GIMT_Encode4(30441), // Rule ID 188 //
9297 /* 30435 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule135Enabled),
9298 /* 30438 */ // MIs[0] dst
9299 /* 30438 */ // No operand predicates
9300 /* 30438 */ // MIs[0] cond
9301 /* 30438 */ // No operand predicates
9302 /* 30438 */ // MIs[0] tval
9303 /* 30438 */ // No operand predicates
9304 /* 30438 */ // MIs[0] fval
9305 /* 30438 */ // No operand predicates
9306 /* 30438 */ // Combiner Rule #135: match_selects
9307 /* 30438 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner62),
9308 /* 30441 */ // Label 430: @30441
9309 /* 30441 */ GIM_Try, /*On fail goto*//*Label 431*/ GIMT_Encode4(30452), // Rule ID 367 //
9310 /* 30446 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule225Enabled),
9311 /* 30449 */ // MIs[0] dst
9312 /* 30449 */ // No operand predicates
9313 /* 30449 */ // MIs[0] cond
9314 /* 30449 */ // No operand predicates
9315 /* 30449 */ // MIs[0] tval
9316 /* 30449 */ // No operand predicates
9317 /* 30449 */ // MIs[0] fval
9318 /* 30449 */ // No operand predicates
9319 /* 30449 */ // Combiner Rule #225: select_to_minmax
9320 /* 30449 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner116),
9321 /* 30452 */ // Label 431: @30452
9322 /* 30452 */ GIM_Reject,
9323 /* 30453 */ // Label 45: @30453
9324 /* 30453 */ GIM_Try, /*On fail goto*//*Label 432*/ GIMT_Encode4(30464), // Rule ID 378 //
9325 /* 30458 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9326 /* 30461 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDO'
9327 /* 30461 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9328 /* 30464 */ // Label 432: @30464
9329 /* 30464 */ GIM_Try, /*On fail goto*//*Label 433*/ GIMT_Encode4(30475), // Rule ID 426 //
9330 /* 30469 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule256Enabled),
9331 /* 30472 */ // Combiner Rule #256: match_addos; wip_match_opcode 'G_UADDO'
9332 /* 30472 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner141),
9333 /* 30475 */ // Label 433: @30475
9334 /* 30475 */ GIM_Reject,
9335 /* 30476 */ // Label 46: @30476
9336 /* 30476 */ GIM_Try, /*On fail goto*//*Label 434*/ GIMT_Encode4(30487), // Rule ID 225 //
9337 /* 30481 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
9338 /* 30484 */ // Combiner Rule #170: adde_to_addo; wip_match_opcode 'G_UADDE'
9339 /* 30484 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
9340 /* 30487 */ // Label 434: @30487
9341 /* 30487 */ GIM_Reject,
9342 /* 30488 */ // Label 47: @30488
9343 /* 30488 */ GIM_Try, /*On fail goto*//*Label 435*/ GIMT_Encode4(30499), // Rule ID 428 //
9344 /* 30493 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule257Enabled),
9345 /* 30496 */ // Combiner Rule #257: match_subo_no_overflow; wip_match_opcode 'G_USUBO'
9346 /* 30496 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner142),
9347 /* 30499 */ // Label 435: @30499
9348 /* 30499 */ GIM_Reject,
9349 /* 30500 */ // Label 48: @30500
9350 /* 30500 */ GIM_Try, /*On fail goto*//*Label 436*/ GIMT_Encode4(30511), // Rule ID 227 //
9351 /* 30505 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
9352 /* 30508 */ // Combiner Rule #170: adde_to_addo; wip_match_opcode 'G_USUBE'
9353 /* 30508 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
9354 /* 30511 */ // Label 436: @30511
9355 /* 30511 */ GIM_Reject,
9356 /* 30512 */ // Label 49: @30512
9357 /* 30512 */ GIM_Try, /*On fail goto*//*Label 437*/ GIMT_Encode4(30523), // Rule ID 379 //
9358 /* 30517 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9359 /* 30520 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDO'
9360 /* 30520 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9361 /* 30523 */ // Label 437: @30523
9362 /* 30523 */ GIM_Try, /*On fail goto*//*Label 438*/ GIMT_Encode4(30534), // Rule ID 425 //
9363 /* 30528 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule256Enabled),
9364 /* 30531 */ // Combiner Rule #256: match_addos; wip_match_opcode 'G_SADDO'
9365 /* 30531 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner141),
9366 /* 30534 */ // Label 438: @30534
9367 /* 30534 */ GIM_Reject,
9368 /* 30535 */ // Label 50: @30535
9369 /* 30535 */ GIM_Try, /*On fail goto*//*Label 439*/ GIMT_Encode4(30546), // Rule ID 226 //
9370 /* 30540 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
9371 /* 30543 */ // Combiner Rule #170: adde_to_addo; wip_match_opcode 'G_SADDE'
9372 /* 30543 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
9373 /* 30546 */ // Label 439: @30546
9374 /* 30546 */ GIM_Reject,
9375 /* 30547 */ // Label 51: @30547
9376 /* 30547 */ GIM_Try, /*On fail goto*//*Label 440*/ GIMT_Encode4(30558), // Rule ID 427 //
9377 /* 30552 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule257Enabled),
9378 /* 30555 */ // Combiner Rule #257: match_subo_no_overflow; wip_match_opcode 'G_SSUBO'
9379 /* 30555 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner142),
9380 /* 30558 */ // Label 440: @30558
9381 /* 30558 */ GIM_Reject,
9382 /* 30559 */ // Label 52: @30559
9383 /* 30559 */ GIM_Try, /*On fail goto*//*Label 441*/ GIMT_Encode4(30570), // Rule ID 228 //
9384 /* 30564 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
9385 /* 30567 */ // Combiner Rule #170: adde_to_addo; wip_match_opcode 'G_SSUBE'
9386 /* 30567 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
9387 /* 30570 */ // Label 441: @30570
9388 /* 30570 */ GIM_Reject,
9389 /* 30571 */ // Label 53: @30571
9390 /* 30571 */ GIM_Try, /*On fail goto*//*Label 442*/ GIMT_Encode4(30582), // Rule ID 221 //
9391 /* 30576 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
9392 /* 30579 */ // Combiner Rule #168: mulo_by_2; wip_match_opcode 'G_UMULO'
9393 /* 30579 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner75),
9394 /* 30582 */ // Label 442: @30582
9395 /* 30582 */ GIM_Try, /*On fail goto*//*Label 443*/ GIMT_Encode4(30593), // Rule ID 223 //
9396 /* 30587 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
9397 /* 30590 */ // Combiner Rule #169: mulo_by_0; wip_match_opcode 'G_UMULO'
9398 /* 30590 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76),
9399 /* 30593 */ // Label 443: @30593
9400 /* 30593 */ GIM_Try, /*On fail goto*//*Label 444*/ GIMT_Encode4(30604), // Rule ID 380 //
9401 /* 30598 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9402 /* 30601 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULO'
9403 /* 30601 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9404 /* 30604 */ // Label 444: @30604
9405 /* 30604 */ GIM_Reject,
9406 /* 30605 */ // Label 54: @30605
9407 /* 30605 */ GIM_Try, /*On fail goto*//*Label 445*/ GIMT_Encode4(30616), // Rule ID 222 //
9408 /* 30610 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
9409 /* 30613 */ // Combiner Rule #168: mulo_by_2; wip_match_opcode 'G_SMULO'
9410 /* 30613 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner75),
9411 /* 30616 */ // Label 445: @30616
9412 /* 30616 */ GIM_Try, /*On fail goto*//*Label 446*/ GIMT_Encode4(30627), // Rule ID 224 //
9413 /* 30621 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
9414 /* 30624 */ // Combiner Rule #169: mulo_by_0; wip_match_opcode 'G_SMULO'
9415 /* 30624 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76),
9416 /* 30627 */ // Label 446: @30627
9417 /* 30627 */ GIM_Try, /*On fail goto*//*Label 447*/ GIMT_Encode4(30638), // Rule ID 381 //
9418 /* 30632 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9419 /* 30635 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULO'
9420 /* 30635 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9421 /* 30638 */ // Label 447: @30638
9422 /* 30638 */ GIM_Reject,
9423 /* 30639 */ // Label 55: @30639
9424 /* 30639 */ GIM_Try, /*On fail goto*//*Label 448*/ GIMT_Encode4(30650), // Rule ID 382 //
9425 /* 30644 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9426 /* 30647 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULH'
9427 /* 30647 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9428 /* 30650 */ // Label 448: @30650
9429 /* 30650 */ GIM_Try, /*On fail goto*//*Label 449*/ GIMT_Encode4(30661), // Rule ID 316 //
9430 /* 30655 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
9431 /* 30658 */ // MIs[0] dst
9432 /* 30658 */ // No operand predicates
9433 /* 30658 */ // MIs[0] src1
9434 /* 30658 */ // No operand predicates
9435 /* 30658 */ // MIs[0] src2
9436 /* 30658 */ // No operand predicates
9437 /* 30658 */ // Combiner Rule #200: mulh_to_lshr
9438 /* 30658 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
9439 /* 30661 */ // Label 449: @30661
9440 /* 30661 */ GIM_Reject,
9441 /* 30662 */ // Label 56: @30662
9442 /* 30662 */ GIM_Try, /*On fail goto*//*Label 450*/ GIMT_Encode4(30673), // Rule ID 383 //
9443 /* 30667 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9444 /* 30670 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULH'
9445 /* 30670 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9446 /* 30673 */ // Label 450: @30673
9447 /* 30673 */ GIM_Reject,
9448 /* 30674 */ // Label 57: @30674
9449 /* 30674 */ GIM_Try, /*On fail goto*//*Label 451*/ GIMT_Encode4(30685), // Rule ID 384 //
9450 /* 30679 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9451 /* 30682 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDSAT'
9452 /* 30682 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9453 /* 30685 */ // Label 451: @30685
9454 /* 30685 */ GIM_Reject,
9455 /* 30686 */ // Label 58: @30686
9456 /* 30686 */ GIM_Try, /*On fail goto*//*Label 452*/ GIMT_Encode4(30697), // Rule ID 385 //
9457 /* 30691 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9458 /* 30694 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDSAT'
9459 /* 30694 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9460 /* 30697 */ // Label 452: @30697
9461 /* 30697 */ GIM_Reject,
9462 /* 30698 */ // Label 59: @30698
9463 /* 30698 */ GIM_Try, /*On fail goto*//*Label 453*/ GIMT_Encode4(30709), // Rule ID 240 //
9464 /* 30703 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
9465 /* 30706 */ // Combiner Rule #175: shift_immed_chain; wip_match_opcode 'G_USHLSAT'
9466 /* 30706 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
9467 /* 30709 */ // Label 453: @30709
9468 /* 30709 */ GIM_Try, /*On fail goto*//*Label 454*/ GIMT_Encode4(30720), // Rule ID 244 //
9469 /* 30714 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
9470 /* 30717 */ // Combiner Rule #176: shift_of_shifted_logic_chain; wip_match_opcode 'G_USHLSAT'
9471 /* 30717 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
9472 /* 30720 */ // Label 454: @30720
9473 /* 30720 */ GIM_Reject,
9474 /* 30721 */ // Label 60: @30721
9475 /* 30721 */ GIM_Try, /*On fail goto*//*Label 455*/ GIMT_Encode4(30732), // Rule ID 239 //
9476 /* 30726 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
9477 /* 30729 */ // Combiner Rule #175: shift_immed_chain; wip_match_opcode 'G_SSHLSAT'
9478 /* 30729 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
9479 /* 30732 */ // Label 455: @30732
9480 /* 30732 */ GIM_Try, /*On fail goto*//*Label 456*/ GIMT_Encode4(30743), // Rule ID 245 //
9481 /* 30737 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
9482 /* 30740 */ // Combiner Rule #176: shift_of_shifted_logic_chain; wip_match_opcode 'G_SSHLSAT'
9483 /* 30740 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
9484 /* 30743 */ // Label 456: @30743
9485 /* 30743 */ GIM_Reject,
9486 /* 30744 */ // Label 61: @30744
9487 /* 30744 */ GIM_Try, /*On fail goto*//*Label 457*/ GIMT_Encode4(30755), // Rule ID 386 //
9488 /* 30749 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9489 /* 30752 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIX'
9490 /* 30752 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9491 /* 30755 */ // Label 457: @30755
9492 /* 30755 */ GIM_Reject,
9493 /* 30756 */ // Label 62: @30756
9494 /* 30756 */ GIM_Try, /*On fail goto*//*Label 458*/ GIMT_Encode4(30767), // Rule ID 387 //
9495 /* 30761 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9496 /* 30764 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIX'
9497 /* 30764 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9498 /* 30767 */ // Label 458: @30767
9499 /* 30767 */ GIM_Reject,
9500 /* 30768 */ // Label 63: @30768
9501 /* 30768 */ GIM_Try, /*On fail goto*//*Label 459*/ GIMT_Encode4(30779), // Rule ID 388 //
9502 /* 30773 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9503 /* 30776 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIXSAT'
9504 /* 30776 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9505 /* 30779 */ // Label 459: @30779
9506 /* 30779 */ GIM_Reject,
9507 /* 30780 */ // Label 64: @30780
9508 /* 30780 */ GIM_Try, /*On fail goto*//*Label 460*/ GIMT_Encode4(30791), // Rule ID 389 //
9509 /* 30785 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
9510 /* 30788 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIXSAT'
9511 /* 30788 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
9512 /* 30791 */ // Label 460: @30791
9513 /* 30791 */ GIM_Reject,
9514 /* 30792 */ // Label 65: @30792
9515 /* 30792 */ GIM_Try, /*On fail goto*//*Label 461*/ GIMT_Encode4(30803), // Rule ID 317 //
9516 /* 30797 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
9517 /* 30800 */ // Combiner Rule #201: redundant_neg_operands_fadd_fsub; wip_match_opcode 'G_FADD'
9518 /* 30800 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
9519 /* 30803 */ // Label 461: @30803
9520 /* 30803 */ GIM_Try, /*On fail goto*//*Label 462*/ GIMT_Encode4(30814), // Rule ID 350 //
9521 /* 30808 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
9522 /* 30811 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FADD'
9523 /* 30811 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9524 /* 30814 */ // Label 462: @30814
9525 /* 30814 */ GIM_Try, /*On fail goto*//*Label 463*/ GIMT_Encode4(30825), // Rule ID 390 //
9526 /* 30819 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
9527 /* 30822 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FADD'
9528 /* 30822 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
9529 /* 30825 */ // Label 463: @30825
9530 /* 30825 */ GIM_Try, /*On fail goto*//*Label 464*/ GIMT_Encode4(30848), // Rule ID 156 //
9531 /* 30830 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
9532 /* 30833 */ // MIs[0] dst
9533 /* 30833 */ // No operand predicates
9534 /* 30833 */ // MIs[0] x
9535 /* 30833 */ // No operand predicates
9536 /* 30833 */ // MIs[0] y
9537 /* 30833 */ // No operand predicates
9538 /* 30833 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
9539 /* 30837 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9540 /* 30842 */ // Combiner Rule #108: right_identity_neg_zero_fp
9541 /* 30842 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9542 /* 30847 */ GIR_EraseRootFromParent_Done,
9543 /* 30848 */ // Label 464: @30848
9544 /* 30848 */ GIM_Try, /*On fail goto*//*Label 465*/ GIMT_Encode4(30877), // Rule ID 157 //
9545 /* 30853 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule109Enabled),
9546 /* 30856 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmNsz),
9547 /* 30862 */ // MIs[0] dst
9548 /* 30862 */ // No operand predicates
9549 /* 30862 */ // MIs[0] x
9550 /* 30862 */ // No operand predicates
9551 /* 30862 */ // MIs[0] y
9552 /* 30862 */ // No operand predicates
9553 /* 30862 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner11),
9554 /* 30866 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9555 /* 30871 */ // Combiner Rule #109: right_identity_neg_zero_fp_nsz
9556 /* 30871 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9557 /* 30876 */ GIR_EraseRootFromParent_Done,
9558 /* 30877 */ // Label 465: @30877
9559 /* 30877 */ GIM_Try, /*On fail goto*//*Label 466*/ GIMT_Encode4(30888), // Rule ID 290 //
9560 /* 30882 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9561 /* 30885 */ // MIs[0] d
9562 /* 30885 */ // No operand predicates
9563 /* 30885 */ // MIs[0] mi.src0
9564 /* 30885 */ // No operand predicates
9565 /* 30885 */ // MIs[0] mi.src1
9566 /* 30885 */ // No operand predicates
9567 /* 30885 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[0]]
9568 /* 30885 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
9569 /* 30888 */ // Label 466: @30888
9570 /* 30888 */ GIM_Try, /*On fail goto*//*Label 467*/ GIMT_Encode4(30899), // Rule ID 324 //
9571 /* 30893 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
9572 /* 30896 */ // MIs[0] dst
9573 /* 30896 */ // No operand predicates
9574 /* 30896 */ // MIs[0] src1
9575 /* 30896 */ // No operand predicates
9576 /* 30896 */ // MIs[0] src2
9577 /* 30896 */ // No operand predicates
9578 /* 30896 */ // Combiner Rule #207: combine_fadd_fmul_to_fmad_or_fma
9579 /* 30896 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner100),
9580 /* 30899 */ // Label 467: @30899
9581 /* 30899 */ GIM_Try, /*On fail goto*//*Label 468*/ GIMT_Encode4(30910), // Rule ID 325 //
9582 /* 30904 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
9583 /* 30907 */ // MIs[0] dst
9584 /* 30907 */ // No operand predicates
9585 /* 30907 */ // MIs[0] src1
9586 /* 30907 */ // No operand predicates
9587 /* 30907 */ // MIs[0] src2
9588 /* 30907 */ // No operand predicates
9589 /* 30907 */ // Combiner Rule #208: combine_fadd_fpext_fmul_to_fmad_or_fma
9590 /* 30907 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
9591 /* 30910 */ // Label 468: @30910
9592 /* 30910 */ GIM_Try, /*On fail goto*//*Label 469*/ GIMT_Encode4(30921), // Rule ID 326 //
9593 /* 30915 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
9594 /* 30918 */ // MIs[0] dst
9595 /* 30918 */ // No operand predicates
9596 /* 30918 */ // MIs[0] src1
9597 /* 30918 */ // No operand predicates
9598 /* 30918 */ // MIs[0] src2
9599 /* 30918 */ // No operand predicates
9600 /* 30918 */ // Combiner Rule #209: combine_fadd_fma_fmul_to_fmad_or_fma
9601 /* 30918 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
9602 /* 30921 */ // Label 469: @30921
9603 /* 30921 */ GIM_Try, /*On fail goto*//*Label 470*/ GIMT_Encode4(30932), // Rule ID 327 //
9604 /* 30926 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
9605 /* 30929 */ // MIs[0] dst
9606 /* 30929 */ // No operand predicates
9607 /* 30929 */ // MIs[0] src1
9608 /* 30929 */ // No operand predicates
9609 /* 30929 */ // MIs[0] src2
9610 /* 30929 */ // No operand predicates
9611 /* 30929 */ // Combiner Rule #210: combine_fadd_fpext_fma_fmul_to_fmad_or_fma
9612 /* 30929 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
9613 /* 30932 */ // Label 470: @30932
9614 /* 30932 */ GIM_Reject,
9615 /* 30933 */ // Label 66: @30933
9616 /* 30933 */ GIM_Try, /*On fail goto*//*Label 471*/ GIMT_Encode4(30944), // Rule ID 318 //
9617 /* 30938 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
9618 /* 30941 */ // Combiner Rule #201: redundant_neg_operands_fadd_fsub; wip_match_opcode 'G_FSUB'
9619 /* 30941 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
9620 /* 30944 */ // Label 471: @30944
9621 /* 30944 */ GIM_Try, /*On fail goto*//*Label 472*/ GIMT_Encode4(30955), // Rule ID 351 //
9622 /* 30949 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
9623 /* 30952 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FSUB'
9624 /* 30952 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9625 /* 30955 */ // Label 472: @30955
9626 /* 30955 */ GIM_Try, /*On fail goto*//*Label 473*/ GIMT_Encode4(30966), // Rule ID 291 //
9627 /* 30960 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9628 /* 30963 */ // MIs[0] d
9629 /* 30963 */ // No operand predicates
9630 /* 30963 */ // MIs[0] mi.src0
9631 /* 30963 */ // No operand predicates
9632 /* 30963 */ // MIs[0] mi.src1
9633 /* 30963 */ // No operand predicates
9634 /* 30963 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[1]]
9635 /* 30963 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
9636 /* 30966 */ // Label 473: @30966
9637 /* 30966 */ GIM_Try, /*On fail goto*//*Label 474*/ GIMT_Encode4(30977), // Rule ID 328 //
9638 /* 30971 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
9639 /* 30974 */ // MIs[0] dst
9640 /* 30974 */ // No operand predicates
9641 /* 30974 */ // MIs[0] src1
9642 /* 30974 */ // No operand predicates
9643 /* 30974 */ // MIs[0] src2
9644 /* 30974 */ // No operand predicates
9645 /* 30974 */ // Combiner Rule #211: combine_fsub_fmul_to_fmad_or_fma
9646 /* 30974 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
9647 /* 30977 */ // Label 474: @30977
9648 /* 30977 */ GIM_Try, /*On fail goto*//*Label 475*/ GIMT_Encode4(30988), // Rule ID 329 //
9649 /* 30982 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
9650 /* 30985 */ // MIs[0] dst
9651 /* 30985 */ // No operand predicates
9652 /* 30985 */ // MIs[0] src1
9653 /* 30985 */ // No operand predicates
9654 /* 30985 */ // MIs[0] src2
9655 /* 30985 */ // No operand predicates
9656 /* 30985 */ // Combiner Rule #212: combine_fsub_fneg_fmul_to_fmad_or_fma
9657 /* 30985 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
9658 /* 30988 */ // Label 475: @30988
9659 /* 30988 */ GIM_Try, /*On fail goto*//*Label 476*/ GIMT_Encode4(30999), // Rule ID 330 //
9660 /* 30993 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
9661 /* 30996 */ // MIs[0] dst
9662 /* 30996 */ // No operand predicates
9663 /* 30996 */ // MIs[0] src1
9664 /* 30996 */ // No operand predicates
9665 /* 30996 */ // MIs[0] src2
9666 /* 30996 */ // No operand predicates
9667 /* 30996 */ // Combiner Rule #213: combine_fsub_fpext_fmul_to_fmad_or_fma
9668 /* 30996 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
9669 /* 30999 */ // Label 476: @30999
9670 /* 30999 */ GIM_Try, /*On fail goto*//*Label 477*/ GIMT_Encode4(31010), // Rule ID 331 //
9671 /* 31004 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
9672 /* 31007 */ // MIs[0] dst
9673 /* 31007 */ // No operand predicates
9674 /* 31007 */ // MIs[0] src1
9675 /* 31007 */ // No operand predicates
9676 /* 31007 */ // MIs[0] src2
9677 /* 31007 */ // No operand predicates
9678 /* 31007 */ // Combiner Rule #214: combine_fsub_fpext_fneg_fmul_to_fmad_or_fma
9679 /* 31007 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
9680 /* 31010 */ // Label 477: @31010
9681 /* 31010 */ GIM_Try, /*On fail goto*//*Label 478*/ GIMT_Encode4(31021), // Rule ID 368 //
9682 /* 31015 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule226Enabled),
9683 /* 31018 */ // MIs[0] dst
9684 /* 31018 */ // No operand predicates
9685 /* 31018 */ // MIs[0] src1
9686 /* 31018 */ // No operand predicates
9687 /* 31018 */ // MIs[0] src2
9688 /* 31018 */ // No operand predicates
9689 /* 31018 */ // Combiner Rule #226: fsub_to_fneg
9690 /* 31018 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner117),
9691 /* 31021 */ // Label 478: @31021
9692 /* 31021 */ GIM_Reject,
9693 /* 31022 */ // Label 67: @31022
9694 /* 31022 */ GIM_Try, /*On fail goto*//*Label 479*/ GIMT_Encode4(31033), // Rule ID 349 //
9695 /* 31027 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
9696 /* 31030 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FMUL'
9697 /* 31030 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9698 /* 31033 */ // Label 479: @31033
9699 /* 31033 */ GIM_Try, /*On fail goto*//*Label 480*/ GIMT_Encode4(31044), // Rule ID 391 //
9700 /* 31038 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
9701 /* 31041 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMUL'
9702 /* 31041 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
9703 /* 31044 */ // Label 480: @31044
9704 /* 31044 */ GIM_Try, /*On fail goto*//*Label 481*/ GIMT_Encode4(31087), // Rule ID 319 //
9705 /* 31049 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule202Enabled),
9706 /* 31052 */ // MIs[0] dst
9707 /* 31052 */ // No operand predicates
9708 /* 31052 */ // MIs[0] nx
9709 /* 31052 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9710 /* 31056 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
9711 /* 31060 */ // MIs[1] x
9712 /* 31060 */ // No operand predicates
9713 /* 31060 */ // MIs[0] ny
9714 /* 31060 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
9715 /* 31064 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
9716 /* 31068 */ // MIs[2] y
9717 /* 31068 */ // No operand predicates
9718 /* 31068 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9719 /* 31070 */ // Combiner Rule #202: G_FMUL_fneg_fneg
9720 /* 31070 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMUL),
9721 /* 31073 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9722 /* 31075 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
9723 /* 31079 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
9724 /* 31083 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
9725 /* 31086 */ GIR_EraseRootFromParent_Done,
9726 /* 31087 */ // Label 481: @31087
9727 /* 31087 */ GIM_Try, /*On fail goto*//*Label 482*/ GIMT_Encode4(31108), // Rule ID 458 //
9728 /* 31092 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule281Enabled),
9729 /* 31095 */ // MIs[0] dst
9730 /* 31095 */ // No operand predicates
9731 /* 31095 */ // MIs[0] x
9732 /* 31095 */ // No operand predicates
9733 /* 31095 */ // MIs[0] select
9734 /* 31095 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9735 /* 31099 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
9736 /* 31103 */ // MIs[1] y
9737 /* 31103 */ // No operand predicates
9738 /* 31103 */ // MIs[1] A
9739 /* 31103 */ // No operand predicates
9740 /* 31103 */ // MIs[1] B
9741 /* 31103 */ // No operand predicates
9742 /* 31103 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9743 /* 31105 */ // Combiner Rule #281: combine_fmul_with_select_to_fldexp
9744 /* 31105 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner151),
9745 /* 31108 */ // Label 482: @31108
9746 /* 31108 */ GIM_Try, /*On fail goto*//*Label 483*/ GIMT_Encode4(31131), // Rule ID 146 //
9747 /* 31113 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule100Enabled),
9748 /* 31116 */ // MIs[0] dst
9749 /* 31116 */ // No operand predicates
9750 /* 31116 */ // MIs[0] x
9751 /* 31116 */ // No operand predicates
9752 /* 31116 */ // MIs[0] y
9753 /* 31116 */ // No operand predicates
9754 /* 31116 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner8),
9755 /* 31120 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9756 /* 31125 */ // Combiner Rule #100: right_identity_one_fp
9757 /* 31125 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9758 /* 31130 */ GIR_EraseRootFromParent_Done,
9759 /* 31131 */ // Label 483: @31131
9760 /* 31131 */ GIM_Try, /*On fail goto*//*Label 484*/ GIMT_Encode4(31151), // Rule ID 158 //
9761 /* 31136 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled),
9762 /* 31139 */ // MIs[0] dst
9763 /* 31139 */ // No operand predicates
9764 /* 31139 */ // MIs[0] x
9765 /* 31139 */ // No operand predicates
9766 /* 31139 */ // MIs[0] y
9767 /* 31139 */ // No operand predicates
9768 /* 31139 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
9769 /* 31143 */ // Combiner Rule #110: right_identity_neg_one_fp
9770 /* 31143 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
9771 /* 31146 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9772 /* 31148 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
9773 /* 31150 */ GIR_EraseRootFromParent_Done,
9774 /* 31151 */ // Label 484: @31151
9775 /* 31151 */ GIM_Try, /*On fail goto*//*Label 485*/ GIMT_Encode4(31162), // Rule ID 292 //
9776 /* 31156 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9777 /* 31159 */ // MIs[0] d
9778 /* 31159 */ // No operand predicates
9779 /* 31159 */ // MIs[0] mi.src0
9780 /* 31159 */ // No operand predicates
9781 /* 31159 */ // MIs[0] mi.src1
9782 /* 31159 */ // No operand predicates
9783 /* 31159 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[2]]
9784 /* 31159 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
9785 /* 31162 */ // Label 485: @31162
9786 /* 31162 */ GIM_Reject,
9787 /* 31163 */ // Label 68: @31163
9788 /* 31163 */ GIM_Try, /*On fail goto*//*Label 486*/ GIMT_Encode4(31208), // Rule ID 322 //
9789 /* 31168 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule205Enabled),
9790 /* 31171 */ // MIs[0] dst
9791 /* 31171 */ // No operand predicates
9792 /* 31171 */ // MIs[0] nx
9793 /* 31171 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9794 /* 31175 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
9795 /* 31179 */ // MIs[1] x
9796 /* 31179 */ // No operand predicates
9797 /* 31179 */ // MIs[0] ny
9798 /* 31179 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
9799 /* 31183 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
9800 /* 31187 */ // MIs[2] y
9801 /* 31187 */ // No operand predicates
9802 /* 31187 */ // MIs[0] z
9803 /* 31187 */ // No operand predicates
9804 /* 31187 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9805 /* 31189 */ // Combiner Rule #205: G_FMA_fneg_fneg
9806 /* 31189 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMA),
9807 /* 31192 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9808 /* 31194 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
9809 /* 31198 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
9810 /* 31202 */ GIR_RootToRootCopy, /*OpIdx*/3, // z
9811 /* 31204 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
9812 /* 31207 */ GIR_EraseRootFromParent_Done,
9813 /* 31208 */ // Label 486: @31208
9814 /* 31208 */ GIM_Try, /*On fail goto*//*Label 487*/ GIMT_Encode4(31219), // Rule ID 303 //
9815 /* 31213 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule196Enabled),
9816 /* 31216 */ // MIs[0] dst
9817 /* 31216 */ // No operand predicates
9818 /* 31216 */ // MIs[0] d.src0
9819 /* 31216 */ // No operand predicates
9820 /* 31216 */ // MIs[0] d.src1
9821 /* 31216 */ // No operand predicates
9822 /* 31216 */ // MIs[0] d.src2
9823 /* 31216 */ // No operand predicates
9824 /* 31216 */ // Combiner Rule #196: constant_fold_fma @ [d[1]]
9825 /* 31216 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
9826 /* 31219 */ // Label 487: @31219
9827 /* 31219 */ GIM_Reject,
9828 /* 31220 */ // Label 69: @31220
9829 /* 31220 */ GIM_Try, /*On fail goto*//*Label 488*/ GIMT_Encode4(31265), // Rule ID 321 //
9830 /* 31225 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
9831 /* 31228 */ // MIs[0] dst
9832 /* 31228 */ // No operand predicates
9833 /* 31228 */ // MIs[0] nx
9834 /* 31228 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9835 /* 31232 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
9836 /* 31236 */ // MIs[1] x
9837 /* 31236 */ // No operand predicates
9838 /* 31236 */ // MIs[0] ny
9839 /* 31236 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
9840 /* 31240 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
9841 /* 31244 */ // MIs[2] y
9842 /* 31244 */ // No operand predicates
9843 /* 31244 */ // MIs[0] z
9844 /* 31244 */ // No operand predicates
9845 /* 31244 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9846 /* 31246 */ // Combiner Rule #204: G_FMAD_fneg_fneg
9847 /* 31246 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMAD),
9848 /* 31249 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9849 /* 31251 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
9850 /* 31255 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
9851 /* 31259 */ GIR_RootToRootCopy, /*OpIdx*/3, // z
9852 /* 31261 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
9853 /* 31264 */ GIR_EraseRootFromParent_Done,
9854 /* 31265 */ // Label 488: @31265
9855 /* 31265 */ GIM_Try, /*On fail goto*//*Label 489*/ GIMT_Encode4(31276), // Rule ID 302 //
9856 /* 31270 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule196Enabled),
9857 /* 31273 */ // MIs[0] dst
9858 /* 31273 */ // No operand predicates
9859 /* 31273 */ // MIs[0] d.src0
9860 /* 31273 */ // No operand predicates
9861 /* 31273 */ // MIs[0] d.src1
9862 /* 31273 */ // No operand predicates
9863 /* 31273 */ // MIs[0] d.src2
9864 /* 31273 */ // No operand predicates
9865 /* 31273 */ // Combiner Rule #196: constant_fold_fma @ [d[0]]
9866 /* 31273 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
9867 /* 31276 */ // Label 489: @31276
9868 /* 31276 */ GIM_Reject,
9869 /* 31277 */ // Label 70: @31277
9870 /* 31277 */ GIM_Try, /*On fail goto*//*Label 490*/ GIMT_Encode4(31288), // Rule ID 352 //
9871 /* 31282 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
9872 /* 31285 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FDIV'
9873 /* 31285 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9874 /* 31288 */ // Label 490: @31288
9875 /* 31288 */ GIM_Try, /*On fail goto*//*Label 491*/ GIMT_Encode4(31327), // Rule ID 472 //
9876 /* 31293 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule291Enabled),
9877 /* 31296 */ GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_f16,
9878 /* 31299 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_f16,
9879 /* 31302 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmContract),
9880 /* 31308 */ // MIs[0] y
9881 /* 31308 */ // No operand predicates
9882 /* 31308 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9883 /* 31312 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSQRT),
9884 /* 31316 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::FmContract),
9885 /* 31322 */ // MIs[1] x
9886 /* 31322 */ // No operand predicates
9887 /* 31322 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9888 /* 31324 */ // Combiner Rule #291: fdiv_by_sqrt_to_rsq_f16
9889 /* 31324 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner156),
9890 /* 31327 */ // Label 491: @31327
9891 /* 31327 */ GIM_Try, /*On fail goto*//*Label 492*/ GIMT_Encode4(31370), // Rule ID 320 //
9892 /* 31332 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule203Enabled),
9893 /* 31335 */ // MIs[0] dst
9894 /* 31335 */ // No operand predicates
9895 /* 31335 */ // MIs[0] nx
9896 /* 31335 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9897 /* 31339 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
9898 /* 31343 */ // MIs[1] x
9899 /* 31343 */ // No operand predicates
9900 /* 31343 */ // MIs[0] ny
9901 /* 31343 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
9902 /* 31347 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
9903 /* 31351 */ // MIs[2] y
9904 /* 31351 */ // No operand predicates
9905 /* 31351 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9906 /* 31353 */ // Combiner Rule #203: G_FDIV_fneg_fneg
9907 /* 31353 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FDIV),
9908 /* 31356 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9909 /* 31358 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
9910 /* 31362 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
9911 /* 31366 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
9912 /* 31369 */ GIR_EraseRootFromParent_Done,
9913 /* 31370 */ // Label 492: @31370
9914 /* 31370 */ GIM_Try, /*On fail goto*//*Label 493*/ GIMT_Encode4(31381), // Rule ID 293 //
9915 /* 31375 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9916 /* 31378 */ // MIs[0] d
9917 /* 31378 */ // No operand predicates
9918 /* 31378 */ // MIs[0] mi.src0
9919 /* 31378 */ // No operand predicates
9920 /* 31378 */ // MIs[0] mi.src1
9921 /* 31378 */ // No operand predicates
9922 /* 31378 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[3]]
9923 /* 31378 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
9924 /* 31381 */ // Label 493: @31381
9925 /* 31381 */ GIM_Try, /*On fail goto*//*Label 494*/ GIMT_Encode4(31392), // Rule ID 365 //
9926 /* 31386 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule223Enabled),
9927 /* 31389 */ // MIs[0] dst
9928 /* 31389 */ // No operand predicates
9929 /* 31389 */ // MIs[0] src1
9930 /* 31389 */ // No operand predicates
9931 /* 31389 */ // MIs[0] src2
9932 /* 31389 */ // No operand predicates
9933 /* 31389 */ // Combiner Rule #223: fdiv_repeated_divison
9934 /* 31389 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114),
9935 /* 31392 */ // Label 494: @31392
9936 /* 31392 */ GIM_Reject,
9937 /* 31393 */ // Label 71: @31393
9938 /* 31393 */ GIM_Try, /*On fail goto*//*Label 495*/ GIMT_Encode4(31404), // Rule ID 353 //
9939 /* 31398 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
9940 /* 31401 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FREM'
9941 /* 31401 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9942 /* 31404 */ // Label 495: @31404
9943 /* 31404 */ GIM_Try, /*On fail goto*//*Label 496*/ GIMT_Encode4(31415), // Rule ID 294 //
9944 /* 31409 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9945 /* 31412 */ // MIs[0] d
9946 /* 31412 */ // No operand predicates
9947 /* 31412 */ // MIs[0] mi.src0
9948 /* 31412 */ // No operand predicates
9949 /* 31412 */ // MIs[0] mi.src1
9950 /* 31412 */ // No operand predicates
9951 /* 31412 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[4]]
9952 /* 31412 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
9953 /* 31415 */ // Label 496: @31415
9954 /* 31415 */ GIM_Reject,
9955 /* 31416 */ // Label 72: @31416
9956 /* 31416 */ GIM_Try, /*On fail goto*//*Label 497*/ GIMT_Encode4(31437), // Rule ID 233 //
9957 /* 31421 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
9958 /* 31424 */ // MIs[0] dst
9959 /* 31424 */ // No operand predicates
9960 /* 31424 */ // MIs[0] float
9961 /* 31424 */ // No operand predicates
9962 /* 31424 */ // MIs[0] int
9963 /* 31424 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9964 /* 31428 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
9965 /* 31432 */ // MIs[1] imm
9966 /* 31432 */ // No operand predicates
9967 /* 31432 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9968 /* 31434 */ // Combiner Rule #172: expand_const_fpowi
9969 /* 31434 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
9970 /* 31437 */ // Label 497: @31437
9971 /* 31437 */ GIM_Reject,
9972 /* 31438 */ // Label 73: @31438
9973 /* 31438 */ GIM_Try, /*On fail goto*//*Label 498*/ GIMT_Encode4(31459), // Rule ID 207 //
9974 /* 31443 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule154Enabled),
9975 /* 31446 */ // MIs[0] dst
9976 /* 31446 */ // No operand predicates
9977 /* 31446 */ // MIs[0] src0
9978 /* 31446 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9979 /* 31450 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
9980 /* 31454 */ // MIs[1] cst
9981 /* 31454 */ // No operand predicates
9982 /* 31454 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9983 /* 31456 */ // Combiner Rule #154: constant_fold_flog2
9984 /* 31456 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
9985 /* 31459 */ // Label 498: @31459
9986 /* 31459 */ GIM_Reject,
9987 /* 31460 */ // Label 74: @31460
9988 /* 31460 */ GIM_Try, /*On fail goto*//*Label 499*/ GIMT_Encode4(31481), // Rule ID 204 //
9989 /* 31465 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
9990 /* 31468 */ // MIs[0] dst
9991 /* 31468 */ // No operand predicates
9992 /* 31468 */ // MIs[0] src0
9993 /* 31468 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9994 /* 31472 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
9995 /* 31476 */ // MIs[1] cst
9996 /* 31476 */ // No operand predicates
9997 /* 31476 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9998 /* 31478 */ // Combiner Rule #151: constant_fold_fneg
9999 /* 31478 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
10000 /* 31481 */ // Label 499: @31481
10001 /* 31481 */ GIM_Try, /*On fail goto*//*Label 500*/ GIMT_Encode4(31510), // Rule ID 144 //
10002 /* 31486 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule98Enabled),
10003 /* 31489 */ // MIs[0] dst
10004 /* 31489 */ // No operand predicates
10005 /* 31489 */ // MIs[0] t
10006 /* 31489 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10007 /* 31493 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
10008 /* 31497 */ // MIs[1] src
10009 /* 31497 */ // No operand predicates
10010 /* 31497 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
10011 /* 31502 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10012 /* 31504 */ // Combiner Rule #98: fneg_fneg_fold
10013 /* 31504 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
10014 /* 31509 */ GIR_EraseRootFromParent_Done,
10015 /* 31510 */ // Label 500: @31510
10016 /* 31510 */ GIM_Try, /*On fail goto*//*Label 501*/ GIMT_Encode4(31521), // Rule ID 466 //
10017 /* 31515 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule285Enabled),
10018 /* 31518 */ // MIs[0] dst
10019 /* 31518 */ // No operand predicates
10020 /* 31518 */ // MIs[0] src
10021 /* 31518 */ // No operand predicates
10022 /* 31518 */ // Combiner Rule #285: foldable_fneg
10023 /* 31518 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner154),
10024 /* 31521 */ // Label 501: @31521
10025 /* 31521 */ GIM_Reject,
10026 /* 31522 */ // Label 75: @31522
10027 /* 31522 */ GIM_Try, /*On fail goto*//*Label 502*/ GIMT_Encode4(31543), // Rule ID 209 //
10028 /* 31527 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
10029 /* 31530 */ // MIs[0] dst
10030 /* 31530 */ // No operand predicates
10031 /* 31530 */ // MIs[0] src0
10032 /* 31530 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10033 /* 31534 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
10034 /* 31538 */ // MIs[1] cst
10035 /* 31538 */ // No operand predicates
10036 /* 31538 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10037 /* 31540 */ // Combiner Rule #156: constant_fold_fpext
10038 /* 31540 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
10039 /* 31543 */ // Label 502: @31543
10040 /* 31543 */ GIM_Reject,
10041 /* 31544 */ // Label 76: @31544
10042 /* 31544 */ GIM_Try_CheckFeatures, /*On fail goto*//*Label 503*/ GIMT_Encode4(31567), GIMT_Encode2(GIFBS_Has16BitInsts_NotHasMed3_16), // Rule ID 457 //
10043 /* 31551 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule280Enabled),
10044 /* 31554 */ // MIs[0] fptrunc_dst
10045 /* 31554 */ // No operand predicates
10046 /* 31554 */ // MIs[0] fmed3_dst
10047 /* 31554 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10048 /* 31558 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(AMDGPU::G_AMDGPU_FMED3),
10049 /* 31562 */ // MIs[1] src0
10050 /* 31562 */ // No operand predicates
10051 /* 31562 */ // MIs[1] src1
10052 /* 31562 */ // No operand predicates
10053 /* 31562 */ // MIs[1] src2
10054 /* 31562 */ // No operand predicates
10055 /* 31562 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10056 /* 31564 */ // Combiner Rule #280: expand_promoted_fmed3
10057 /* 31564 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner150),
10058 /* 31567 */ // Label 503: @31567
10059 /* 31567 */ GIM_Try, /*On fail goto*//*Label 504*/ GIMT_Encode4(31588), // Rule ID 208 //
10060 /* 31572 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
10061 /* 31575 */ // MIs[0] dst
10062 /* 31575 */ // No operand predicates
10063 /* 31575 */ // MIs[0] src0
10064 /* 31575 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10065 /* 31579 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
10066 /* 31583 */ // MIs[1] cst
10067 /* 31583 */ // No operand predicates
10068 /* 31583 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10069 /* 31585 */ // Combiner Rule #155: constant_fold_fptrunc
10070 /* 31585 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
10071 /* 31588 */ // Label 504: @31588
10072 /* 31588 */ GIM_Try, /*On fail goto*//*Label 505*/ GIMT_Encode4(31609), // Rule ID 155 //
10073 /* 31593 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
10074 /* 31596 */ // MIs[0] dst
10075 /* 31596 */ // No operand predicates
10076 /* 31596 */ // MIs[0] src1
10077 /* 31596 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10078 /* 31600 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
10079 /* 31604 */ // MIs[1] src0
10080 /* 31604 */ // No operand predicates
10081 /* 31604 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10082 /* 31606 */ // Combiner Rule #107: fptrunc_fpext_fold
10083 /* 31606 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner44),
10084 /* 31609 */ // Label 505: @31609
10085 /* 31609 */ GIM_Reject,
10086 /* 31610 */ // Label 77: @31610
10087 /* 31610 */ GIM_Try, /*On fail goto*//*Label 506*/ GIMT_Encode4(31631), // Rule ID 102 //
10088 /* 31615 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
10089 /* 31618 */ // MIs[0] dst
10090 /* 31618 */ // No operand predicates
10091 /* 31618 */ // MIs[0] __unary_undef_to_undef_match_0.x
10092 /* 31618 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10093 /* 31622 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10094 /* 31626 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10095 /* 31628 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[5]]
10096 /* 31628 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
10097 /* 31631 */ // Label 506: @31631
10098 /* 31631 */ GIM_Reject,
10099 /* 31632 */ // Label 78: @31632
10100 /* 31632 */ GIM_Try, /*On fail goto*//*Label 507*/ GIMT_Encode4(31653), // Rule ID 103 //
10101 /* 31637 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
10102 /* 31640 */ // MIs[0] dst
10103 /* 31640 */ // No operand predicates
10104 /* 31640 */ // MIs[0] __unary_undef_to_undef_match_0.x
10105 /* 31640 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10106 /* 31644 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10107 /* 31648 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10108 /* 31650 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[6]]
10109 /* 31650 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
10110 /* 31653 */ // Label 507: @31653
10111 /* 31653 */ GIM_Reject,
10112 /* 31654 */ // Label 79: @31654
10113 /* 31654 */ GIM_Try, /*On fail goto*//*Label 508*/ GIMT_Encode4(31675), // Rule ID 83 //
10114 /* 31659 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
10115 /* 31662 */ // MIs[0] dst
10116 /* 31662 */ // No operand predicates
10117 /* 31662 */ // MIs[0] __undef_to_fp_zero_match_0.x
10118 /* 31662 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10119 /* 31666 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10120 /* 31670 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10121 /* 31672 */ // Combiner Rule #76: undef_to_fp_zero @ [__undef_to_fp_zero_match_0[1]]
10122 /* 31672 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
10123 /* 31675 */ // Label 508: @31675
10124 /* 31675 */ GIM_Try, /*On fail goto*//*Label 509*/ GIMT_Encode4(31690), // Rule ID 217 //
10125 /* 31680 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
10126 /* 31683 */ // MIs[0] dst
10127 /* 31683 */ // No operand predicates
10128 /* 31683 */ // MIs[0] Operand 1
10129 /* 31683 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
10130 /* 31687 */ // Combiner Rule #164: itof_const_zero_fold_si
10131 /* 31687 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
10132 /* 31690 */ // Label 509: @31690
10133 /* 31690 */ GIM_Try, /*On fail goto*//*Label 510*/ GIMT_Encode4(31701), // Rule ID 460 //
10134 /* 31695 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule282Enabled),
10135 /* 31698 */ // MIs[0] dst
10136 /* 31698 */ // No operand predicates
10137 /* 31698 */ // MIs[0] itofp.src
10138 /* 31698 */ // No operand predicates
10139 /* 31698 */ // Combiner Rule #282: uchar_to_float @ [itofp[1]]
10140 /* 31698 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner152),
10141 /* 31701 */ // Label 510: @31701
10142 /* 31701 */ GIM_Reject,
10143 /* 31702 */ // Label 80: @31702
10144 /* 31702 */ GIM_Try, /*On fail goto*//*Label 511*/ GIMT_Encode4(31723), // Rule ID 82 //
10145 /* 31707 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
10146 /* 31710 */ // MIs[0] dst
10147 /* 31710 */ // No operand predicates
10148 /* 31710 */ // MIs[0] __undef_to_fp_zero_match_0.x
10149 /* 31710 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10150 /* 31714 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10151 /* 31718 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10152 /* 31720 */ // Combiner Rule #76: undef_to_fp_zero @ [__undef_to_fp_zero_match_0[0]]
10153 /* 31720 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
10154 /* 31723 */ // Label 511: @31723
10155 /* 31723 */ GIM_Try, /*On fail goto*//*Label 512*/ GIMT_Encode4(31738), // Rule ID 218 //
10156 /* 31728 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
10157 /* 31731 */ // MIs[0] dst
10158 /* 31731 */ // No operand predicates
10159 /* 31731 */ // MIs[0] Operand 1
10160 /* 31731 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
10161 /* 31735 */ // Combiner Rule #165: itof_const_zero_fold_ui
10162 /* 31735 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
10163 /* 31738 */ // Label 512: @31738
10164 /* 31738 */ GIM_Try, /*On fail goto*//*Label 513*/ GIMT_Encode4(31749), // Rule ID 459 //
10165 /* 31743 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule282Enabled),
10166 /* 31746 */ // MIs[0] dst
10167 /* 31746 */ // No operand predicates
10168 /* 31746 */ // MIs[0] itofp.src
10169 /* 31746 */ // No operand predicates
10170 /* 31746 */ // Combiner Rule #282: uchar_to_float @ [itofp[0]]
10171 /* 31746 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner152),
10172 /* 31749 */ // Label 513: @31749
10173 /* 31749 */ GIM_Reject,
10174 /* 31750 */ // Label 81: @31750
10175 /* 31750 */ GIM_Try, /*On fail goto*//*Label 514*/ GIMT_Encode4(31779), // Rule ID 26 //
10176 /* 31755 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
10177 /* 31758 */ // MIs[0] dst
10178 /* 31758 */ // No operand predicates
10179 /* 31758 */ // MIs[0] src
10180 /* 31758 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10181 /* 31762 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
10182 /* 31766 */ // MIs[1] __idempotent_prop_match_0.x
10183 /* 31766 */ // No operand predicates
10184 /* 31766 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10185 /* 31771 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10186 /* 31773 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[1]]
10187 /* 31773 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10188 /* 31778 */ GIR_EraseRootFromParent_Done,
10189 /* 31779 */ // Label 514: @31779
10190 /* 31779 */ GIM_Try, /*On fail goto*//*Label 515*/ GIMT_Encode4(31800), // Rule ID 205 //
10191 /* 31784 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
10192 /* 31787 */ // MIs[0] dst
10193 /* 31787 */ // No operand predicates
10194 /* 31787 */ // MIs[0] src0
10195 /* 31787 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10196 /* 31791 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
10197 /* 31795 */ // MIs[1] cst
10198 /* 31795 */ // No operand predicates
10199 /* 31795 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10200 /* 31797 */ // Combiner Rule #152: constant_fold_fabs
10201 /* 31797 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
10202 /* 31800 */ // Label 515: @31800
10203 /* 31800 */ GIM_Try, /*On fail goto*//*Label 516*/ GIMT_Encode4(31828), // Rule ID 315 //
10204 /* 31805 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule199Enabled),
10205 /* 31808 */ // MIs[0] dst
10206 /* 31808 */ // No operand predicates
10207 /* 31808 */ // MIs[0] tmp
10208 /* 31808 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10209 /* 31812 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
10210 /* 31816 */ // MIs[1] x
10211 /* 31816 */ // No operand predicates
10212 /* 31816 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10213 /* 31818 */ // Combiner Rule #199: fabs_fneg_fold
10214 /* 31818 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FABS),
10215 /* 31821 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10216 /* 31823 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
10217 /* 31827 */ GIR_EraseRootFromParent_Done,
10218 /* 31828 */ // Label 516: @31828
10219 /* 31828 */ GIM_Try, /*On fail goto*//*Label 517*/ GIMT_Encode4(31849), // Rule ID 467 //
10220 /* 31833 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule286Enabled),
10221 /* 31836 */ // MIs[0] dst
10222 /* 31836 */ // No operand predicates
10223 /* 31836 */ // MIs[0] round
10224 /* 31836 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10225 /* 31840 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPTRUNC),
10226 /* 31844 */ // MIs[1] src
10227 /* 31844 */ // No operand predicates
10228 /* 31844 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10229 /* 31846 */ // Combiner Rule #286: fold_fabs_fptrunc
10230 /* 31846 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner155),
10231 /* 31849 */ // Label 517: @31849
10232 /* 31849 */ GIM_Reject,
10233 /* 31850 */ // Label 82: @31850
10234 /* 31850 */ GIM_Try, /*On fail goto*//*Label 518*/ GIMT_Encode4(31861), // Rule ID 295 //
10235 /* 31855 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
10236 /* 31858 */ // MIs[0] d
10237 /* 31858 */ // No operand predicates
10238 /* 31858 */ // MIs[0] mi.src0
10239 /* 31858 */ // No operand predicates
10240 /* 31858 */ // MIs[0] mi.src1
10241 /* 31858 */ // No operand predicates
10242 /* 31858 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[5]]
10243 /* 31858 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
10244 /* 31861 */ // Label 518: @31861
10245 /* 31861 */ GIM_Reject,
10246 /* 31862 */ // Label 83: @31862
10247 /* 31862 */ GIM_Try, /*On fail goto*//*Label 519*/ GIMT_Encode4(31891), // Rule ID 27 //
10248 /* 31867 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
10249 /* 31870 */ // MIs[0] dst
10250 /* 31870 */ // No operand predicates
10251 /* 31870 */ // MIs[0] src
10252 /* 31870 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10253 /* 31874 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCANONICALIZE),
10254 /* 31878 */ // MIs[1] __idempotent_prop_match_0.x
10255 /* 31878 */ // No operand predicates
10256 /* 31878 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10257 /* 31883 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10258 /* 31885 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[2]]
10259 /* 31885 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10260 /* 31890 */ GIR_EraseRootFromParent_Done,
10261 /* 31891 */ // Label 519: @31891
10262 /* 31891 */ GIM_Try, /*On fail goto*//*Label 520*/ GIMT_Encode4(31914), // Rule ID 465 //
10263 /* 31896 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule284Enabled),
10264 /* 31899 */ // MIs[0] dst
10265 /* 31899 */ // No operand predicates
10266 /* 31899 */ // MIs[0] src
10267 /* 31899 */ // No operand predicates
10268 /* 31899 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner32),
10269 /* 31903 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10270 /* 31908 */ // Combiner Rule #284: remove_fcanonicalize
10271 /* 31908 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10272 /* 31913 */ GIR_EraseRootFromParent_Done,
10273 /* 31914 */ // Label 520: @31914
10274 /* 31914 */ GIM_Reject,
10275 /* 31915 */ // Label 84: @31915
10276 /* 31915 */ GIM_Try, /*On fail goto*//*Label 521*/ GIMT_Encode4(31926), // Rule ID 354 //
10277 /* 31920 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
10278 /* 31923 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FMINNUM'
10279 /* 31923 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
10280 /* 31926 */ // Label 521: @31926
10281 /* 31926 */ GIM_Try, /*On fail goto*//*Label 522*/ GIMT_Encode4(31937), // Rule ID 392 //
10282 /* 31931 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
10283 /* 31934 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM'
10284 /* 31934 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
10285 /* 31937 */ // Label 522: @31937
10286 /* 31937 */ GIM_Try, /*On fail goto*//*Label 523*/ GIMT_Encode4(31948), // Rule ID 229 //
10287 /* 31942 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
10288 /* 31945 */ // MIs[0] dst
10289 /* 31945 */ // No operand predicates
10290 /* 31945 */ // MIs[0] root.src0
10291 /* 31945 */ // No operand predicates
10292 /* 31945 */ // MIs[0] root.src1
10293 /* 31945 */ // No operand predicates
10294 /* 31945 */ // Combiner Rule #171: combine_minmax_nan @ [root[0]]
10295 /* 31945 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
10296 /* 31948 */ // Label 523: @31948
10297 /* 31948 */ GIM_Try, /*On fail goto*//*Label 524*/ GIMT_Encode4(31959), // Rule ID 296 //
10298 /* 31953 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
10299 /* 31956 */ // MIs[0] d
10300 /* 31956 */ // No operand predicates
10301 /* 31956 */ // MIs[0] mi.src0
10302 /* 31956 */ // No operand predicates
10303 /* 31956 */ // MIs[0] mi.src1
10304 /* 31956 */ // No operand predicates
10305 /* 31956 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[6]]
10306 /* 31956 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
10307 /* 31959 */ // Label 524: @31959
10308 /* 31959 */ GIM_Reject,
10309 /* 31960 */ // Label 85: @31960
10310 /* 31960 */ GIM_Try, /*On fail goto*//*Label 525*/ GIMT_Encode4(31971), // Rule ID 355 //
10311 /* 31965 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
10312 /* 31968 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FMAXNUM'
10313 /* 31968 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
10314 /* 31971 */ // Label 525: @31971
10315 /* 31971 */ GIM_Try, /*On fail goto*//*Label 526*/ GIMT_Encode4(31982), // Rule ID 393 //
10316 /* 31976 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
10317 /* 31979 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM'
10318 /* 31979 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
10319 /* 31982 */ // Label 526: @31982
10320 /* 31982 */ GIM_Try, /*On fail goto*//*Label 527*/ GIMT_Encode4(31993), // Rule ID 230 //
10321 /* 31987 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
10322 /* 31990 */ // MIs[0] dst
10323 /* 31990 */ // No operand predicates
10324 /* 31990 */ // MIs[0] root.src0
10325 /* 31990 */ // No operand predicates
10326 /* 31990 */ // MIs[0] root.src1
10327 /* 31990 */ // No operand predicates
10328 /* 31990 */ // Combiner Rule #171: combine_minmax_nan @ [root[1]]
10329 /* 31990 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
10330 /* 31993 */ // Label 527: @31993
10331 /* 31993 */ GIM_Try, /*On fail goto*//*Label 528*/ GIMT_Encode4(32004), // Rule ID 297 //
10332 /* 31998 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
10333 /* 32001 */ // MIs[0] d
10334 /* 32001 */ // No operand predicates
10335 /* 32001 */ // MIs[0] mi.src0
10336 /* 32001 */ // No operand predicates
10337 /* 32001 */ // MIs[0] mi.src1
10338 /* 32001 */ // No operand predicates
10339 /* 32001 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[7]]
10340 /* 32001 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
10341 /* 32004 */ // Label 528: @32004
10342 /* 32004 */ GIM_Reject,
10343 /* 32005 */ // Label 86: @32005
10344 /* 32005 */ GIM_Try, /*On fail goto*//*Label 529*/ GIMT_Encode4(32016), // Rule ID 394 //
10345 /* 32010 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
10346 /* 32013 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM_IEEE'
10347 /* 32013 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
10348 /* 32016 */ // Label 529: @32016
10349 /* 32016 */ GIM_Reject,
10350 /* 32017 */ // Label 87: @32017
10351 /* 32017 */ GIM_Try, /*On fail goto*//*Label 530*/ GIMT_Encode4(32028), // Rule ID 395 //
10352 /* 32022 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
10353 /* 32025 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM_IEEE'
10354 /* 32025 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
10355 /* 32028 */ // Label 530: @32028
10356 /* 32028 */ GIM_Reject,
10357 /* 32029 */ // Label 88: @32029
10358 /* 32029 */ GIM_Try, /*On fail goto*//*Label 531*/ GIMT_Encode4(32040), // Rule ID 356 //
10359 /* 32034 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
10360 /* 32037 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FMINIMUM'
10361 /* 32037 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
10362 /* 32040 */ // Label 531: @32040
10363 /* 32040 */ GIM_Try, /*On fail goto*//*Label 532*/ GIMT_Encode4(32051), // Rule ID 396 //
10364 /* 32045 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
10365 /* 32048 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINIMUM'
10366 /* 32048 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
10367 /* 32051 */ // Label 532: @32051
10368 /* 32051 */ GIM_Try, /*On fail goto*//*Label 533*/ GIMT_Encode4(32062), // Rule ID 231 //
10369 /* 32056 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
10370 /* 32059 */ // MIs[0] dst
10371 /* 32059 */ // No operand predicates
10372 /* 32059 */ // MIs[0] root.src0
10373 /* 32059 */ // No operand predicates
10374 /* 32059 */ // MIs[0] root.src1
10375 /* 32059 */ // No operand predicates
10376 /* 32059 */ // Combiner Rule #171: combine_minmax_nan @ [root[2]]
10377 /* 32059 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
10378 /* 32062 */ // Label 533: @32062
10379 /* 32062 */ GIM_Try, /*On fail goto*//*Label 534*/ GIMT_Encode4(32073), // Rule ID 298 //
10380 /* 32067 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
10381 /* 32070 */ // MIs[0] d
10382 /* 32070 */ // No operand predicates
10383 /* 32070 */ // MIs[0] mi.src0
10384 /* 32070 */ // No operand predicates
10385 /* 32070 */ // MIs[0] mi.src1
10386 /* 32070 */ // No operand predicates
10387 /* 32070 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[8]]
10388 /* 32070 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
10389 /* 32073 */ // Label 534: @32073
10390 /* 32073 */ GIM_Reject,
10391 /* 32074 */ // Label 89: @32074
10392 /* 32074 */ GIM_Try, /*On fail goto*//*Label 535*/ GIMT_Encode4(32085), // Rule ID 357 //
10393 /* 32079 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
10394 /* 32082 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_FMAXIMUM'
10395 /* 32082 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
10396 /* 32085 */ // Label 535: @32085
10397 /* 32085 */ GIM_Try, /*On fail goto*//*Label 536*/ GIMT_Encode4(32096), // Rule ID 397 //
10398 /* 32090 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
10399 /* 32093 */ // Combiner Rule #228: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXIMUM'
10400 /* 32093 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
10401 /* 32096 */ // Label 536: @32096
10402 /* 32096 */ GIM_Try, /*On fail goto*//*Label 537*/ GIMT_Encode4(32107), // Rule ID 232 //
10403 /* 32101 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
10404 /* 32104 */ // MIs[0] dst
10405 /* 32104 */ // No operand predicates
10406 /* 32104 */ // MIs[0] root.src0
10407 /* 32104 */ // No operand predicates
10408 /* 32104 */ // MIs[0] root.src1
10409 /* 32104 */ // No operand predicates
10410 /* 32104 */ // Combiner Rule #171: combine_minmax_nan @ [root[3]]
10411 /* 32104 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
10412 /* 32107 */ // Label 537: @32107
10413 /* 32107 */ GIM_Try, /*On fail goto*//*Label 538*/ GIMT_Encode4(32118), // Rule ID 299 //
10414 /* 32112 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
10415 /* 32115 */ // MIs[0] d
10416 /* 32115 */ // No operand predicates
10417 /* 32115 */ // MIs[0] mi.src0
10418 /* 32115 */ // No operand predicates
10419 /* 32115 */ // MIs[0] mi.src1
10420 /* 32115 */ // No operand predicates
10421 /* 32115 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[9]]
10422 /* 32115 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
10423 /* 32118 */ // Label 538: @32118
10424 /* 32118 */ GIM_Reject,
10425 /* 32119 */ // Label 90: @32119
10426 /* 32119 */ GIM_Try, /*On fail goto*//*Label 539*/ GIMT_Encode4(32130), // Rule ID 300 //
10427 /* 32124 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
10428 /* 32127 */ // MIs[0] d
10429 /* 32127 */ // No operand predicates
10430 /* 32127 */ // MIs[0] mi.src0
10431 /* 32127 */ // No operand predicates
10432 /* 32127 */ // MIs[0] mi.src1
10433 /* 32127 */ // No operand predicates
10434 /* 32127 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[10]]
10435 /* 32127 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
10436 /* 32130 */ // Label 539: @32130
10437 /* 32130 */ GIM_Reject,
10438 /* 32131 */ // Label 91: @32131
10439 /* 32131 */ GIM_Try, /*On fail goto*//*Label 540*/ GIMT_Encode4(32142), // Rule ID 301 //
10440 /* 32136 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
10441 /* 32139 */ // MIs[0] d
10442 /* 32139 */ // No operand predicates
10443 /* 32139 */ // MIs[0] mi.src0
10444 /* 32139 */ // No operand predicates
10445 /* 32139 */ // MIs[0] mi.src1
10446 /* 32139 */ // No operand predicates
10447 /* 32139 */ // Combiner Rule #195: constant_fold_fp_binop @ [mi[11]]
10448 /* 32139 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
10449 /* 32142 */ // Label 540: @32142
10450 /* 32142 */ GIM_Reject,
10451 /* 32143 */ // Label 92: @32143
10452 /* 32143 */ GIM_Try, /*On fail goto*//*Label 541*/ GIMT_Encode4(32154), // Rule ID 273 //
10453 /* 32148 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
10454 /* 32151 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_PTR_ADD'
10455 /* 32151 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
10456 /* 32154 */ // Label 541: @32154
10457 /* 32154 */ GIM_Try, /*On fail goto*//*Label 542*/ GIMT_Encode4(32165), // Rule ID 334 //
10458 /* 32159 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
10459 /* 32162 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_PTR_ADD'
10460 /* 32162 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
10461 /* 32165 */ // Label 542: @32165
10462 /* 32165 */ GIM_Try, /*On fail goto*//*Label 543*/ GIMT_Encode4(32202), // Rule ID 219 //
10463 /* 32170 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
10464 /* 32173 */ // MIs[0] dst
10465 /* 32173 */ // No operand predicates
10466 /* 32173 */ // MIs[0] base
10467 /* 32173 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10468 /* 32177 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
10469 /* 32181 */ // MIs[1] c1reg
10470 /* 32181 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
10471 /* 32185 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
10472 /* 32189 */ // MIs[2] c1imm
10473 /* 32189 */ // No operand predicates
10474 /* 32189 */ // MIs[0] c2reg
10475 /* 32189 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
10476 /* 32193 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
10477 /* 32197 */ // MIs[3] c2imm
10478 /* 32197 */ // No operand predicates
10479 /* 32197 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
10480 /* 32199 */ // Combiner Rule #166: const_ptradd_to_i2p
10481 /* 32199 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner73),
10482 /* 32202 */ // Label 543: @32202
10483 /* 32202 */ GIM_Try, /*On fail goto*//*Label 544*/ GIMT_Encode4(32225), // Rule ID 125 //
10484 /* 32207 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
10485 /* 32210 */ // MIs[0] dst
10486 /* 32210 */ // No operand predicates
10487 /* 32210 */ // MIs[0] lhs
10488 /* 32210 */ // No operand predicates
10489 /* 32210 */ // MIs[0] Operand 2
10490 /* 32210 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
10491 /* 32214 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10492 /* 32219 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[7]]
10493 /* 32219 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10494 /* 32224 */ GIR_EraseRootFromParent_Done,
10495 /* 32225 */ // Label 544: @32225
10496 /* 32225 */ GIM_Try, /*On fail goto*//*Label 545*/ GIMT_Encode4(32245), // Rule ID 235 //
10497 /* 32230 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
10498 /* 32233 */ // MIs[0] dst
10499 /* 32233 */ // No operand predicates
10500 /* 32233 */ // MIs[0] base
10501 /* 32233 */ // No operand predicates
10502 /* 32233 */ // MIs[0] offset
10503 /* 32233 */ // No operand predicates
10504 /* 32233 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner19),
10505 /* 32237 */ // Combiner Rule #174: ptr_add_with_zero
10506 /* 32237 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_INTTOPTR),
10507 /* 32240 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10508 /* 32242 */ GIR_RootToRootCopy, /*OpIdx*/2, // offset
10509 /* 32244 */ GIR_EraseRootFromParent_Done,
10510 /* 32245 */ // Label 545: @32245
10511 /* 32245 */ GIM_Try, /*On fail goto*//*Label 546*/ GIMT_Encode4(32256), // Rule ID 168 //
10512 /* 32250 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule115Enabled),
10513 /* 32253 */ // MIs[0] dst
10514 /* 32253 */ // No operand predicates
10515 /* 32253 */ // MIs[0] base
10516 /* 32253 */ // No operand predicates
10517 /* 32253 */ // MIs[0] offset
10518 /* 32253 */ // No operand predicates
10519 /* 32253 */ // Combiner Rule #115: reassoc_ptradd
10520 /* 32253 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
10521 /* 32256 */ // Label 546: @32256
10522 /* 32256 */ GIM_Try, /*On fail goto*//*Label 547*/ GIMT_Encode4(32267), // Rule ID 170 //
10523 /* 32261 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled),
10524 /* 32264 */ // MIs[0] dst
10525 /* 32264 */ // No operand predicates
10526 /* 32264 */ // MIs[0] base
10527 /* 32264 */ // No operand predicates
10528 /* 32264 */ // MIs[0] offset
10529 /* 32264 */ // No operand predicates
10530 /* 32264 */ // Combiner Rule #117: ptr_add_immed_chain
10531 /* 32264 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner50),
10532 /* 32267 */ // Label 547: @32267
10533 /* 32267 */ GIM_Reject,
10534 /* 32268 */ // Label 93: @32268
10535 /* 32268 */ GIM_Try, /*On fail goto*//*Label 548*/ GIMT_Encode4(32279), // Rule ID 286 //
10536 /* 32273 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
10537 /* 32276 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_SMIN'
10538 /* 32276 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
10539 /* 32279 */ // Label 548: @32279
10540 /* 32279 */ GIM_Try, /*On fail goto*//*Label 549*/ GIMT_Encode4(32290), // Rule ID 345 //
10541 /* 32284 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
10542 /* 32287 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_SMIN'
10543 /* 32287 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
10544 /* 32290 */ // Label 549: @32290
10545 /* 32290 */ GIM_Try, /*On fail goto*//*Label 550*/ GIMT_Encode4(32301), // Rule ID 374 //
10546 /* 32295 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
10547 /* 32298 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SMIN'
10548 /* 32298 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
10549 /* 32301 */ // Label 550: @32301
10550 /* 32301 */ GIM_Reject,
10551 /* 32302 */ // Label 94: @32302
10552 /* 32302 */ GIM_Try, /*On fail goto*//*Label 551*/ GIMT_Encode4(32313), // Rule ID 287 //
10553 /* 32307 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
10554 /* 32310 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_SMAX'
10555 /* 32310 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
10556 /* 32313 */ // Label 551: @32313
10557 /* 32313 */ GIM_Try, /*On fail goto*//*Label 552*/ GIMT_Encode4(32324), // Rule ID 346 //
10558 /* 32318 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
10559 /* 32321 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_SMAX'
10560 /* 32321 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
10561 /* 32324 */ // Label 552: @32324
10562 /* 32324 */ GIM_Try, /*On fail goto*//*Label 553*/ GIMT_Encode4(32335), // Rule ID 375 //
10563 /* 32329 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
10564 /* 32332 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_SMAX'
10565 /* 32332 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
10566 /* 32335 */ // Label 553: @32335
10567 /* 32335 */ GIM_Reject,
10568 /* 32336 */ // Label 95: @32336
10569 /* 32336 */ GIM_Try, /*On fail goto*//*Label 554*/ GIMT_Encode4(32347), // Rule ID 288 //
10570 /* 32341 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
10571 /* 32344 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_UMIN'
10572 /* 32344 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
10573 /* 32347 */ // Label 554: @32347
10574 /* 32347 */ GIM_Try, /*On fail goto*//*Label 555*/ GIMT_Encode4(32358), // Rule ID 347 //
10575 /* 32352 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
10576 /* 32355 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_UMIN'
10577 /* 32355 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
10578 /* 32358 */ // Label 555: @32358
10579 /* 32358 */ GIM_Try, /*On fail goto*//*Label 556*/ GIMT_Encode4(32369), // Rule ID 376 //
10580 /* 32363 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
10581 /* 32366 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UMIN'
10582 /* 32366 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
10583 /* 32369 */ // Label 556: @32369
10584 /* 32369 */ GIM_Reject,
10585 /* 32370 */ // Label 96: @32370
10586 /* 32370 */ GIM_Try, /*On fail goto*//*Label 557*/ GIMT_Encode4(32381), // Rule ID 289 //
10587 /* 32375 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
10588 /* 32378 */ // Combiner Rule #194: constant_fold_binop; wip_match_opcode 'G_UMAX'
10589 /* 32378 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
10590 /* 32381 */ // Label 557: @32381
10591 /* 32381 */ GIM_Try, /*On fail goto*//*Label 558*/ GIMT_Encode4(32392), // Rule ID 348 //
10592 /* 32386 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
10593 /* 32389 */ // Combiner Rule #215: fold_binop_into_select; wip_match_opcode 'G_UMAX'
10594 /* 32389 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
10595 /* 32392 */ // Label 558: @32392
10596 /* 32392 */ GIM_Try, /*On fail goto*//*Label 559*/ GIMT_Encode4(32403), // Rule ID 377 //
10597 /* 32397 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
10598 /* 32400 */ // Combiner Rule #227: commute_int_constant_to_rhs; wip_match_opcode 'G_UMAX'
10599 /* 32400 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
10600 /* 32403 */ // Label 559: @32403
10601 /* 32403 */ GIM_Reject,
10602 /* 32404 */ // Label 97: @32404
10603 /* 32404 */ GIM_Try, /*On fail goto*//*Label 560*/ GIMT_Encode4(32425), // Rule ID 96 //
10604 /* 32409 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
10605 /* 32412 */ // MIs[0] dst
10606 /* 32412 */ // No operand predicates
10607 /* 32412 */ // MIs[0] __unary_undef_to_zero_match_0.x
10608 /* 32412 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10609 /* 32416 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10610 /* 32420 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10611 /* 32422 */ // Combiner Rule #81: unary_undef_to_zero @ [__unary_undef_to_zero_match_0[0]]
10612 /* 32422 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
10613 /* 32425 */ // Label 560: @32425
10614 /* 32425 */ GIM_Try, /*On fail goto*//*Label 561*/ GIMT_Encode4(32436), // Rule ID 312 //
10615 /* 32430 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
10616 /* 32433 */ // MIs[0] dst
10617 /* 32433 */ // No operand predicates
10618 /* 32433 */ // MIs[0] mi.src
10619 /* 32433 */ // No operand predicates
10620 /* 32433 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[5]]
10621 /* 32433 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
10622 /* 32436 */ // Label 561: @32436
10623 /* 32436 */ GIM_Reject,
10624 /* 32437 */ // Label 98: @32437
10625 /* 32437 */ GIM_Try, /*On fail goto*//*Label 562*/ GIMT_Encode4(32448), // Rule ID 203 //
10626 /* 32442 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
10627 /* 32445 */ // MIs[0] tgt
10628 /* 32445 */ // No operand predicates
10629 /* 32445 */ // Combiner Rule #150: opt_brcond_by_inverting_cond
10630 /* 32445 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner71),
10631 /* 32448 */ // Label 562: @32448
10632 /* 32448 */ GIM_Reject,
10633 /* 32449 */ // Label 99: @32449
10634 /* 32449 */ GIM_Try, /*On fail goto*//*Label 563*/ GIMT_Encode4(32460), // Rule ID 114 //
10635 /* 32454 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
10636 /* 32457 */ // Combiner Rule #87: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_INSERT_VECTOR_ELT'
10637 /* 32457 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
10638 /* 32460 */ // Label 563: @32460
10639 /* 32460 */ GIM_Try, /*On fail goto*//*Label 564*/ GIMT_Encode4(32499), // Rule ID 45 //
10640 /* 32465 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
10641 /* 32468 */ // MIs[0] root
10642 /* 32468 */ // No operand predicates
10643 /* 32468 */ // MIs[0] src
10644 /* 32468 */ // No operand predicates
10645 /* 32468 */ // MIs[0] elt
10646 /* 32468 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
10647 /* 32472 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_EXTRACT_VECTOR_ELT),
10648 /* 32476 */ // MIs[1] src
10649 /* 32476 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
10650 /* 32481 */ // MIs[1] idx
10651 /* 32481 */ // No operand predicates
10652 /* 32481 */ // MIs[0] idx
10653 /* 32481 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
10654 /* 32486 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10655 /* 32491 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10656 /* 32493 */ // Combiner Rule #41: insert_vector_element_extract_vector_element
10657 /* 32493 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10658 /* 32498 */ GIR_EraseRootFromParent_Done,
10659 /* 32499 */ // Label 564: @32499
10660 /* 32499 */ GIM_Try, /*On fail goto*//*Label 565*/ GIMT_Encode4(32532), // Rule ID 31 //
10661 /* 32504 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
10662 /* 32507 */ // MIs[0] root
10663 /* 32507 */ // No operand predicates
10664 /* 32507 */ // MIs[0] src
10665 /* 32507 */ // No operand predicates
10666 /* 32507 */ // MIs[0] elt
10667 /* 32507 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
10668 /* 32511 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10669 /* 32515 */ // MIs[0] idx
10670 /* 32515 */ // No operand predicates
10671 /* 32515 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
10672 /* 32519 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10673 /* 32524 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10674 /* 32526 */ // Combiner Rule #27: insert_vector_element_elt_undef
10675 /* 32526 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10676 /* 32531 */ GIR_EraseRootFromParent_Done,
10677 /* 32532 */ // Label 565: @32532
10678 /* 32532 */ GIM_Try, /*On fail goto*//*Label 566*/ GIMT_Encode4(32556), // Rule ID 30 //
10679 /* 32537 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
10680 /* 32540 */ // MIs[0] root
10681 /* 32540 */ // No operand predicates
10682 /* 32540 */ // MIs[0] src
10683 /* 32540 */ // No operand predicates
10684 /* 32540 */ // MIs[0] elt
10685 /* 32540 */ // No operand predicates
10686 /* 32540 */ // MIs[0] idx
10687 /* 32540 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
10688 /* 32544 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10689 /* 32548 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10690 /* 32550 */ // Combiner Rule #26: insert_vector_element_idx_undef
10691 /* 32550 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10692 /* 32553 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
10693 /* 32555 */ GIR_EraseRootFromParent_Done,
10694 /* 32556 */ // Label 566: @32556
10695 /* 32556 */ GIM_Try, /*On fail goto*//*Label 567*/ GIMT_Encode4(32567), // Rule ID 33 //
10696 /* 32561 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
10697 /* 32564 */ // MIs[0] dst
10698 /* 32564 */ // No operand predicates
10699 /* 32564 */ // MIs[0] src
10700 /* 32564 */ // No operand predicates
10701 /* 32564 */ // MIs[0] elt
10702 /* 32564 */ // No operand predicates
10703 /* 32564 */ // MIs[0] idx
10704 /* 32564 */ // No operand predicates
10705 /* 32564 */ // Combiner Rule #29: insert_vector_elt_oob
10706 /* 32564 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
10707 /* 32567 */ // Label 567: @32567
10708 /* 32567 */ GIM_Try, /*On fail goto*//*Label 568*/ GIMT_Encode4(32578), // Rule ID 74 //
10709 /* 32572 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
10710 /* 32575 */ // MIs[0] dst
10711 /* 32575 */ // No operand predicates
10712 /* 32575 */ // MIs[0] src
10713 /* 32575 */ // No operand predicates
10714 /* 32575 */ // MIs[0] elt
10715 /* 32575 */ // No operand predicates
10716 /* 32575 */ // MIs[0] idx
10717 /* 32575 */ // No operand predicates
10718 /* 32575 */ // Combiner Rule #70: combine_insert_vec_elts_build_vector
10719 /* 32575 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner26),
10720 /* 32578 */ // Label 568: @32578
10721 /* 32578 */ GIM_Reject,
10722 /* 32579 */ // Label 100: @32579
10723 /* 32579 */ GIM_Try, /*On fail goto*//*Label 569*/ GIMT_Encode4(32590), // Rule ID 115 //
10724 /* 32584 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
10725 /* 32587 */ // Combiner Rule #87: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
10726 /* 32587 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
10727 /* 32590 */ // Label 569: @32590
10728 /* 32590 */ GIM_Try, /*On fail goto*//*Label 570*/ GIMT_Encode4(32614), // Rule ID 43 //
10729 /* 32595 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
10730 /* 32598 */ // MIs[0] root
10731 /* 32598 */ // No operand predicates
10732 /* 32598 */ // MIs[0] src
10733 /* 32598 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10734 /* 32602 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
10735 /* 32606 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/9,
10736 /* 32609 */ // MIs[1] x
10737 /* 32609 */ // No operand predicates
10738 /* 32609 */ // MIs[1] y
10739 /* 32609 */ // No operand predicates
10740 /* 32609 */ // MIs[1] z
10741 /* 32609 */ // No operand predicates
10742 /* 32609 */ // MIs[1] a
10743 /* 32609 */ // No operand predicates
10744 /* 32609 */ // MIs[1] b
10745 /* 32609 */ // No operand predicates
10746 /* 32609 */ // MIs[1] c
10747 /* 32609 */ // No operand predicates
10748 /* 32609 */ // MIs[1] d
10749 /* 32609 */ // No operand predicates
10750 /* 32609 */ // MIs[1] e
10751 /* 32609 */ // No operand predicates
10752 /* 32609 */ // MIs[0] idx
10753 /* 32609 */ // No operand predicates
10754 /* 32609 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10755 /* 32611 */ // Combiner Rule #39: extract_vector_element_build_vector_trunc8
10756 /* 32611 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
10757 /* 32614 */ // Label 570: @32614
10758 /* 32614 */ GIM_Try, /*On fail goto*//*Label 571*/ GIMT_Encode4(32638), // Rule ID 42 //
10759 /* 32619 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
10760 /* 32622 */ // MIs[0] root
10761 /* 32622 */ // No operand predicates
10762 /* 32622 */ // MIs[0] src
10763 /* 32622 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10764 /* 32626 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
10765 /* 32630 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/8,
10766 /* 32633 */ // MIs[1] x
10767 /* 32633 */ // No operand predicates
10768 /* 32633 */ // MIs[1] y
10769 /* 32633 */ // No operand predicates
10770 /* 32633 */ // MIs[1] z
10771 /* 32633 */ // No operand predicates
10772 /* 32633 */ // MIs[1] a
10773 /* 32633 */ // No operand predicates
10774 /* 32633 */ // MIs[1] b
10775 /* 32633 */ // No operand predicates
10776 /* 32633 */ // MIs[1] c
10777 /* 32633 */ // No operand predicates
10778 /* 32633 */ // MIs[1] d
10779 /* 32633 */ // No operand predicates
10780 /* 32633 */ // MIs[0] idx
10781 /* 32633 */ // No operand predicates
10782 /* 32633 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10783 /* 32635 */ // Combiner Rule #38: extract_vector_element_build_vector_trunc7
10784 /* 32635 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
10785 /* 32638 */ // Label 571: @32638
10786 /* 32638 */ GIM_Try, /*On fail goto*//*Label 572*/ GIMT_Encode4(32662), // Rule ID 41 //
10787 /* 32643 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
10788 /* 32646 */ // MIs[0] root
10789 /* 32646 */ // No operand predicates
10790 /* 32646 */ // MIs[0] src
10791 /* 32646 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10792 /* 32650 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
10793 /* 32654 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/7,
10794 /* 32657 */ // MIs[1] x
10795 /* 32657 */ // No operand predicates
10796 /* 32657 */ // MIs[1] y
10797 /* 32657 */ // No operand predicates
10798 /* 32657 */ // MIs[1] z
10799 /* 32657 */ // No operand predicates
10800 /* 32657 */ // MIs[1] a
10801 /* 32657 */ // No operand predicates
10802 /* 32657 */ // MIs[1] b
10803 /* 32657 */ // No operand predicates
10804 /* 32657 */ // MIs[1] c
10805 /* 32657 */ // No operand predicates
10806 /* 32657 */ // MIs[0] idx
10807 /* 32657 */ // No operand predicates
10808 /* 32657 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10809 /* 32659 */ // Combiner Rule #37: extract_vector_element_build_vector_trunc6
10810 /* 32659 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
10811 /* 32662 */ // Label 572: @32662
10812 /* 32662 */ GIM_Try, /*On fail goto*//*Label 573*/ GIMT_Encode4(32686), // Rule ID 40 //
10813 /* 32667 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
10814 /* 32670 */ // MIs[0] root
10815 /* 32670 */ // No operand predicates
10816 /* 32670 */ // MIs[0] src
10817 /* 32670 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10818 /* 32674 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
10819 /* 32678 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/6,
10820 /* 32681 */ // MIs[1] x
10821 /* 32681 */ // No operand predicates
10822 /* 32681 */ // MIs[1] y
10823 /* 32681 */ // No operand predicates
10824 /* 32681 */ // MIs[1] z
10825 /* 32681 */ // No operand predicates
10826 /* 32681 */ // MIs[1] a
10827 /* 32681 */ // No operand predicates
10828 /* 32681 */ // MIs[1] b
10829 /* 32681 */ // No operand predicates
10830 /* 32681 */ // MIs[0] idx
10831 /* 32681 */ // No operand predicates
10832 /* 32681 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10833 /* 32683 */ // Combiner Rule #36: extract_vector_element_build_vector_trunc5
10834 /* 32683 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
10835 /* 32686 */ // Label 573: @32686
10836 /* 32686 */ GIM_Try, /*On fail goto*//*Label 574*/ GIMT_Encode4(32710), // Rule ID 39 //
10837 /* 32691 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
10838 /* 32694 */ // MIs[0] root
10839 /* 32694 */ // No operand predicates
10840 /* 32694 */ // MIs[0] src
10841 /* 32694 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10842 /* 32698 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
10843 /* 32702 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/5,
10844 /* 32705 */ // MIs[1] x
10845 /* 32705 */ // No operand predicates
10846 /* 32705 */ // MIs[1] y
10847 /* 32705 */ // No operand predicates
10848 /* 32705 */ // MIs[1] z
10849 /* 32705 */ // No operand predicates
10850 /* 32705 */ // MIs[1] a
10851 /* 32705 */ // No operand predicates
10852 /* 32705 */ // MIs[0] idx
10853 /* 32705 */ // No operand predicates
10854 /* 32705 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10855 /* 32707 */ // Combiner Rule #35: extract_vector_element_build_vector_trunc4
10856 /* 32707 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
10857 /* 32710 */ // Label 574: @32710
10858 /* 32710 */ GIM_Try, /*On fail goto*//*Label 575*/ GIMT_Encode4(32734), // Rule ID 38 //
10859 /* 32715 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
10860 /* 32718 */ // MIs[0] root
10861 /* 32718 */ // No operand predicates
10862 /* 32718 */ // MIs[0] src
10863 /* 32718 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10864 /* 32722 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
10865 /* 32726 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
10866 /* 32729 */ // MIs[1] x
10867 /* 32729 */ // No operand predicates
10868 /* 32729 */ // MIs[1] y
10869 /* 32729 */ // No operand predicates
10870 /* 32729 */ // MIs[1] z
10871 /* 32729 */ // No operand predicates
10872 /* 32729 */ // MIs[0] idx
10873 /* 32729 */ // No operand predicates
10874 /* 32729 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10875 /* 32731 */ // Combiner Rule #34: extract_vector_element_build_vector_trunc3
10876 /* 32731 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
10877 /* 32734 */ // Label 575: @32734
10878 /* 32734 */ GIM_Try, /*On fail goto*//*Label 576*/ GIMT_Encode4(32768), // Rule ID 34 //
10879 /* 32739 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
10880 /* 32742 */ // MIs[0] root
10881 /* 32742 */ // No operand predicates
10882 /* 32742 */ // MIs[0] src
10883 /* 32742 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10884 /* 32746 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
10885 /* 32750 */ // MIs[1] x
10886 /* 32750 */ // No operand predicates
10887 /* 32750 */ // MIs[1] value
10888 /* 32750 */ // No operand predicates
10889 /* 32750 */ // MIs[1] idx
10890 /* 32750 */ // No operand predicates
10891 /* 32750 */ // MIs[0] idx
10892 /* 32750 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
10893 /* 32755 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
10894 /* 32760 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10895 /* 32762 */ // Combiner Rule #30: extract_vector_element_not_const
10896 /* 32762 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
10897 /* 32767 */ GIR_EraseRootFromParent_Done,
10898 /* 32768 */ // Label 576: @32768
10899 /* 32768 */ GIM_Try, /*On fail goto*//*Label 577*/ GIMT_Encode4(32789), // Rule ID 35 //
10900 /* 32773 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
10901 /* 32776 */ // MIs[0] root
10902 /* 32776 */ // No operand predicates
10903 /* 32776 */ // MIs[0] src
10904 /* 32776 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10905 /* 32780 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
10906 /* 32784 */ // MIs[1] x
10907 /* 32784 */ // No operand predicates
10908 /* 32784 */ // MIs[1] value
10909 /* 32784 */ // No operand predicates
10910 /* 32784 */ // MIs[1] idx2
10911 /* 32784 */ // No operand predicates
10912 /* 32784 */ // MIs[0] idx1
10913 /* 32784 */ // No operand predicates
10914 /* 32784 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10915 /* 32786 */ // Combiner Rule #31: extract_vector_element_different_indices
10916 /* 32786 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
10917 /* 32789 */ // Label 577: @32789
10918 /* 32789 */ GIM_Try, /*On fail goto*//*Label 578*/ GIMT_Encode4(32818), // Rule ID 44 //
10919 /* 32794 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
10920 /* 32797 */ // MIs[0] root
10921 /* 32797 */ // No operand predicates
10922 /* 32797 */ // MIs[0] src
10923 /* 32797 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10924 /* 32801 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHUFFLE_VECTOR),
10925 /* 32805 */ // MIs[1] src1
10926 /* 32805 */ // No operand predicates
10927 /* 32805 */ // MIs[1] src2
10928 /* 32805 */ // No operand predicates
10929 /* 32805 */ // MIs[1] mask
10930 /* 32805 */ // No operand predicates
10931 /* 32805 */ // MIs[0] idx
10932 /* 32805 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
10933 /* 32809 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
10934 /* 32813 */ // MIs[2] imm
10935 /* 32813 */ // No operand predicates
10936 /* 32813 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
10937 /* 32815 */ // Combiner Rule #40: extract_vector_element_shuffle_vector
10938 /* 32815 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
10939 /* 32818 */ // Label 578: @32818
10940 /* 32818 */ GIM_Try, /*On fail goto*//*Label 579*/ GIMT_Encode4(32842), // Rule ID 37 //
10941 /* 32823 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
10942 /* 32826 */ // MIs[0] root
10943 /* 32826 */ // No operand predicates
10944 /* 32826 */ // MIs[0] src
10945 /* 32826 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10946 /* 32830 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
10947 /* 32834 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
10948 /* 32837 */ // MIs[1] x
10949 /* 32837 */ // No operand predicates
10950 /* 32837 */ // MIs[1] y
10951 /* 32837 */ // No operand predicates
10952 /* 32837 */ // MIs[0] idx
10953 /* 32837 */ // No operand predicates
10954 /* 32837 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10955 /* 32839 */ // Combiner Rule #33: extract_vector_element_build_vector_trunc2
10956 /* 32839 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
10957 /* 32842 */ // Label 579: @32842
10958 /* 32842 */ GIM_Try, /*On fail goto*//*Label 580*/ GIMT_Encode4(32874), // Rule ID 36 //
10959 /* 32847 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
10960 /* 32850 */ // MIs[0] root
10961 /* 32850 */ // No operand predicates
10962 /* 32850 */ // MIs[0] src
10963 /* 32850 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10964 /* 32854 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
10965 /* 32858 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
10966 /* 32861 */ // MIs[1] unused
10967 /* 32861 */ // No operand predicates
10968 /* 32861 */ // MIs[0] idx
10969 /* 32861 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
10970 /* 32865 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
10971 /* 32869 */ // MIs[2] imm
10972 /* 32869 */ // No operand predicates
10973 /* 32869 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
10974 /* 32871 */ // Combiner Rule #32: extract_vector_element_build_vector
10975 /* 32871 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
10976 /* 32874 */ // Label 580: @32874
10977 /* 32874 */ GIM_Try, /*On fail goto*//*Label 581*/ GIMT_Encode4(32898), // Rule ID 28 //
10978 /* 32879 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
10979 /* 32882 */ // MIs[0] root
10980 /* 32882 */ // No operand predicates
10981 /* 32882 */ // MIs[0] __extract_vector_element_undef_match_0.x
10982 /* 32882 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10983 /* 32886 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10984 /* 32890 */ // MIs[0] __extract_vector_element_undef_match_0.y
10985 /* 32890 */ // No operand predicates
10986 /* 32890 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10987 /* 32892 */ // Combiner Rule #25: extract_vector_element_undef @ [__extract_vector_element_undef_match_0[0]]
10988 /* 32892 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10989 /* 32895 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
10990 /* 32897 */ GIR_EraseRootFromParent_Done,
10991 /* 32898 */ // Label 581: @32898
10992 /* 32898 */ GIM_Try, /*On fail goto*//*Label 582*/ GIMT_Encode4(32922), // Rule ID 29 //
10993 /* 32903 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
10994 /* 32906 */ // MIs[0] root
10995 /* 32906 */ // No operand predicates
10996 /* 32906 */ // MIs[0] __extract_vector_element_undef_match_0.x
10997 /* 32906 */ // No operand predicates
10998 /* 32906 */ // MIs[0] __extract_vector_element_undef_match_0.y
10999 /* 32906 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
11000 /* 32910 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11001 /* 32914 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11002 /* 32916 */ // Combiner Rule #25: extract_vector_element_undef @ [__extract_vector_element_undef_match_0[1]]
11003 /* 32916 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11004 /* 32919 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
11005 /* 32921 */ GIR_EraseRootFromParent_Done,
11006 /* 32922 */ // Label 582: @32922
11007 /* 32922 */ GIM_Try, /*On fail goto*//*Label 583*/ GIMT_Encode4(32933), // Rule ID 32 //
11008 /* 32927 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
11009 /* 32930 */ // MIs[0] dst
11010 /* 32930 */ // No operand predicates
11011 /* 32930 */ // MIs[0] src
11012 /* 32930 */ // No operand predicates
11013 /* 32930 */ // MIs[0] idx
11014 /* 32930 */ // No operand predicates
11015 /* 32930 */ // Combiner Rule #28: match_extract_of_element
11016 /* 32930 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
11017 /* 32933 */ // Label 583: @32933
11018 /* 32933 */ GIM_Try, /*On fail goto*//*Label 584*/ GIMT_Encode4(32944), // Rule ID 75 //
11019 /* 32938 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
11020 /* 32941 */ // MIs[0] dst
11021 /* 32941 */ // No operand predicates
11022 /* 32941 */ // MIs[0] src
11023 /* 32941 */ // No operand predicates
11024 /* 32941 */ // MIs[0] idx
11025 /* 32941 */ // No operand predicates
11026 /* 32941 */ // Combiner Rule #71: extract_vec_elt_build_vec
11027 /* 32941 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
11028 /* 32944 */ // Label 584: @32944
11029 /* 32944 */ GIM_Try, /*On fail goto*//*Label 585*/ GIMT_Encode4(32955), // Rule ID 81 //
11030 /* 32949 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
11031 /* 32952 */ // MIs[0] dst
11032 /* 32952 */ // No operand predicates
11033 /* 32952 */ // MIs[0] src
11034 /* 32952 */ // No operand predicates
11035 /* 32952 */ // MIs[0] idx
11036 /* 32952 */ // No operand predicates
11037 /* 32952 */ // Combiner Rule #75: combine_extracted_vector_load
11038 /* 32952 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
11039 /* 32955 */ // Label 585: @32955
11040 /* 32955 */ GIM_Reject,
11041 /* 32956 */ // Label 101: @32956
11042 /* 32956 */ GIM_Try, /*On fail goto*//*Label 586*/ GIMT_Encode4(32967), // Rule ID 110 //
11043 /* 32961 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
11044 /* 32964 */ // Combiner Rule #84: propagate_undef_all_ops; wip_match_opcode 'G_SHUFFLE_VECTOR'
11045 /* 32964 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
11046 /* 32967 */ // Label 586: @32967
11047 /* 32967 */ GIM_Try, /*On fail goto*//*Label 587*/ GIMT_Encode4(32988), // Rule ID 412 //
11048 /* 32972 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule243Enabled),
11049 /* 32975 */ // MIs[0] root
11050 /* 32975 */ // No operand predicates
11051 /* 32975 */ // MIs[0] src1
11052 /* 32975 */ // No operand predicates
11053 /* 32975 */ // MIs[0] undef
11054 /* 32975 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
11055 /* 32979 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11056 /* 32983 */ // MIs[0] mask
11057 /* 32983 */ // No operand predicates
11058 /* 32983 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11059 /* 32985 */ // Combiner Rule #243: combine_shuffle_undef_rhs
11060 /* 32985 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
11061 /* 32988 */ // Label 587: @32988
11062 /* 32988 */ GIM_Try, /*On fail goto*//*Label 588*/ GIMT_Encode4(33006), // Rule ID 112 //
11063 /* 32993 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
11064 /* 32996 */ // MIs[0] dst
11065 /* 32996 */ // No operand predicates
11066 /* 32996 */ // MIs[0] src1
11067 /* 32996 */ // No operand predicates
11068 /* 32996 */ // MIs[0] src2
11069 /* 32996 */ // No operand predicates
11070 /* 32996 */ // MIs[0] mask
11071 /* 32996 */ // No operand predicates
11072 /* 32996 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner5),
11073 /* 33000 */ // Combiner Rule #85: propagate_undef_shuffle_mask
11074 /* 33000 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11075 /* 33003 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11076 /* 33005 */ GIR_EraseRootFromParent_Done,
11077 /* 33006 */ // Label 588: @33006
11078 /* 33006 */ GIM_Try, /*On fail goto*//*Label 589*/ GIMT_Encode4(33017), // Rule ID 411 //
11079 /* 33011 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule242Enabled),
11080 /* 33014 */ // MIs[0] dst
11081 /* 33014 */ // No operand predicates
11082 /* 33014 */ // MIs[0] src1
11083 /* 33014 */ // No operand predicates
11084 /* 33014 */ // MIs[0] src2
11085 /* 33014 */ // No operand predicates
11086 /* 33014 */ // MIs[0] mask
11087 /* 33014 */ // No operand predicates
11088 /* 33014 */ // Combiner Rule #242: combine_shuffle_concat
11089 /* 33014 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
11090 /* 33017 */ // Label 589: @33017
11091 /* 33017 */ GIM_Try, /*On fail goto*//*Label 590*/ GIMT_Encode4(33028), // Rule ID 413 //
11092 /* 33022 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule244Enabled),
11093 /* 33025 */ // MIs[0] dst
11094 /* 33025 */ // No operand predicates
11095 /* 33025 */ // MIs[0] src1
11096 /* 33025 */ // No operand predicates
11097 /* 33025 */ // MIs[0] src2
11098 /* 33025 */ // No operand predicates
11099 /* 33025 */ // MIs[0] mask
11100 /* 33025 */ // No operand predicates
11101 /* 33025 */ // Combiner Rule #244: combine_shuffle_disjoint_mask
11102 /* 33025 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
11103 /* 33028 */ // Label 590: @33028
11104 /* 33028 */ GIM_Reject,
11105 /* 33029 */ // Label 102: @33029
11106 /* 33029 */ GIM_Try, /*On fail goto*//*Label 591*/ GIMT_Encode4(33040), // Rule ID 309 //
11107 /* 33034 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
11108 /* 33037 */ // MIs[0] dst
11109 /* 33037 */ // No operand predicates
11110 /* 33037 */ // MIs[0] mi.src
11111 /* 33037 */ // No operand predicates
11112 /* 33037 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[2]]
11113 /* 33037 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
11114 /* 33040 */ // Label 591: @33040
11115 /* 33040 */ GIM_Try, /*On fail goto*//*Label 592*/ GIMT_Encode4(33051), // Rule ID 437 //
11116 /* 33045 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule266Enabled),
11117 /* 33048 */ // MIs[0] dst
11118 /* 33048 */ // No operand predicates
11119 /* 33048 */ // MIs[0] src
11120 /* 33048 */ // No operand predicates
11121 /* 33048 */ // Combiner Rule #266: cttz_to_cttz_zero_poison
11122 /* 33048 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner147),
11123 /* 33051 */ // Label 592: @33051
11124 /* 33051 */ GIM_Reject,
11125 /* 33052 */ // Label 103: @33052
11126 /* 33052 */ GIM_Try, /*On fail goto*//*Label 593*/ GIMT_Encode4(33063), // Rule ID 310 //
11127 /* 33057 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
11128 /* 33060 */ // MIs[0] dst
11129 /* 33060 */ // No operand predicates
11130 /* 33060 */ // MIs[0] mi.src
11131 /* 33060 */ // No operand predicates
11132 /* 33060 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[3]]
11133 /* 33060 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
11134 /* 33063 */ // Label 593: @33063
11135 /* 33063 */ GIM_Reject,
11136 /* 33064 */ // Label 104: @33064
11137 /* 33064 */ GIM_Try, /*On fail goto*//*Label 594*/ GIMT_Encode4(33075), // Rule ID 307 //
11138 /* 33069 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
11139 /* 33072 */ // MIs[0] dst
11140 /* 33072 */ // No operand predicates
11141 /* 33072 */ // MIs[0] mi.src
11142 /* 33072 */ // No operand predicates
11143 /* 33072 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[0]]
11144 /* 33072 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
11145 /* 33075 */ // Label 594: @33075
11146 /* 33075 */ GIM_Try, /*On fail goto*//*Label 595*/ GIMT_Encode4(33086), // Rule ID 434 //
11147 /* 33080 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule263Enabled),
11148 /* 33083 */ // MIs[0] dst
11149 /* 33083 */ // No operand predicates
11150 /* 33083 */ // MIs[0] src
11151 /* 33083 */ // No operand predicates
11152 /* 33083 */ // Combiner Rule #263: ctlz_to_ctls
11153 /* 33083 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner146),
11154 /* 33086 */ // Label 595: @33086
11155 /* 33086 */ GIM_Try, /*On fail goto*//*Label 596*/ GIMT_Encode4(33097), // Rule ID 436 //
11156 /* 33091 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule265Enabled),
11157 /* 33094 */ // MIs[0] dst
11158 /* 33094 */ // No operand predicates
11159 /* 33094 */ // MIs[0] src
11160 /* 33094 */ // No operand predicates
11161 /* 33094 */ // Combiner Rule #265: ctlz_to_ctlz_zero_poison
11162 /* 33094 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner147),
11163 /* 33097 */ // Label 596: @33097
11164 /* 33097 */ GIM_Reject,
11165 /* 33098 */ // Label 105: @33098
11166 /* 33098 */ GIM_Try, /*On fail goto*//*Label 597*/ GIMT_Encode4(33109), // Rule ID 308 //
11167 /* 33103 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
11168 /* 33106 */ // MIs[0] dst
11169 /* 33106 */ // No operand predicates
11170 /* 33106 */ // MIs[0] mi.src
11171 /* 33106 */ // No operand predicates
11172 /* 33106 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[1]]
11173 /* 33106 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
11174 /* 33109 */ // Label 597: @33109
11175 /* 33109 */ GIM_Try, /*On fail goto*//*Label 598*/ GIMT_Encode4(33120), // Rule ID 435 //
11176 /* 33114 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule264Enabled),
11177 /* 33117 */ // MIs[0] dst
11178 /* 33117 */ // No operand predicates
11179 /* 33117 */ // MIs[0] src
11180 /* 33117 */ // No operand predicates
11181 /* 33117 */ // Combiner Rule #264: ctlz_zero_poison_to_ctls
11182 /* 33117 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner146),
11183 /* 33120 */ // Label 598: @33120
11184 /* 33120 */ GIM_Reject,
11185 /* 33121 */ // Label 106: @33121
11186 /* 33121 */ GIM_Try, /*On fail goto*//*Label 599*/ GIMT_Encode4(33132), // Rule ID 311 //
11187 /* 33126 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
11188 /* 33129 */ // MIs[0] dst
11189 /* 33129 */ // No operand predicates
11190 /* 33129 */ // MIs[0] mi.src
11191 /* 33129 */ // No operand predicates
11192 /* 33129 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[4]]
11193 /* 33129 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
11194 /* 33132 */ // Label 599: @33132
11195 /* 33132 */ GIM_Reject,
11196 /* 33133 */ // Label 107: @33133
11197 /* 33133 */ GIM_Try, /*On fail goto*//*Label 600*/ GIMT_Encode4(33144), // Rule ID 313 //
11198 /* 33138 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
11199 /* 33141 */ // MIs[0] dst
11200 /* 33141 */ // No operand predicates
11201 /* 33141 */ // MIs[0] mi.src
11202 /* 33141 */ // No operand predicates
11203 /* 33141 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[6]]
11204 /* 33141 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
11205 /* 33144 */ // Label 600: @33144
11206 /* 33144 */ GIM_Reject,
11207 /* 33145 */ // Label 108: @33145
11208 /* 33145 */ GIM_Try, /*On fail goto*//*Label 601*/ GIMT_Encode4(33189), // Rule ID 263 //
11209 /* 33150 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
11210 /* 33153 */ // MIs[0] d
11211 /* 33153 */ // No operand predicates
11212 /* 33153 */ // MIs[0] src
11213 /* 33153 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11214 /* 33157 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
11215 /* 33161 */ // MIs[1] rev
11216 /* 33161 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
11217 /* 33165 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
11218 /* 33169 */ // MIs[2] val
11219 /* 33169 */ // No operand predicates
11220 /* 33169 */ // MIs[1] amt
11221 /* 33169 */ // No operand predicates
11222 /* 33169 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner21),
11223 /* 33173 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
11224 /* 33175 */ // Combiner Rule #187: bitreverse_lshr
11225 /* 33175 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
11226 /* 33178 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
11227 /* 33180 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
11228 /* 33184 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
11229 /* 33188 */ GIR_EraseRootFromParent_Done,
11230 /* 33189 */ // Label 601: @33189
11231 /* 33189 */ GIM_Try, /*On fail goto*//*Label 602*/ GIMT_Encode4(33233), // Rule ID 262 //
11232 /* 33194 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
11233 /* 33197 */ // MIs[0] d
11234 /* 33197 */ // No operand predicates
11235 /* 33197 */ // MIs[0] src
11236 /* 33197 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11237 /* 33201 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
11238 /* 33205 */ // MIs[1] rev
11239 /* 33205 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
11240 /* 33209 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
11241 /* 33213 */ // MIs[2] val
11242 /* 33213 */ // No operand predicates
11243 /* 33213 */ // MIs[1] amt
11244 /* 33213 */ // No operand predicates
11245 /* 33213 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner20),
11246 /* 33217 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
11247 /* 33219 */ // Combiner Rule #186: bitreverse_shl
11248 /* 33219 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_LSHR),
11249 /* 33222 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
11250 /* 33224 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
11251 /* 33228 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
11252 /* 33232 */ GIR_EraseRootFromParent_Done,
11253 /* 33233 */ // Label 602: @33233
11254 /* 33233 */ GIM_Try, /*On fail goto*//*Label 603*/ GIMT_Encode4(33244), // Rule ID 314 //
11255 /* 33238 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
11256 /* 33241 */ // MIs[0] dst
11257 /* 33241 */ // No operand predicates
11258 /* 33241 */ // MIs[0] mi.src
11259 /* 33241 */ // No operand predicates
11260 /* 33241 */ // Combiner Rule #198: constant_fold_unary_int_op @ [mi[7]]
11261 /* 33241 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
11262 /* 33244 */ // Label 603: @33244
11263 /* 33244 */ GIM_Reject,
11264 /* 33245 */ // Label 109: @33245
11265 /* 33245 */ GIM_Try, /*On fail goto*//*Label 604*/ GIMT_Encode4(33266), // Rule ID 210 //
11266 /* 33250 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
11267 /* 33253 */ // MIs[0] dst
11268 /* 33253 */ // No operand predicates
11269 /* 33253 */ // MIs[0] src0
11270 /* 33253 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11271 /* 33257 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11272 /* 33261 */ // MIs[1] cst
11273 /* 33261 */ // No operand predicates
11274 /* 33261 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11275 /* 33263 */ // Combiner Rule #157: constant_fold_fceil
11276 /* 33263 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
11277 /* 33266 */ // Label 604: @33266
11278 /* 33266 */ GIM_Reject,
11279 /* 33267 */ // Label 110: @33267
11280 /* 33267 */ GIM_Try, /*On fail goto*//*Label 605*/ GIMT_Encode4(33327), // Rule ID 470 //
11281 /* 33272 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule289Enabled),
11282 /* 33275 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmContract),
11283 /* 33281 */ // MIs[0] dst
11284 /* 33281 */ // No operand predicates
11285 /* 33281 */ // MIs[0] rcp
11286 /* 33281 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11287 /* 33285 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTRINSIC),
11288 /* 33289 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
11289 /* 33292 */ GIM_CheckIntrinsicID, /*MI*/1, /*Op*/1, GIMT_Encode2(Intrinsic::amdgcn_rcp),
11290 /* 33297 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::FmContract),
11291 /* 33303 */ // MIs[1] rcp
11292 /* 33303 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/0, /*OtherMI*/0, /*OtherOpIdx*/1,
11293 /* 33308 */ // MIs[1] x
11294 /* 33308 */ // No operand predicates
11295 /* 33308 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11296 /* 33310 */ // Combiner Rule #289: fsqrt_of_rcp_to_rsq
11297 /* 33310 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_INTRINSIC),
11298 /* 33313 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11299 /* 33315 */ GIR_AddIntrinsicID, /*MI*/0, GIMT_Encode2(Intrinsic::amdgcn_rsq),
11300 /* 33319 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // x
11301 /* 33323 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11302 /* 33326 */ GIR_EraseRootFromParent_Done,
11303 /* 33327 */ // Label 605: @33327
11304 /* 33327 */ GIM_Try, /*On fail goto*//*Label 606*/ GIMT_Encode4(33348), // Rule ID 206 //
11305 /* 33332 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
11306 /* 33335 */ // MIs[0] dst
11307 /* 33335 */ // No operand predicates
11308 /* 33335 */ // MIs[0] src0
11309 /* 33335 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11310 /* 33339 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11311 /* 33343 */ // MIs[1] cst
11312 /* 33343 */ // No operand predicates
11313 /* 33343 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11314 /* 33345 */ // Combiner Rule #153: constant_fold_fsqrt
11315 /* 33345 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
11316 /* 33348 */ // Label 606: @33348
11317 /* 33348 */ GIM_Reject,
11318 /* 33349 */ // Label 111: @33349
11319 /* 33349 */ GIM_Try, /*On fail goto*//*Label 607*/ GIMT_Encode4(33370), // Rule ID 211 //
11320 /* 33354 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
11321 /* 33357 */ // MIs[0] dst
11322 /* 33357 */ // No operand predicates
11323 /* 33357 */ // MIs[0] src0
11324 /* 33357 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11325 /* 33361 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11326 /* 33365 */ // MIs[1] cst
11327 /* 33365 */ // No operand predicates
11328 /* 33365 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11329 /* 33367 */ // Combiner Rule #158: constant_fold_ffloor
11330 /* 33367 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
11331 /* 33370 */ // Label 607: @33370
11332 /* 33370 */ GIM_Reject,
11333 /* 33371 */ // Label 112: @33371
11334 /* 33371 */ GIM_Try, /*On fail goto*//*Label 608*/ GIMT_Encode4(33392), // Rule ID 215 //
11335 /* 33376 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
11336 /* 33379 */ // MIs[0] dst
11337 /* 33379 */ // No operand predicates
11338 /* 33379 */ // MIs[0] src0
11339 /* 33379 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11340 /* 33383 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11341 /* 33387 */ // MIs[1] cst
11342 /* 33387 */ // No operand predicates
11343 /* 33387 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11344 /* 33389 */ // Combiner Rule #162: constant_fold_frint
11345 /* 33389 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
11346 /* 33392 */ // Label 608: @33392
11347 /* 33392 */ GIM_Reject,
11348 /* 33393 */ // Label 113: @33393
11349 /* 33393 */ GIM_Try, /*On fail goto*//*Label 609*/ GIMT_Encode4(33414), // Rule ID 216 //
11350 /* 33398 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
11351 /* 33401 */ // MIs[0] dst
11352 /* 33401 */ // No operand predicates
11353 /* 33401 */ // MIs[0] src0
11354 /* 33401 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11355 /* 33405 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11356 /* 33409 */ // MIs[1] cst
11357 /* 33409 */ // No operand predicates
11358 /* 33409 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11359 /* 33411 */ // Combiner Rule #163: constant_fold_fnearbyint
11360 /* 33411 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
11361 /* 33414 */ // Label 609: @33414
11362 /* 33414 */ GIM_Reject,
11363 /* 33415 */ // Label 114: @33415
11364 /* 33415 */ GIM_Try, /*On fail goto*//*Label 610*/ GIMT_Encode4(33426), // Rule ID 461 //
11365 /* 33420 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule283Enabled),
11366 /* 33423 */ // MIs[0] dst
11367 /* 33423 */ // No operand predicates
11368 /* 33423 */ // MIs[0] cvt_f32_ubyteN.src
11369 /* 33423 */ // No operand predicates
11370 /* 33423 */ // Combiner Rule #283: cvt_f32_ubyteN @ [cvt_f32_ubyteN[0]]
11371 /* 33423 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
11372 /* 33426 */ // Label 610: @33426
11373 /* 33426 */ GIM_Reject,
11374 /* 33427 */ // Label 115: @33427
11375 /* 33427 */ GIM_Try, /*On fail goto*//*Label 611*/ GIMT_Encode4(33438), // Rule ID 462 //
11376 /* 33432 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule283Enabled),
11377 /* 33435 */ // MIs[0] dst
11378 /* 33435 */ // No operand predicates
11379 /* 33435 */ // MIs[0] cvt_f32_ubyteN.src
11380 /* 33435 */ // No operand predicates
11381 /* 33435 */ // Combiner Rule #283: cvt_f32_ubyteN @ [cvt_f32_ubyteN[1]]
11382 /* 33435 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
11383 /* 33438 */ // Label 611: @33438
11384 /* 33438 */ GIM_Reject,
11385 /* 33439 */ // Label 116: @33439
11386 /* 33439 */ GIM_Try, /*On fail goto*//*Label 612*/ GIMT_Encode4(33450), // Rule ID 463 //
11387 /* 33444 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule283Enabled),
11388 /* 33447 */ // MIs[0] dst
11389 /* 33447 */ // No operand predicates
11390 /* 33447 */ // MIs[0] cvt_f32_ubyteN.src
11391 /* 33447 */ // No operand predicates
11392 /* 33447 */ // Combiner Rule #283: cvt_f32_ubyteN @ [cvt_f32_ubyteN[2]]
11393 /* 33447 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
11394 /* 33450 */ // Label 612: @33450
11395 /* 33450 */ GIM_Reject,
11396 /* 33451 */ // Label 117: @33451
11397 /* 33451 */ GIM_Try, /*On fail goto*//*Label 613*/ GIMT_Encode4(33462), // Rule ID 464 //
11398 /* 33456 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule283Enabled),
11399 /* 33459 */ // MIs[0] dst
11400 /* 33459 */ // No operand predicates
11401 /* 33459 */ // MIs[0] cvt_f32_ubyteN.src
11402 /* 33459 */ // No operand predicates
11403 /* 33459 */ // Combiner Rule #283: cvt_f32_ubyteN @ [cvt_f32_ubyteN[3]]
11404 /* 33459 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
11405 /* 33462 */ // Label 613: @33462
11406 /* 33462 */ GIM_Reject,
11407 /* 33463 */ // Label 118: @33463
11408 /* 33463 */ GIM_Reject,
11409 /* 33464 */ }; // Size: 33464 bytes
11410 return MatchTable0;
11411}
11412#undef GIMT_Encode2
11413#undef GIMT_Encode4
11414#undef GIMT_Encode8
11415
11416
11417#endif // GET_GICOMBINER_IMPL
11418
11419#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
11420
11421AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
11422AvailableFunctionFeatures()
11423
11424#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
11425
11426#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
11427
11428, State(0),
11429ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
11430
11431#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
11432
11433