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 283; // "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 260; // "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 223; // "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 167; // "mulo_by_0"
70 case '2': // 1 string to match.
71 return 166; // "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 234; // "nneg_zext"
80 case 'o': // 1 string to match.
81 if (memcmp(RuleIdentifier.data()+1, "r_xor_or", 8) != 0)
82 break;
83 return 228; // "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 265; // "SubSmaxSub"
98 case 'U': // 1 string to match.
99 if (memcmp(RuleIdentifier.data()+4, "maxSub", 6) != 0)
100 break;
101 return 266; // "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 222; // "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 229; // "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 135; // "select_not"
139 case 'x': // 1 string to match.
140 if (memcmp(RuleIdentifier.data()+3, "t_trunc", 7) != 0)
141 break;
142 return 232; // "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 233; // "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 249; // "match_addos"
168 case 's': // 1 string to match.
169 if (memcmp(RuleIdentifier.data()+1, "ub_add_reg", 10) != 0)
170 break;
171 return 217; // "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 146; // "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 251; // "trunc_ssats"
191 case 'u': // 1 string to match.
192 return 252; // "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 253; // "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 242; // "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 168; // "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 256; // "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 219; // "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 197; // "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 147; // "not_cmp_fold"
240 case 'r': // 1 string to match.
241 if (memcmp(RuleIdentifier.data()+1, "edundant_or", 11) != 0)
242 break;
243 return 142; // "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 213; // "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 54; // "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 212; // "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 52; // "zext_of_zext"
265 }
266 break;
267 case 13: // 20 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 43; // "add_of_vscale"
285 case 'c': // 1 string to match.
286 if (memcmp(RuleIdentifier.data()+1, "ommute_shift", 12) != 0)
287 break;
288 return 186; // "commute_shift"
289 case 'f': // 1 string to match.
290 if (memcmp(RuleIdentifier.data()+1, "oldable_fneg", 12) != 0)
291 break;
292 return 278; // "foldable_fneg"
293 case 'l': // 1 string to match.
294 if (memcmp(RuleIdentifier.data()+1, "oad_and_mask", 12) != 0)
295 break;
296 return 75; // "load_and_mask"
297 case 'm': // 3 strings to match.
298 switch (RuleIdentifier[1]) {
299 default: break;
300 case 'a': // 1 string to match.
301 if (memcmp(RuleIdentifier.data()+2, "tch_selects", 11) != 0)
302 break;
303 return 133; // "match_selects"
304 case 'e': // 1 string to match.
305 if (memcmp(RuleIdentifier.data()+2, "rge_unmerge", 11) != 0)
306 break;
307 return 241; // "merge_unmerge"
308 case 'u': // 1 string to match.
309 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
310 break;
311 return 44; // "mul_of_vscale"
312 }
313 break;
314 case 'r': // 1 string to match.
315 if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
316 break;
317 return 141; // "redundant_and"
318 case 's': // 6 strings to match.
319 switch (RuleIdentifier[1]) {
320 default: break;
321 case 'a': // 1 string to match.
322 if (memcmp(RuleIdentifier.data()+2, "me_val_zero", 11) != 0)
323 break;
324 return 92; // "same_val_zero"
325 case 'd': // 1 string to match.
326 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
327 break;
328 return 215; // "sdiv_by_const"
329 case 'h': // 1 string to match.
330 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
331 break;
332 return 45; // "shl_of_vscale"
333 case 'r': // 1 string to match.
334 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
335 break;
336 return 211; // "srem_by_const"
337 case 'u': // 2 strings to match.
338 if (memcmp(RuleIdentifier.data()+2, "b_", 2) != 0)
339 break;
340 switch (RuleIdentifier[4]) {
341 default: break;
342 case 'm': // 1 string to match.
343 if (memcmp(RuleIdentifier.data()+5, "inus_one", 8) != 0)
344 break;
345 return 263; // "sub_minus_one"
346 case 'o': // 1 string to match.
347 if (memcmp(RuleIdentifier.data()+5, "f_vscale", 8) != 0)
348 break;
349 return 46; // "sub_of_vscale"
350 }
351 break;
352 }
353 break;
354 case 'u': // 4 strings to match.
355 switch (RuleIdentifier[1]) {
356 default: break;
357 case 'd': // 1 string to match.
358 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
359 break;
360 return 214; // "udiv_by_const"
361 case 'n': // 2 strings to match.
362 if (memcmp(RuleIdentifier.data()+2, "merge_", 6) != 0)
363 break;
364 switch (RuleIdentifier[8]) {
365 default: break;
366 case 'm': // 1 string to match.
367 if (memcmp(RuleIdentifier.data()+9, "erge", 4) != 0)
368 break;
369 return 240; // "unmerge_merge"
370 case 'u': // 1 string to match.
371 if (memcmp(RuleIdentifier.data()+9, "ndef", 4) != 0)
372 break;
373 return 243; // "unmerge_undef"
374 }
375 break;
376 case 'r': // 1 string to match.
377 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
378 break;
379 return 210; // "urem_by_const"
380 }
381 break;
382 }
383 break;
384 case 14: // 19 strings to match.
385 switch (RuleIdentifier[0]) {
386 default: break;
387 case 'A': // 2 strings to match.
388 switch (RuleIdentifier[1]) {
389 default: break;
390 case 'M': // 1 string to match.
391 if (memcmp(RuleIdentifier.data()+2, "inusC1PlusC2", 12) != 0)
392 break;
393 return 18; // "AMinusC1PlusC2"
394 case 'P': // 1 string to match.
395 if (memcmp(RuleIdentifier.data()+2, "lusC1MinusC2", 12) != 0)
396 break;
397 return 14; // "APlusC1MinusC2"
398 }
399 break;
400 case 'C': // 1 string to match.
401 if (memcmp(RuleIdentifier.data()+1, "2MinusAPlusC1", 13) != 0)
402 break;
403 return 15; // "C2MinusAPlusC1"
404 case 'N': // 1 string to match.
405 if (memcmp(RuleIdentifier.data()+1, "otAPlusNegOne", 13) != 0)
406 break;
407 return 13; // "NotAPlusNegOne"
408 case 'a': // 2 strings to match.
409 if (memcmp(RuleIdentifier.data()+1, "nyext_of_", 9) != 0)
410 break;
411 switch (RuleIdentifier[10]) {
412 default: break;
413 case 's': // 1 string to match.
414 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
415 break;
416 return 58; // "anyext_of_sext"
417 case 'z': // 1 string to match.
418 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
419 break;
420 return 57; // "anyext_of_zext"
421 }
422 break;
423 case 'b': // 3 strings to match.
424 if (RuleIdentifier[1] != 'i')
425 break;
426 switch (RuleIdentifier[2]) {
427 default: break;
428 case 'n': // 2 strings to match.
429 if (memcmp(RuleIdentifier.data()+3, "op_", 3) != 0)
430 break;
431 switch (RuleIdentifier[6]) {
432 default: break;
433 case 's': // 1 string to match.
434 if (memcmp(RuleIdentifier.data()+7, "ame_val", 7) != 0)
435 break;
436 return 91; // "binop_same_val"
437 case 'w': // 1 string to match.
438 if (memcmp(RuleIdentifier.data()+7, "ith_neg", 7) != 0)
439 break;
440 return 262; // "binop_with_neg"
441 }
442 break;
443 case 't': // 1 string to match.
444 if (memcmp(RuleIdentifier.data()+3, "reverse_shl", 11) != 0)
445 break;
446 return 184; // "bitreverse_shl"
447 }
448 break;
449 case 'c': // 1 string to match.
450 if (memcmp(RuleIdentifier.data()+1, "vt_f32_ubyteN", 13) != 0)
451 break;
452 return 276; // "cvt_f32_ubyteN"
453 case 'f': // 2 strings to match.
454 switch (RuleIdentifier[1]) {
455 default: break;
456 case 'a': // 1 string to match.
457 if (memcmp(RuleIdentifier.data()+2, "bs_fneg_fold", 12) != 0)
458 break;
459 return 196; // "fabs_fneg_fold"
460 case 'n': // 1 string to match.
461 if (memcmp(RuleIdentifier.data()+2, "eg_fneg_fold", 12) != 0)
462 break;
463 return 98; // "fneg_fneg_fold"
464 }
465 break;
466 case 'm': // 1 string to match.
467 if (memcmp(RuleIdentifier.data()+1, "ul_by_neg_one", 13) != 0)
468 break;
469 return 23; // "mul_by_neg_one"
470 case 'r': // 1 string to match.
471 if (memcmp(RuleIdentifier.data()+1, "eassoc_ptradd", 13) != 0)
472 break;
473 return 115; // "reassoc_ptradd"
474 case 's': // 3 strings to match.
475 switch (RuleIdentifier[1]) {
476 default: break;
477 case 'e': // 2 strings to match.
478 switch (RuleIdentifier[2]) {
479 default: break;
480 case 'l': // 1 string to match.
481 if (memcmp(RuleIdentifier.data()+3, "ect_of_zext", 11) != 0)
482 break;
483 return 60; // "select_of_zext"
484 case 'x': // 1 string to match.
485 if (memcmp(RuleIdentifier.data()+3, "t_of_anyext", 11) != 0)
486 break;
487 return 55; // "sext_of_anyext"
488 }
489 break;
490 case 'h': // 1 string to match.
491 if (memcmp(RuleIdentifier.data()+2, "ifts_too_big", 12) != 0)
492 break;
493 return 114; // "shifts_too_big"
494 }
495 break;
496 case 'u': // 1 string to match.
497 if (memcmp(RuleIdentifier.data()+1, "char_to_float", 13) != 0)
498 break;
499 return 275; // "uchar_to_float"
500 case 'z': // 1 string to match.
501 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
502 break;
503 return 53; // "zext_of_anyext"
504 }
505 break;
506 case 15: // 15 strings to match.
507 switch (RuleIdentifier[0]) {
508 default: break;
509 case 'A': // 2 strings to match.
510 switch (RuleIdentifier[1]) {
511 default: break;
512 case 'M': // 1 string to match.
513 if (memcmp(RuleIdentifier.data()+2, "inusC1MinusC2", 13) != 0)
514 break;
515 return 16; // "AMinusC1MinusC2"
516 case 'P': // 1 string to match.
517 if (memcmp(RuleIdentifier.data()+2, "lusZeroMinusB", 13) != 0)
518 break;
519 return 3; // "APlusZeroMinusB"
520 }
521 break;
522 case 'C': // 1 string to match.
523 if (memcmp(RuleIdentifier.data()+1, "1Minus2MinusC2", 14) != 0)
524 break;
525 return 17; // "C1Minus2MinusC2"
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': // 2 strings to match.
531 if (memcmp(RuleIdentifier.data()+1, "vgceil_", 7) != 0)
532 break;
533 switch (RuleIdentifier[8]) {
534 default: break;
535 case 's': // 1 string to match.
536 if (memcmp(RuleIdentifier.data()+9, "_match", 6) != 0)
537 break;
538 return 270; // "avgceil_s_match"
539 case 'u': // 1 string to match.
540 if (memcmp(RuleIdentifier.data()+9, "_match", 6) != 0)
541 break;
542 return 269; // "avgceil_u_match"
543 }
544 break;
545 case 'b': // 1 string to match.
546 if (memcmp(RuleIdentifier.data()+1, "itreverse_lshr", 14) != 0)
547 break;
548 return 185; // "bitreverse_lshr"
549 case 'e': // 1 string to match.
550 if (memcmp(RuleIdentifier.data()+1, "xtending_loads", 14) != 0)
551 break;
552 return 74; // "extending_loads"
553 case 'i': // 1 string to match.
554 if (memcmp(RuleIdentifier.data()+1, "dempotent_prop", 14) != 0)
555 break;
556 return 24; // "idempotent_prop"
557 case 'l': // 1 string to match.
558 if (memcmp(RuleIdentifier.data()+1, "oad_or_combine", 14) != 0)
559 break;
560 return 175; // "load_or_combine"
561 case 'n': // 1 string to match.
562 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_or", 14) != 0)
563 break;
564 return 68; // "narrow_binop_or"
565 case 'o': // 1 string to match.
566 if (memcmp(RuleIdentifier.data()+1, "verlapping_and", 14) != 0)
567 break;
568 return 165; // "overlapping_and"
569 case 'r': // 1 string to match.
570 if (memcmp(RuleIdentifier.data()+1, "cp_sqrt_to_rsq", 14) != 0)
571 break;
572 return 280; // "rcp_sqrt_to_rsq"
573 case 's': // 1 string to match.
574 if (memcmp(RuleIdentifier.data()+1, "elect_same_val", 14) != 0)
575 break;
576 return 89; // "select_same_val"
577 case 'z': // 1 string to match.
578 if (memcmp(RuleIdentifier.data()+1, "ext_trunc_fold", 14) != 0)
579 break;
580 return 144; // "zext_trunc_fold"
581 }
582 break;
583 case 16: // 18 strings to match.
584 switch (RuleIdentifier[0]) {
585 default: break;
586 case 'A': // 1 string to match.
587 if (memcmp(RuleIdentifier.data()+1, "MinusZeroMinusB", 15) != 0)
588 break;
589 return 11; // "AMinusZeroMinusB"
590 case 'a': // 3 strings to match.
591 switch (RuleIdentifier[1]) {
592 default: break;
593 case 'n': // 1 string to match.
594 if (memcmp(RuleIdentifier.data()+2, "yext_of_anyext", 14) != 0)
595 break;
596 return 56; // "anyext_of_anyext"
597 case 'v': // 2 strings to match.
598 if (memcmp(RuleIdentifier.data()+2, "gfloor_", 7) != 0)
599 break;
600 switch (RuleIdentifier[9]) {
601 default: break;
602 case 's': // 1 string to match.
603 if (memcmp(RuleIdentifier.data()+10, "_match", 6) != 0)
604 break;
605 return 268; // "avgfloor_s_match"
606 case 'u': // 1 string to match.
607 if (memcmp(RuleIdentifier.data()+10, "_match", 6) != 0)
608 break;
609 return 267; // "avgfloor_u_match"
610 }
611 break;
612 }
613 break;
614 case 'n': // 5 strings to match.
615 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_", 12) != 0)
616 break;
617 switch (RuleIdentifier[13]) {
618 default: break;
619 case 'a': // 2 strings to match.
620 switch (RuleIdentifier[14]) {
621 default: break;
622 case 'd': // 1 string to match.
623 if (RuleIdentifier[15] != 'd')
624 break;
625 return 64; // "narrow_binop_add"
626 case 'n': // 1 string to match.
627 if (RuleIdentifier[15] != 'd')
628 break;
629 return 67; // "narrow_binop_and"
630 }
631 break;
632 case 'm': // 1 string to match.
633 if (memcmp(RuleIdentifier.data()+14, "ul", 2) != 0)
634 break;
635 return 66; // "narrow_binop_mul"
636 case 's': // 1 string to match.
637 if (memcmp(RuleIdentifier.data()+14, "ub", 2) != 0)
638 break;
639 return 65; // "narrow_binop_sub"
640 case 'x': // 1 string to match.
641 if (memcmp(RuleIdentifier.data()+14, "or", 2) != 0)
642 break;
643 return 69; // "narrow_binop_xor"
644 }
645 break;
646 case 'o': // 1 string to match.
647 if (memcmp(RuleIdentifier.data()+1, "r_and_xor_to_or", 15) != 0)
648 break;
649 return 224; // "or_and_xor_to_or"
650 case 's': // 5 strings to match.
651 switch (RuleIdentifier[1]) {
652 default: break;
653 case 'e': // 3 strings to match.
654 if (memcmp(RuleIdentifier.data()+2, "lect_", 5) != 0)
655 break;
656 switch (RuleIdentifier[7]) {
657 default: break;
658 case 'o': // 1 string to match.
659 if (memcmp(RuleIdentifier.data()+8, "f_anyext", 8) != 0)
660 break;
661 return 61; // "select_of_anyext"
662 case 't': // 1 string to match.
663 if (memcmp(RuleIdentifier.data()+8, "o_minmax", 8) != 0)
664 break;
665 return 218; // "select_to_minmax"
666 case 'u': // 1 string to match.
667 if (memcmp(RuleIdentifier.data()+8, "ndef_cmp", 8) != 0)
668 break;
669 return 130; // "select_undef_cmp"
670 }
671 break;
672 case 'u': // 2 strings to match.
673 if (memcmp(RuleIdentifier.data()+2, "b_o", 3) != 0)
674 break;
675 switch (RuleIdentifier[5]) {
676 default: break;
677 case 'f': // 1 string to match.
678 if (memcmp(RuleIdentifier.data()+6, "_mul_const", 10) != 0)
679 break;
680 return 264; // "sub_of_mul_const"
681 case 'n': // 1 string to match.
682 if (memcmp(RuleIdentifier.data()+6, "e_from_sub", 10) != 0)
683 break;
684 return 261; // "sub_one_from_sub"
685 }
686 break;
687 }
688 break;
689 case 't': // 2 strings to match.
690 if (memcmp(RuleIdentifier.data()+1, "runcate_of_", 11) != 0)
691 break;
692 switch (RuleIdentifier[12]) {
693 default: break;
694 case 's': // 1 string to match.
695 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
696 break;
697 return 50; // "truncate_of_sext"
698 case 'z': // 1 string to match.
699 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
700 break;
701 return 49; // "truncate_of_zext"
702 }
703 break;
704 case 'u': // 1 string to match.
705 if (memcmp(RuleIdentifier.data()+1, "ndef_to_fp_zero", 15) != 0)
706 break;
707 return 77; // "undef_to_fp_zero"
708 }
709 break;
710 case 17: // 19 strings to match.
711 switch (RuleIdentifier[0]) {
712 default: break;
713 case 'A': // 2 strings to match.
714 if (memcmp(RuleIdentifier.data()+1, "PlusBMinus", 10) != 0)
715 break;
716 switch (RuleIdentifier[11]) {
717 default: break;
718 case 'A': // 1 string to match.
719 if (memcmp(RuleIdentifier.data()+12, "plusC", 5) != 0)
720 break;
721 return 8; // "APlusBMinusAplusC"
722 case 'C': // 1 string to match.
723 if (memcmp(RuleIdentifier.data()+12, "PlusA", 5) != 0)
724 break;
725 return 10; // "APlusBMinusCPlusA"
726 }
727 break;
728 case 'a': // 3 strings to match.
729 switch (RuleIdentifier[1]) {
730 default: break;
731 case 'd': // 1 string to match.
732 if (memcmp(RuleIdentifier.data()+2, "d_p2i_to_ptradd", 15) != 0)
733 break;
734 return 22; // "add_p2i_to_ptradd"
735 case 'n': // 2 strings to match.
736 switch (RuleIdentifier[2]) {
737 default: break;
738 case 'd': // 1 string to match.
739 if (memcmp(RuleIdentifier.data()+3, "_xor_or_to_and", 14) != 0)
740 break;
741 return 226; // "and_xor_or_to_and"
742 case 'y': // 1 string to match.
743 if (memcmp(RuleIdentifier.data()+3, "ext_trunc_fold", 14) != 0)
744 break;
745 return 97; // "anyext_trunc_fold"
746 }
747 break;
748 }
749 break;
750 case 'c': // 4 strings to match.
751 switch (RuleIdentifier[1]) {
752 default: break;
753 case 'a': // 2 strings to match.
754 if (memcmp(RuleIdentifier.data()+2, "nonicalize_", 11) != 0)
755 break;
756 switch (RuleIdentifier[13]) {
757 default: break;
758 case 'f': // 1 string to match.
759 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
760 break;
761 return 119; // "canonicalize_fcmp"
762 case 'i': // 1 string to match.
763 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
764 break;
765 return 118; // "canonicalize_icmp"
766 }
767 break;
768 case 'o': // 2 strings to match.
769 switch (RuleIdentifier[2]) {
770 default: break;
771 case 'm': // 1 string to match.
772 if (memcmp(RuleIdentifier.data()+3, "bine_or_of_and", 14) != 0)
773 break;
774 return 271; // "combine_or_of_and"
775 case 'n': // 1 string to match.
776 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fma", 14) != 0)
777 break;
778 return 193; // "constant_fold_fma"
779 }
780 break;
781 }
782 break;
783 case 'd': // 1 string to match.
784 if (memcmp(RuleIdentifier.data()+1, "iv_rem_to_divrem", 16) != 0)
785 break;
786 return 176; // "div_rem_to_divrem"
787 case 'e': // 1 string to match.
788 if (memcmp(RuleIdentifier.data()+1, "rase_undef_store", 16) != 0)
789 break;
790 return 87; // "erase_undef_store"
791 case 'f': // 1 string to match.
792 if (memcmp(RuleIdentifier.data()+1, "old_fabs_fptrunc", 16) != 0)
793 break;
794 return 279; // "fold_fabs_fptrunc"
795 case 'p': // 1 string to match.
796 if (memcmp(RuleIdentifier.data()+1, "tr_add_with_zero", 16) != 0)
797 break;
798 return 172; // "ptr_add_with_zero"
799 case 's': // 4 strings to match.
800 switch (RuleIdentifier[1]) {
801 default: break;
802 case 'e': // 2 strings to match.
803 if (memcmp(RuleIdentifier.data()+2, "lect_", 5) != 0)
804 break;
805 switch (RuleIdentifier[7]) {
806 default: break;
807 case 't': // 1 string to match.
808 if (memcmp(RuleIdentifier.data()+8, "o_iminmax", 9) != 0)
809 break;
810 return 132; // "select_to_iminmax"
811 case 'z': // 1 string to match.
812 if (memcmp(RuleIdentifier.data()+8, "ero_false", 9) != 0)
813 break;
814 return 134; // "select_zero_false"
815 }
816 break;
817 case 'h': // 1 string to match.
818 if (memcmp(RuleIdentifier.data()+2, "ift_immed_chain", 15) != 0)
819 break;
820 return 173; // "shift_immed_chain"
821 case 'r': // 1 string to match.
822 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
823 break;
824 return 209; // "srem_pow2_to_mask"
825 }
826 break;
827 case 'u': // 2 strings to match.
828 switch (RuleIdentifier[1]) {
829 default: break;
830 case 'n': // 1 string to match.
831 if (memcmp(RuleIdentifier.data()+2, "def_to_int_zero", 15) != 0)
832 break;
833 return 78; // "undef_to_int_zero"
834 case 'r': // 1 string to match.
835 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
836 break;
837 return 143; // "urem_pow2_to_mask"
838 }
839 break;
840 }
841 break;
842 case 18: // 13 strings to match.
843 switch (RuleIdentifier[0]) {
844 default: break;
845 case 'A': // 3 strings to match.
846 switch (RuleIdentifier[1]) {
847 default: break;
848 case 'M': // 2 strings to match.
849 if (memcmp(RuleIdentifier.data()+2, "inusBPlus", 9) != 0)
850 break;
851 switch (RuleIdentifier[11]) {
852 default: break;
853 case 'B': // 1 string to match.
854 if (memcmp(RuleIdentifier.data()+12, "MinusC", 6) != 0)
855 break;
856 return 7; // "AMinusBPlusBMinusC"
857 case 'C': // 1 string to match.
858 if (memcmp(RuleIdentifier.data()+12, "MinusA", 6) != 0)
859 break;
860 return 6; // "AMinusBPlusCMinusA"
861 }
862 break;
863 case 'P': // 1 string to match.
864 if (memcmp(RuleIdentifier.data()+2, "lusBMinusCMinusB", 16) != 0)
865 break;
866 return 0; // "APlusBMinusCMinusB"
867 }
868 break;
869 case 'b': // 1 string to match.
870 if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
871 break;
872 return 93; // "binop_left_to_zero"
873 case 'c': // 4 strings to match.
874 if (RuleIdentifier[1] != 'o')
875 break;
876 switch (RuleIdentifier[2]) {
877 default: break;
878 case 'm': // 2 strings to match.
879 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
880 break;
881 switch (RuleIdentifier[8]) {
882 default: break;
883 case 'm': // 1 string to match.
884 if (memcmp(RuleIdentifier.data()+9, "inmax_nan", 9) != 0)
885 break;
886 return 169; // "combine_minmax_nan"
887 case 'o': // 1 string to match.
888 if (memcmp(RuleIdentifier.data()+9, "r_s64_s32", 9) != 0)
889 break;
890 return 286; // "combine_or_s64_s32"
891 }
892 break;
893 case 'n': // 2 strings to match.
894 if (memcmp(RuleIdentifier.data()+3, "stant_fold_f", 12) != 0)
895 break;
896 switch (RuleIdentifier[15]) {
897 default: break;
898 case 'a': // 1 string to match.
899 if (memcmp(RuleIdentifier.data()+16, "bs", 2) != 0)
900 break;
901 return 150; // "constant_fold_fabs"
902 case 'n': // 1 string to match.
903 if (memcmp(RuleIdentifier.data()+16, "eg", 2) != 0)
904 break;
905 return 149; // "constant_fold_fneg"
906 }
907 break;
908 }
909 break;
910 case 'e': // 1 string to match.
911 if (memcmp(RuleIdentifier.data()+1, "xpand_const_fpowi", 17) != 0)
912 break;
913 return 170; // "expand_const_fpowi"
914 case 'f': // 1 string to match.
915 if (memcmp(RuleIdentifier.data()+1, "ptrunc_fpext_fold", 17) != 0)
916 break;
917 return 107; // "fptrunc_fpext_fold"
918 case 's': // 2 strings to match.
919 if (RuleIdentifier[1] != 'e')
920 break;
921 switch (RuleIdentifier[2]) {
922 default: break;
923 case 'l': // 1 string to match.
924 if (memcmp(RuleIdentifier.data()+3, "ect_of_truncate", 15) != 0)
925 break;
926 return 62; // "select_of_truncate"
927 case 'x': // 1 string to match.
928 if (memcmp(RuleIdentifier.data()+3, "t_inreg_of_load", 15) != 0)
929 break;
930 return 127; // "sext_inreg_of_load"
931 }
932 break;
933 case 't': // 1 string to match.
934 if (memcmp(RuleIdentifier.data()+1, "runcate_of_anyext", 17) != 0)
935 break;
936 return 51; // "truncate_of_anyext"
937 }
938 break;
939 case 19: // 19 strings to match.
940 switch (RuleIdentifier[0]) {
941 default: break;
942 case 'A': // 1 string to match.
943 if (memcmp(RuleIdentifier.data()+1, "MinusBMinusCMinusC", 18) != 0)
944 break;
945 return 1; // "AMinusBMinusCMinusC"
946 case 'b': // 1 string to match.
947 if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
948 break;
949 return 94; // "binop_right_to_zero"
950 case 'c': // 7 strings to match.
951 if (memcmp(RuleIdentifier.data()+1, "onst", 4) != 0)
952 break;
953 switch (RuleIdentifier[5]) {
954 default: break;
955 case '_': // 1 string to match.
956 if (memcmp(RuleIdentifier.data()+6, "ptradd_to_i2p", 13) != 0)
957 break;
958 return 164; // "const_ptradd_to_i2p"
959 case 'a': // 6 strings to match.
960 if (memcmp(RuleIdentifier.data()+6, "nt_fold_", 8) != 0)
961 break;
962 switch (RuleIdentifier[14]) {
963 default: break;
964 case 'b': // 1 string to match.
965 if (memcmp(RuleIdentifier.data()+15, "inop", 4) != 0)
966 break;
967 return 191; // "constant_fold_binop"
968 case 'f': // 5 strings to match.
969 switch (RuleIdentifier[15]) {
970 default: break;
971 case 'c': // 1 string to match.
972 if (memcmp(RuleIdentifier.data()+16, "eil", 3) != 0)
973 break;
974 return 155; // "constant_fold_fceil"
975 case 'l': // 1 string to match.
976 if (memcmp(RuleIdentifier.data()+16, "og2", 3) != 0)
977 break;
978 return 152; // "constant_fold_flog2"
979 case 'p': // 1 string to match.
980 if (memcmp(RuleIdentifier.data()+16, "ext", 3) != 0)
981 break;
982 return 154; // "constant_fold_fpext"
983 case 'r': // 1 string to match.
984 if (memcmp(RuleIdentifier.data()+16, "int", 3) != 0)
985 break;
986 return 160; // "constant_fold_frint"
987 case 's': // 1 string to match.
988 if (memcmp(RuleIdentifier.data()+16, "qrt", 3) != 0)
989 break;
990 return 151; // "constant_fold_fsqrt"
991 }
992 break;
993 }
994 break;
995 }
996 break;
997 case 'e': // 1 string to match.
998 if (memcmp(RuleIdentifier.data()+1, "xtend_through_phis", 18) != 0)
999 break;
1000 return 111; // "extend_through_phis"
1001 case 'i': // 1 string to match.
1002 if (memcmp(RuleIdentifier.data()+1, "nteger_of_truncate", 18) != 0)
1003 break;
1004 return 70; // "integer_of_truncate"
1005 case 'm': // 1 string to match.
1006 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_zero", 18) != 0)
1007 break;
1008 return 247; // "merge_of_x_and_zero"
1009 case 'p': // 1 string to match.
1010 if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
1011 break;
1012 return 117; // "ptr_add_immed_chain"
1013 case 'r': // 2 strings to match.
1014 switch (RuleIdentifier[1]) {
1015 default: break;
1016 case 'e': // 1 string to match.
1017 if (memcmp(RuleIdentifier.data()+2, "assoc_comm_binops", 17) != 0)
1018 break;
1019 return 116; // "reassoc_comm_binops"
1020 case 'i': // 1 string to match.
1021 if (memcmp(RuleIdentifier.data()+2, "ght_identity_zero", 17) != 0)
1022 break;
1023 return 90; // "right_identity_zero"
1024 }
1025 break;
1026 case 's': // 3 strings to match.
1027 switch (RuleIdentifier[1]) {
1028 default: break;
1029 case 'e': // 1 string to match.
1030 if (memcmp(RuleIdentifier.data()+2, "lect_constant_cmp", 17) != 0)
1031 break;
1032 return 131; // "select_constant_cmp"
1033 case 'i': // 2 strings to match.
1034 if (memcmp(RuleIdentifier.data()+2, "mplify_", 7) != 0)
1035 break;
1036 switch (RuleIdentifier[9]) {
1037 default: break;
1038 case 'a': // 1 string to match.
1039 if (memcmp(RuleIdentifier.data()+10, "dd_to_sub", 9) != 0)
1040 break;
1041 return 112; // "simplify_add_to_sub"
1042 case 'n': // 1 string to match.
1043 if (memcmp(RuleIdentifier.data()+10, "eg_minmax", 9) != 0)
1044 break;
1045 return 230; // "simplify_neg_minmax"
1046 }
1047 break;
1048 }
1049 break;
1050 case 'u': // 1 string to match.
1051 if (memcmp(RuleIdentifier.data()+1, "nary_undef_to_zero", 18) != 0)
1052 break;
1053 return 82; // "unary_undef_to_zero"
1054 }
1055 break;
1056 case 20: // 10 strings to match.
1057 switch (RuleIdentifier[0]) {
1058 default: break;
1059 case 'a': // 1 string to match.
1060 if (memcmp(RuleIdentifier.data()+1, "nd_or_disjoint_mask", 19) != 0)
1061 break;
1062 return 199; // "and_or_disjoint_mask"
1063 case 'b': // 1 string to match.
1064 if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold", 19) != 0)
1065 break;
1066 return 105; // "bitcast_bitcast_fold"
1067 case 'c': // 1 string to match.
1068 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_ffloor", 19) != 0)
1069 break;
1070 return 156; // "constant_fold_ffloor"
1071 case 'm': // 1 string to match.
1072 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_undef", 19) != 0)
1073 break;
1074 return 246; // "merge_of_x_and_undef"
1075 case 'o': // 1 string to match.
1076 if (memcmp(RuleIdentifier.data()+1, "r_and_xor_to_xor_or", 19) != 0)
1077 break;
1078 return 225; // "or_and_xor_to_xor_or"
1079 case 'r': // 3 strings to match.
1080 if (RuleIdentifier[1] != 'e')
1081 break;
1082 switch (RuleIdentifier[2]) {
1083 default: break;
1084 case 'd': // 2 strings to match.
1085 if (RuleIdentifier[3] != 'u')
1086 break;
1087 switch (RuleIdentifier[4]) {
1088 default: break;
1089 case 'c': // 1 string to match.
1090 if (memcmp(RuleIdentifier.data()+5, "e_shl_of_extend", 15) != 0)
1091 break;
1092 return 128; // "reduce_shl_of_extend"
1093 case 'n': // 1 string to match.
1094 if (memcmp(RuleIdentifier.data()+5, "dant_sext_inreg", 15) != 0)
1095 break;
1096 return 136; // "redundant_sext_inreg"
1097 }
1098 break;
1099 case 'm': // 1 string to match.
1100 if (memcmp(RuleIdentifier.data()+3, "ove_fcanonicalize", 17) != 0)
1101 break;
1102 return 277; // "remove_fcanonicalize"
1103 }
1104 break;
1105 case 'u': // 2 strings to match.
1106 if (RuleIdentifier[1] != 'n')
1107 break;
1108 switch (RuleIdentifier[2]) {
1109 default: break;
1110 case 'a': // 1 string to match.
1111 if (memcmp(RuleIdentifier.data()+3, "ry_undef_to_undef", 17) != 0)
1112 break;
1113 return 83; // "unary_undef_to_undef"
1114 case 'm': // 1 string to match.
1115 if (memcmp(RuleIdentifier.data()+3, "erge_zext_to_zext", 17) != 0)
1116 break;
1117 return 245; // "unmerge_zext_to_zext"
1118 }
1119 break;
1120 }
1121 break;
1122 case 21: // 13 strings to match.
1123 switch (RuleIdentifier[0]) {
1124 default: break;
1125 case 'a': // 1 string to match.
1126 if (memcmp(RuleIdentifier.data()+1, "nd_xor_or_to_xor_and", 20) != 0)
1127 break;
1128 return 227; // "and_xor_or_to_xor_and"
1129 case 'c': // 4 strings to match.
1130 if (RuleIdentifier[1] != 'o')
1131 break;
1132 switch (RuleIdentifier[2]) {
1133 default: break;
1134 case 'm': // 2 strings to match.
1135 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1136 break;
1137 switch (RuleIdentifier[8]) {
1138 default: break;
1139 case 'b': // 1 string to match.
1140 if (memcmp(RuleIdentifier.data()+9, "uild_unmerge", 12) != 0)
1141 break;
1142 return 248; // "combine_build_unmerge"
1143 case 'c': // 1 string to match.
1144 if (memcmp(RuleIdentifier.data()+9, "oncat_vector", 12) != 0)
1145 break;
1146 return 231; // "combine_concat_vector"
1147 }
1148 break;
1149 case 'n': // 2 strings to match.
1150 if (memcmp(RuleIdentifier.data()+3, "stant_fold_", 11) != 0)
1151 break;
1152 switch (RuleIdentifier[14]) {
1153 default: break;
1154 case 'c': // 1 string to match.
1155 if (memcmp(RuleIdentifier.data()+15, "ast_op", 6) != 0)
1156 break;
1157 return 194; // "constant_fold_cast_op"
1158 case 'f': // 1 string to match.
1159 if (memcmp(RuleIdentifier.data()+15, "ptrunc", 6) != 0)
1160 break;
1161 return 153; // "constant_fold_fptrunc"
1162 }
1163 break;
1164 }
1165 break;
1166 case 'e': // 1 string to match.
1167 if (memcmp(RuleIdentifier.data()+1, "xpand_promoted_fmed3", 20) != 0)
1168 break;
1169 return 273; // "expand_promoted_fmed3"
1170 case 'f': // 1 string to match.
1171 if (memcmp(RuleIdentifier.data()+1, "div_repeated_divison", 20) != 0)
1172 break;
1173 return 216; // "fdiv_repeated_divison"
1174 case 'i': // 1 string to match.
1175 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_elt_oob", 20) != 0)
1176 break;
1177 return 30; // "insert_vector_elt_oob"
1178 case 'l': // 1 string to match.
1179 if (memcmp(RuleIdentifier.data()+1, "shr_of_trunc_of_lshr", 20) != 0)
1180 break;
1181 return 255; // "lshr_of_trunc_of_lshr"
1182 case 'r': // 1 string to match.
1183 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
1184 break;
1185 return 100; // "right_identity_one_fp"
1186 case 's': // 1 string to match.
1187 if (memcmp(RuleIdentifier.data()+1, "ign_extension_in_reg", 20) != 0)
1188 break;
1189 return 282; // "sign_extension_in_reg"
1190 case 'u': // 2 strings to match.
1191 if (RuleIdentifier[1] != 'n')
1192 break;
1193 switch (RuleIdentifier[2]) {
1194 default: break;
1195 case 'd': // 1 string to match.
1196 if (memcmp(RuleIdentifier.data()+3, "ef_to_negative_one", 18) != 0)
1197 break;
1198 return 79; // "undef_to_negative_one"
1199 case 'm': // 1 string to match.
1200 if (memcmp(RuleIdentifier.data()+3, "erge_dead_to_trunc", 18) != 0)
1201 break;
1202 return 244; // "unmerge_dead_to_trunc"
1203 }
1204 break;
1205 }
1206 break;
1207 case 22: // 13 strings to match.
1208 switch (RuleIdentifier[0]) {
1209 default: break;
1210 case 'c': // 2 strings to match.
1211 if (RuleIdentifier[1] != 'o')
1212 break;
1213 switch (RuleIdentifier[2]) {
1214 default: break;
1215 case 'm': // 1 string to match.
1216 if (memcmp(RuleIdentifier.data()+3, "bine_shuffle_concat", 19) != 0)
1217 break;
1218 return 235; // "combine_shuffle_concat"
1219 case 'n': // 1 string to match.
1220 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fp_binop", 19) != 0)
1221 break;
1222 return 192; // "constant_fold_fp_binop"
1223 }
1224 break;
1225 case 'f': // 4 strings to match.
1226 switch (RuleIdentifier[1]) {
1227 default: break;
1228 case 'o': // 1 string to match.
1229 if (memcmp(RuleIdentifier.data()+2, "ld_binop_into_select", 20) != 0)
1230 break;
1231 return 208; // "fold_binop_into_select"
1232 case 'u': // 3 strings to match.
1233 if (memcmp(RuleIdentifier.data()+2, "nnel_shift_", 11) != 0)
1234 break;
1235 switch (RuleIdentifier[13]) {
1236 default: break;
1237 case 'l': // 1 string to match.
1238 if (memcmp(RuleIdentifier.data()+14, "eft_zero", 8) != 0)
1239 break;
1240 return 180; // "funnel_shift_left_zero"
1241 case 'o': // 1 string to match.
1242 if (memcmp(RuleIdentifier.data()+14, "vershift", 8) != 0)
1243 break;
1244 return 181; // "funnel_shift_overshift"
1245 case 't': // 1 string to match.
1246 if (memcmp(RuleIdentifier.data()+14, "o_rotate", 8) != 0)
1247 break;
1248 return 178; // "funnel_shift_to_rotate"
1249 }
1250 break;
1251 }
1252 break;
1253 case 'i': // 1 string to match.
1254 if (memcmp(RuleIdentifier.data()+1, "cmp_to_lhs_known_bits", 21) != 0)
1255 break;
1256 return 121; // "icmp_to_lhs_known_bits"
1257 case 'm': // 1 string to match.
1258 if (memcmp(RuleIdentifier.data()+1, "atch_subo_no_overflow", 21) != 0)
1259 break;
1260 return 250; // "match_subo_no_overflow"
1261 case 'p': // 1 string to match.
1262 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_any_op", 21) != 0)
1263 break;
1264 return 84; // "propagate_undef_any_op"
1265 case 'r': // 2 strings to match.
1266 switch (RuleIdentifier[1]) {
1267 default: break;
1268 case 'e': // 1 string to match.
1269 if (memcmp(RuleIdentifier.data()+2, "dundant_neg_operands", 20) != 0)
1270 break;
1271 return 198; // "redundant_neg_operands"
1272 case 'i': // 1 string to match.
1273 if (memcmp(RuleIdentifier.data()+2, "ght_identity_one_int", 20) != 0)
1274 break;
1275 return 99; // "right_identity_one_int"
1276 }
1277 break;
1278 case 's': // 1 string to match.
1279 if (memcmp(RuleIdentifier.data()+1, "hl_ashr_to_sext_inreg", 21) != 0)
1280 break;
1281 return 125; // "shl_ashr_to_sext_inreg"
1282 case 't': // 1 string to match.
1283 if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold", 21) != 0)
1284 break;
1285 return 103; // "trunc_buildvector_fold"
1286 }
1287 break;
1288 case 23: // 7 strings to match.
1289 switch (RuleIdentifier[0]) {
1290 default: break;
1291 case 'b': // 1 string to match.
1292 if (memcmp(RuleIdentifier.data()+1, "uildvector_of_truncate", 22) != 0)
1293 break;
1294 return 63; // "buildvector_of_truncate"
1295 case 'f': // 2 strings to match.
1296 switch (RuleIdentifier[1]) {
1297 default: break;
1298 case 'd': // 1 string to match.
1299 if (memcmp(RuleIdentifier.data()+2, "iv_by_sqrt_to_rsq_f16", 21) != 0)
1300 break;
1301 return 281; // "fdiv_by_sqrt_to_rsq_f16"
1302 case 'u': // 1 string to match.
1303 if (memcmp(RuleIdentifier.data()+2, "nnel_shift_right_zero", 21) != 0)
1304 break;
1305 return 179; // "funnel_shift_right_zero"
1306 }
1307 break;
1308 case 'i': // 2 strings to match.
1309 if (memcmp(RuleIdentifier.data()+1, "tof_const_zero_fold_", 20) != 0)
1310 break;
1311 switch (RuleIdentifier[21]) {
1312 default: break;
1313 case 's': // 1 string to match.
1314 if (RuleIdentifier[22] != 'i')
1315 break;
1316 return 162; // "itof_const_zero_fold_si"
1317 case 'u': // 1 string to match.
1318 if (RuleIdentifier[22] != 'i')
1319 break;
1320 return 163; // "itof_const_zero_fold_ui"
1321 }
1322 break;
1323 case 'p': // 1 string to match.
1324 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_all_ops", 22) != 0)
1325 break;
1326 return 85; // "propagate_undef_all_ops"
1327 case 't': // 1 string to match.
1328 if (memcmp(RuleIdentifier.data()+1, "runcusatu_to_fptouisat", 22) != 0)
1329 break;
1330 return 254; // "truncusatu_to_fptouisat"
1331 }
1332 break;
1333 case 24: // 10 strings to match.
1334 switch (RuleIdentifier[0]) {
1335 default: break;
1336 case 'b': // 1 string to match.
1337 if (memcmp(RuleIdentifier.data()+1, "inop_left_undef_to_zero", 23) != 0)
1338 break;
1339 return 80; // "binop_left_undef_to_zero"
1340 case 'c': // 4 strings to match.
1341 switch (RuleIdentifier[1]) {
1342 default: break;
1343 case 'o': // 1 string to match.
1344 if (memcmp(RuleIdentifier.data()+2, "nstant_fold_fnearbyint", 22) != 0)
1345 break;
1346 return 161; // "constant_fold_fnearbyint"
1347 case 't': // 3 strings to match.
1348 switch (RuleIdentifier[2]) {
1349 default: break;
1350 case 'l': // 2 strings to match.
1351 if (memcmp(RuleIdentifier.data()+3, "z_", 2) != 0)
1352 break;
1353 switch (RuleIdentifier[5]) {
1354 default: break;
1355 case 't': // 1 string to match.
1356 if (memcmp(RuleIdentifier.data()+6, "o_ctlz_zero_poison", 18) != 0)
1357 break;
1358 return 258; // "ctlz_to_ctlz_zero_poison"
1359 case 'z': // 1 string to match.
1360 if (memcmp(RuleIdentifier.data()+6, "ero_poison_to_ctls", 18) != 0)
1361 break;
1362 return 257; // "ctlz_zero_poison_to_ctls"
1363 }
1364 break;
1365 case 't': // 1 string to match.
1366 if (memcmp(RuleIdentifier.data()+3, "z_to_cttz_zero_poison", 21) != 0)
1367 break;
1368 return 259; // "cttz_to_cttz_zero_poison"
1369 }
1370 break;
1371 }
1372 break;
1373 case 'm': // 1 string to match.
1374 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element", 23) != 0)
1375 break;
1376 return 29; // "match_extract_of_element"
1377 case 'n': // 1 string to match.
1378 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_feeding_and", 23) != 0)
1379 break;
1380 return 129; // "narrow_binop_feeding_and"
1381 case 's': // 2 strings to match.
1382 if (memcmp(RuleIdentifier.data()+1, "ext_inreg_", 10) != 0)
1383 break;
1384 switch (RuleIdentifier[11]) {
1385 default: break;
1386 case 'o': // 1 string to match.
1387 if (memcmp(RuleIdentifier.data()+12, "f_sext_inreg", 12) != 0)
1388 break;
1389 return 59; // "sext_inreg_of_sext_inreg"
1390 case 't': // 1 string to match.
1391 if (memcmp(RuleIdentifier.data()+12, "o_zext_inreg", 12) != 0)
1392 break;
1393 return 145; // "sext_inreg_to_zext_inreg"
1394 }
1395 break;
1396 case 'x': // 1 string to match.
1397 if (memcmp(RuleIdentifier.data()+1, "or_of_and_with_same_reg", 23) != 0)
1398 break;
1399 return 171; // "xor_of_and_with_same_reg"
1400 }
1401 break;
1402 case 25: // 9 strings to match.
1403 switch (RuleIdentifier[0]) {
1404 default: break;
1405 case 'b': // 3 strings to match.
1406 switch (RuleIdentifier[1]) {
1407 default: break;
1408 case 'i': // 2 strings to match.
1409 if (memcmp(RuleIdentifier.data()+2, "tfield_extract_from_", 20) != 0)
1410 break;
1411 switch (RuleIdentifier[22]) {
1412 default: break;
1413 case 'a': // 1 string to match.
1414 if (memcmp(RuleIdentifier.data()+23, "nd", 2) != 0)
1415 break;
1416 return 188; // "bitfield_extract_from_and"
1417 case 's': // 1 string to match.
1418 if (memcmp(RuleIdentifier.data()+23, "hr", 2) != 0)
1419 break;
1420 return 189; // "bitfield_extract_from_shr"
1421 }
1422 break;
1423 case 'u': // 1 string to match.
1424 if (memcmp(RuleIdentifier.data()+2, "ildvector_identity_fold", 23) != 0)
1425 break;
1426 return 102; // "buildvector_identity_fold"
1427 }
1428 break;
1429 case 'c': // 1 string to match.
1430 if (memcmp(RuleIdentifier.data()+1, "ombine_shuffle_undef_rhs", 24) != 0)
1431 break;
1432 return 236; // "combine_shuffle_undef_rhs"
1433 case 'e': // 1 string to match.
1434 if (memcmp(RuleIdentifier.data()+1, "xtract_vec_elt_build_vec", 24) != 0)
1435 break;
1436 return 72; // "extract_vec_elt_build_vec"
1437 case 'n': // 1 string to match.
1438 if (memcmp(RuleIdentifier.data()+1, "eg_and_one_to_sext_inreg", 24) != 0)
1439 break;
1440 return 126; // "neg_and_one_to_sext_inreg"
1441 case 'r': // 3 strings to match.
1442 switch (RuleIdentifier[1]) {
1443 default: break;
1444 case 'e': // 2 strings to match.
1445 if (memcmp(RuleIdentifier.data()+2, "dundant_", 8) != 0)
1446 break;
1447 switch (RuleIdentifier[10]) {
1448 default: break;
1449 case 'a': // 1 string to match.
1450 if (memcmp(RuleIdentifier.data()+11, "ext_sext_inreg", 14) != 0)
1451 break;
1452 return 138; // "redundant_aext_sext_inreg"
1453 case 'z': // 1 string to match.
1454 if (memcmp(RuleIdentifier.data()+11, "ext_sext_inreg", 14) != 0)
1455 break;
1456 return 137; // "redundant_zext_sext_inreg"
1457 }
1458 break;
1459 case 'i': // 1 string to match.
1460 if (memcmp(RuleIdentifier.data()+2, "ght_identity_neg_one_fp", 23) != 0)
1461 break;
1462 return 110; // "right_identity_neg_one_fp"
1463 }
1464 break;
1465 }
1466 break;
1467 case 26: // 6 strings to match.
1468 switch (RuleIdentifier[0]) {
1469 default: break;
1470 case 'b': // 2 strings to match.
1471 if (RuleIdentifier[1] != 'i')
1472 break;
1473 switch (RuleIdentifier[2]) {
1474 default: break;
1475 case 'n': // 1 string to match.
1476 if (memcmp(RuleIdentifier.data()+3, "op_right_undef_to_undef", 23) != 0)
1477 break;
1478 return 81; // "binop_right_undef_to_undef"
1479 case 't': // 1 string to match.
1480 if (memcmp(RuleIdentifier.data()+3, "cast_bitcast_to_bitcast", 23) != 0)
1481 break;
1482 return 106; // "bitcast_bitcast_to_bitcast"
1483 }
1484 break;
1485 case 'c': // 2 strings to match.
1486 if (RuleIdentifier[1] != 'o')
1487 break;
1488 switch (RuleIdentifier[2]) {
1489 default: break;
1490 case 'm': // 1 string to match.
1491 if (memcmp(RuleIdentifier.data()+3, "mute_fp_constant_to_rhs", 23) != 0)
1492 break;
1493 return 221; // "commute_fp_constant_to_rhs"
1494 case 'n': // 1 string to match.
1495 if (memcmp(RuleIdentifier.data()+3, "stant_fold_unary_int_op", 23) != 0)
1496 break;
1497 return 195; // "constant_fold_unary_int_op"
1498 }
1499 break;
1500 case 'f': // 1 string to match.
1501 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_from_or_shift", 25) != 0)
1502 break;
1503 return 177; // "funnel_shift_from_or_shift"
1504 case 'r': // 1 string to match.
1505 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp", 25) != 0)
1506 break;
1507 return 108; // "right_identity_neg_zero_fp"
1508 }
1509 break;
1510 case 27: // 6 strings to match.
1511 switch (RuleIdentifier[0]) {
1512 default: break;
1513 case 'c': // 2 strings to match.
1514 if (memcmp(RuleIdentifier.data()+1, "om", 2) != 0)
1515 break;
1516 switch (RuleIdentifier[3]) {
1517 default: break;
1518 case 'b': // 1 string to match.
1519 if (memcmp(RuleIdentifier.data()+4, "ine_use_vector_truncate", 23) != 0)
1520 break;
1521 return 238; // "combine_use_vector_truncate"
1522 case 'm': // 1 string to match.
1523 if (memcmp(RuleIdentifier.data()+4, "ute_int_constant_to_rhs", 23) != 0)
1524 break;
1525 return 220; // "commute_int_constant_to_rhs"
1526 }
1527 break;
1528 case 'd': // 1 string to match.
1529 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_or_combine", 26) != 0)
1530 break;
1531 return 123; // "double_icmp_zero_or_combine"
1532 case 'r': // 1 string to match.
1533 if (memcmp(RuleIdentifier.data()+1, "edundant_binop_in_equality", 26) != 0)
1534 break;
1535 return 124; // "redundant_binop_in_equality"
1536 case 't': // 1 string to match.
1537 if (memcmp(RuleIdentifier.data()+1, "runc_lshr_buildvector_fold", 26) != 0)
1538 break;
1539 return 104; // "trunc_lshr_buildvector_fold"
1540 case 'u': // 1 string to match.
1541 if (memcmp(RuleIdentifier.data()+1, "nmerge_anyext_build_vector", 26) != 0)
1542 break;
1543 return 239; // "unmerge_anyext_build_vector"
1544 }
1545 break;
1546 case 28: // 5 strings to match.
1547 switch (RuleIdentifier[0]) {
1548 default: break;
1549 case 'c': // 1 string to match.
1550 if (memcmp(RuleIdentifier.data()+1, "ombine_or_s64_with_s32_mask", 27) != 0)
1551 break;
1552 return 284; // "combine_or_s64_with_s32_mask"
1553 case 'd': // 1 string to match.
1554 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_and_combine", 27) != 0)
1555 break;
1556 return 122; // "double_icmp_zero_and_combine"
1557 case 'o': // 1 string to match.
1558 if (memcmp(RuleIdentifier.data()+1, "pt_brcond_by_inverting_cond", 27) != 0)
1559 break;
1560 return 148; // "opt_brcond_by_inverting_cond"
1561 case 'p': // 1 string to match.
1562 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_shuffle_mask", 27) != 0)
1563 break;
1564 return 86; // "propagate_undef_shuffle_mask"
1565 case 's': // 1 string to match.
1566 if (memcmp(RuleIdentifier.data()+1, "hift_of_shifted_logic_chain", 27) != 0)
1567 break;
1568 return 174; // "shift_of_shifted_logic_chain"
1569 }
1570 break;
1571 case 29: // 7 strings to match.
1572 switch (RuleIdentifier[0]) {
1573 default: break;
1574 case 'b': // 1 string to match.
1575 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_shr_and", 28) != 0)
1576 break;
1577 return 190; // "bitfield_extract_from_shr_and"
1578 case 'c': // 5 strings to match.
1579 if (RuleIdentifier[1] != 'o')
1580 break;
1581 switch (RuleIdentifier[2]) {
1582 default: break;
1583 case 'm': // 3 strings to match.
1584 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1585 break;
1586 switch (RuleIdentifier[8]) {
1587 default: break;
1588 case 'a': // 1 string to match.
1589 if (memcmp(RuleIdentifier.data()+9, "nd_s64_with_s32_mask", 20) != 0)
1590 break;
1591 return 285; // "combine_and_s64_with_s32_mask"
1592 case 'e': // 1 string to match.
1593 if (memcmp(RuleIdentifier.data()+9, "xtracted_vector_load", 20) != 0)
1594 break;
1595 return 76; // "combine_extracted_vector_load"
1596 case 's': // 1 string to match.
1597 if (memcmp(RuleIdentifier.data()+9, "huffle_disjoint_mask", 20) != 0)
1598 break;
1599 return 237; // "combine_shuffle_disjoint_mask"
1600 }
1601 break;
1602 case 'n': // 2 strings to match.
1603 if (memcmp(RuleIdentifier.data()+3, "stant_fold_intrinsic_", 21) != 0)
1604 break;
1605 switch (RuleIdentifier[24]) {
1606 default: break;
1607 case 'r': // 1 string to match.
1608 if (memcmp(RuleIdentifier.data()+25, "ound", 4) != 0)
1609 break;
1610 return 158; // "constant_fold_intrinsic_round"
1611 case 't': // 1 string to match.
1612 if (memcmp(RuleIdentifier.data()+25, "runc", 4) != 0)
1613 break;
1614 return 157; // "constant_fold_intrinsic_trunc"
1615 }
1616 break;
1617 }
1618 break;
1619 case 'i': // 1 string to match.
1620 if (memcmp(RuleIdentifier.data()+1, "cmp_to_true_false_known_bits", 28) != 0)
1621 break;
1622 return 120; // "icmp_to_true_false_known_bits"
1623 }
1624 break;
1625 case 30: // 2 strings to match.
1626 switch (RuleIdentifier[0]) {
1627 default: break;
1628 case 'f': // 1 string to match.
1629 if (memcmp(RuleIdentifier.data()+1, "reeze_of_non_undef_non_poison", 29) != 0)
1630 break;
1631 return 47; // "freeze_of_non_undef_non_poison"
1632 case 'r': // 1 string to match.
1633 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp_nsz", 29) != 0)
1634 break;
1635 return 109; // "right_identity_neg_zero_fp_nsz"
1636 }
1637 break;
1638 case 31: // 3 strings to match.
1639 switch (RuleIdentifier[0]) {
1640 default: break;
1641 case 'f': // 1 string to match.
1642 if (memcmp(RuleIdentifier.data()+1, "cmp_select_to_fmin_fmax_legacy", 30) != 0)
1643 break;
1644 return 272; // "fcmp_select_to_fmin_fmax_legacy"
1645 case 'i': // 2 strings to match.
1646 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_element_", 21) != 0)
1647 break;
1648 switch (RuleIdentifier[22]) {
1649 default: break;
1650 case 'e': // 1 string to match.
1651 if (memcmp(RuleIdentifier.data()+23, "lt_undef", 8) != 0)
1652 break;
1653 return 28; // "insert_vector_element_elt_undef"
1654 case 'i': // 1 string to match.
1655 if (memcmp(RuleIdentifier.data()+23, "dx_undef", 8) != 0)
1656 break;
1657 return 27; // "insert_vector_element_idx_undef"
1658 }
1659 break;
1660 }
1661 break;
1662 case 32: // 4 strings to match.
1663 switch (RuleIdentifier[0]) {
1664 default: break;
1665 case 'b': // 1 string to match.
1666 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_sext_inreg", 31) != 0)
1667 break;
1668 return 187; // "bitfield_extract_from_sext_inreg"
1669 case 'c': // 2 strings to match.
1670 if (memcmp(RuleIdentifier.data()+1, "ombine_f", 8) != 0)
1671 break;
1672 switch (RuleIdentifier[9]) {
1673 default: break;
1674 case 'a': // 1 string to match.
1675 if (memcmp(RuleIdentifier.data()+10, "dd_fmul_to_fmad_or_fma", 22) != 0)
1676 break;
1677 return 200; // "combine_fadd_fmul_to_fmad_or_fma"
1678 case 's': // 1 string to match.
1679 if (memcmp(RuleIdentifier.data()+10, "ub_fmul_to_fmad_or_fma", 22) != 0)
1680 break;
1681 return 204; // "combine_fsub_fmul_to_fmad_or_fma"
1682 }
1683 break;
1684 case 'e': // 1 string to match.
1685 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_not_const", 31) != 0)
1686 break;
1687 return 31; // "extract_vector_element_not_const"
1688 }
1689 break;
1690 case 33: // 3 strings to match.
1691 switch (RuleIdentifier[0]) {
1692 default: break;
1693 case 'c': // 1 string to match.
1694 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_intrinsic_roundeven", 32) != 0)
1695 break;
1696 return 159; // "constant_fold_intrinsic_roundeven"
1697 case 'r': // 2 strings to match.
1698 if (memcmp(RuleIdentifier.data()+1, "edundant_", 9) != 0)
1699 break;
1700 switch (RuleIdentifier[10]) {
1701 default: break;
1702 case 'a': // 1 string to match.
1703 if (memcmp(RuleIdentifier.data()+11, "ext_unmerge_sext_inreg", 22) != 0)
1704 break;
1705 return 140; // "redundant_aext_unmerge_sext_inreg"
1706 case 'z': // 1 string to match.
1707 if (memcmp(RuleIdentifier.data()+11, "ext_unmerge_sext_inreg", 22) != 0)
1708 break;
1709 return 139; // "redundant_zext_unmerge_sext_inreg"
1710 }
1711 break;
1712 }
1713 break;
1714 case 34: // 2 strings to match.
1715 switch (RuleIdentifier[0]) {
1716 default: break;
1717 case 'c': // 1 string to match.
1718 if (memcmp(RuleIdentifier.data()+1, "ombine_fmul_with_select_to_fldexp", 33) != 0)
1719 break;
1720 return 274; // "combine_fmul_with_select_to_fldexp"
1721 case 'e': // 1 string to match.
1722 if (memcmp(RuleIdentifier.data()+1, "xtract_all_elts_from_build_vector", 33) != 0)
1723 break;
1724 return 73; // "extract_all_elts_from_build_vector"
1725 }
1726 break;
1727 case 35: // 1 string to match.
1728 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_build_vector", 35) != 0)
1729 break;
1730 return 33; // "extract_vector_element_build_vector"
1731 case 36: // 4 strings to match.
1732 switch (RuleIdentifier[0]) {
1733 default: break;
1734 case 'c': // 2 strings to match.
1735 if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
1736 break;
1737 switch (RuleIdentifier[8]) {
1738 default: break;
1739 case 'f': // 1 string to match.
1740 if (memcmp(RuleIdentifier.data()+9, "add_fma_fmul_to_fmad_or_fma", 27) != 0)
1741 break;
1742 return 202; // "combine_fadd_fma_fmul_to_fmad_or_fma"
1743 case 'i': // 1 string to match.
1744 if (memcmp(RuleIdentifier.data()+9, "nsert_vec_elts_build_vector", 27) != 0)
1745 break;
1746 return 71; // "combine_insert_vec_elts_build_vector"
1747 }
1748 break;
1749 case 'i': // 1 string to match.
1750 if (memcmp(RuleIdentifier.data()+1, "nsert_extract_vec_elt_out_of_bounds", 35) != 0)
1751 break;
1752 return 88; // "insert_extract_vec_elt_out_of_bounds"
1753 case 'm': // 1 string to match.
1754 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_index", 35) != 0)
1755 break;
1756 return 26; // "match_extract_of_element_undef_index"
1757 }
1758 break;
1759 case 37: // 4 strings to match.
1760 switch (RuleIdentifier[0]) {
1761 default: break;
1762 case 'c': // 1 string to match.
1763 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fneg_fmul_to_fmad_or_fma", 36) != 0)
1764 break;
1765 return 205; // "combine_fsub_fneg_fmul_to_fmad_or_fma"
1766 case 'e': // 1 string to match.
1767 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_shuffle_vector", 36) != 0)
1768 break;
1769 return 41; // "extract_vector_element_shuffle_vector"
1770 case 'h': // 1 string to match.
1771 if (memcmp(RuleIdentifier.data()+1, "oist_logic_op_with_same_opcode_hands", 36) != 0)
1772 break;
1773 return 113; // "hoist_logic_op_with_same_opcode_hands"
1774 case 'm': // 1 string to match.
1775 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_vector", 36) != 0)
1776 break;
1777 return 25; // "match_extract_of_element_undef_vector"
1778 }
1779 break;
1780 case 38: // 2 strings to match.
1781 if (memcmp(RuleIdentifier.data()+0, "combine_f", 9) != 0)
1782 break;
1783 switch (RuleIdentifier[9]) {
1784 default: break;
1785 case 'a': // 1 string to match.
1786 if (memcmp(RuleIdentifier.data()+10, "dd_fpext_fmul_to_fmad_or_fma", 28) != 0)
1787 break;
1788 return 201; // "combine_fadd_fpext_fmul_to_fmad_or_fma"
1789 case 's': // 1 string to match.
1790 if (memcmp(RuleIdentifier.data()+10, "ub_fpext_fmul_to_fmad_or_fma", 28) != 0)
1791 break;
1792 return 206; // "combine_fsub_fpext_fmul_to_fmad_or_fma"
1793 }
1794 break;
1795 case 40: // 1 string to match.
1796 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_different_indices", 40) != 0)
1797 break;
1798 return 32; // "extract_vector_element_different_indices"
1799 case 42: // 9 strings to match.
1800 switch (RuleIdentifier[0]) {
1801 default: break;
1802 case 'c': // 1 string to match.
1803 if (memcmp(RuleIdentifier.data()+1, "ombine_fadd_fpext_fma_fmul_to_fmad_or_fma", 41) != 0)
1804 break;
1805 return 203; // "combine_fadd_fpext_fma_fmul_to_fmad_or_fma"
1806 case 'e': // 7 strings to match.
1807 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_build_vector_trunc", 40) != 0)
1808 break;
1809 switch (RuleIdentifier[41]) {
1810 default: break;
1811 case '2': // 1 string to match.
1812 return 34; // "extract_vector_element_build_vector_trunc2"
1813 case '3': // 1 string to match.
1814 return 35; // "extract_vector_element_build_vector_trunc3"
1815 case '4': // 1 string to match.
1816 return 36; // "extract_vector_element_build_vector_trunc4"
1817 case '5': // 1 string to match.
1818 return 37; // "extract_vector_element_build_vector_trunc5"
1819 case '6': // 1 string to match.
1820 return 38; // "extract_vector_element_build_vector_trunc6"
1821 case '7': // 1 string to match.
1822 return 39; // "extract_vector_element_build_vector_trunc7"
1823 case '8': // 1 string to match.
1824 return 40; // "extract_vector_element_build_vector_trunc8"
1825 }
1826 break;
1827 case 'f': // 1 string to match.
1828 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_left", 41) != 0)
1829 break;
1830 return 182; // "funnel_shift_or_shift_to_funnel_shift_left"
1831 }
1832 break;
1833 case 43: // 2 strings to match.
1834 switch (RuleIdentifier[0]) {
1835 default: break;
1836 case 'c': // 1 string to match.
1837 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fpext_fneg_fmul_to_fmad_or_fma", 42) != 0)
1838 break;
1839 return 207; // "combine_fsub_fpext_fneg_fmul_to_fmad_or_fma"
1840 case 'f': // 1 string to match.
1841 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_right", 42) != 0)
1842 break;
1843 return 183; // "funnel_shift_or_shift_to_funnel_shift_right"
1844 }
1845 break;
1846 case 44: // 1 string to match.
1847 if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_extract_vector_element", 44) != 0)
1848 break;
1849 return 42; // "insert_vector_element_extract_vector_element"
1850 case 46: // 1 string to match.
1851 if (memcmp(RuleIdentifier.data()+0, "push_freeze_to_prevent_poison_from_propagating", 46) != 0)
1852 break;
1853 return 48; // "push_freeze_to_prevent_poison_from_propagating"
1854 }
1855#endif // ifndef NDEBUG
1856
1857 return std::nullopt;
1858}
1859static std::optional<std::pair<uint64_t, uint64_t>> getRuleRangeForIdentifier(StringRef RuleIdentifier) {
1860 std::pair<StringRef, StringRef> RangePair = RuleIdentifier.split(Separator: '-');
1861 if (!RangePair.second.empty()) {
1862 const auto First = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
1863 const auto Last = getRuleIdxForIdentifier(RuleIdentifier: RangePair.second);
1864 if (!First || !Last)
1865 return std::nullopt;
1866 if (First >= Last)
1867 report_fatal_error(reason: "Beginning of range should be before end of range");
1868 return {{*First, *Last + 1}};
1869 }
1870 if (RangePair.first == "*") {
1871 return {{0, 287}};
1872 }
1873 const auto I = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
1874 if (!I)
1875 return std::nullopt;
1876 return {{*I, *I + 1}};
1877}
1878
1879bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleEnabled(StringRef RuleIdentifier) {
1880 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1881 if (!MaybeRange)
1882 return false;
1883 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1884 DisabledRules.reset(Idx: I);
1885 return true;
1886}
1887
1888bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleDisabled(StringRef RuleIdentifier) {
1889 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1890 if (!MaybeRange)
1891 return false;
1892 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1893 DisabledRules.set(I);
1894 return true;
1895}
1896
1897static std::vector<std::string> AMDGPUPostLegalizerCombinerOption;
1898static cl::list<std::string> AMDGPUPostLegalizerCombinerDisableOption(
1899 "amdgpupostlegalizercombiner-disable-rule",
1900 cl::desc("Disable one or more combiner rules temporarily in the AMDGPUPostLegalizerCombiner pass"),
1901 cl::CommaSeparated,
1902 cl::Hidden,
1903 cl::cat(GICombinerOptionCategory),
1904 cl::callback(CB: [](const std::string &Str) {
1905 AMDGPUPostLegalizerCombinerOption.push_back(x: Str);
1906 }));
1907static cl::list<std::string> AMDGPUPostLegalizerCombinerOnlyEnableOption(
1908 "amdgpupostlegalizercombiner-only-enable-rule",
1909 cl::desc("Disable all rules in the AMDGPUPostLegalizerCombiner pass then re-enable the specified ones"),
1910 cl::Hidden,
1911 cl::cat(GICombinerOptionCategory),
1912 cl::callback(CB: [](const std::string &CommaSeparatedArg) {
1913 StringRef Str = CommaSeparatedArg;
1914 AMDGPUPostLegalizerCombinerOption.push_back(x: "*");
1915 do {
1916 auto X = Str.split(Separator: ",");
1917 AMDGPUPostLegalizerCombinerOption.push_back(x: ("!" + X.first).str());
1918 Str = X.second;
1919 } while (!Str.empty());
1920 }));
1921
1922
1923bool AMDGPUPostLegalizerCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
1924 return !DisabledRules.test(Idx: RuleID);
1925}
1926bool AMDGPUPostLegalizerCombinerImplRuleConfig::parseCommandLineOption() {
1927 for (StringRef Identifier : AMDGPUPostLegalizerCombinerOption) {
1928 bool Enabled = Identifier.consume_front(Prefix: "!");
1929 if (Enabled && !setRuleEnabled(Identifier))
1930 return false;
1931 if (!Enabled && !setRuleDisabled(Identifier))
1932 return false;
1933 }
1934 return true;
1935}
1936
1937
1938#endif // GET_GICOMBINER_TYPES
1939
1940#ifdef GET_GICOMBINER_TYPES
1941
1942const unsigned MAX_SUBTARGET_PREDICATES = 3;
1943using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
1944
1945#endif // GET_GICOMBINER_TYPES
1946
1947#ifdef GET_GICOMBINER_CLASS_MEMBERS
1948
1949 bool canMatchOpcode(unsigned Opc) const override;
1950
1951#endif // GET_GICOMBINER_CLASS_MEMBERS
1952
1953#ifdef GET_GICOMBINER_CLASS_MEMBERS
1954
1955PredicateBitset AvailableModuleFeatures;
1956mutable PredicateBitset AvailableFunctionFeatures;
1957PredicateBitset getAvailableFeatures() const {
1958 return AvailableModuleFeatures | AvailableFunctionFeatures;
1959}
1960PredicateBitset
1961computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const;
1962PredicateBitset
1963computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget,
1964 const MachineFunction *MF) const;
1965void setupGeneratedPerFunctionState(MachineFunction &MF) override;
1966
1967#endif // GET_GICOMBINER_CLASS_MEMBERS
1968
1969#ifdef GET_GICOMBINER_CLASS_MEMBERS
1970
1971 mutable MatcherState State;
1972 typedef ComplexRendererFns(AMDGPUPostLegalizerCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
1973 typedef void(AMDGPUPostLegalizerCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
1974 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
1975 static AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
1976 static AMDGPUPostLegalizerCombinerImpl::CustomRendererFn CustomRenderers[];
1977 bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
1978 bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
1979 bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
1980 const uint8_t *getMatchTable() const override;
1981 bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
1982 bool testMOPredicate_MO(unsigned PredicateID, const MachineOperand &MO, const MatcherState &State) const override;
1983 bool testSimplePredicate(unsigned PredicateID) const override;
1984 bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
1985
1986#endif // GET_GICOMBINER_CLASS_MEMBERS
1987
1988#ifdef GET_GICOMBINER_IMPL
1989
1990// LLT Objects.
1991enum {
1992 GILLT_i32,
1993 GILLT_i64,
1994 GILLT_f16,
1995 GILLT_f32,
1996};
1997const static size_t NumTypeObjects = 4;
1998const static LLT TypeObjects[] = {
1999 LLT(LLT::Kind::INTEGER, ElementCount::getFixed(0), 32),
2000 LLT(LLT::Kind::INTEGER, ElementCount::getFixed(0), 64),
2001 LLT(LLT::Kind::FLOAT, ElementCount::getFixed(0), 16, LLT::FpSemantics::S_IEEEhalf),
2002 LLT(LLT::Kind::FLOAT, ElementCount::getFixed(0), 32, LLT::FpSemantics::S_IEEEsingle),
2003};
2004
2005// Bits for subtarget features that participate in instruction matching.
2006enum SubtargetFeatureBits : uint8_t {
2007 Feature_Has16BitInstsBit = 1,
2008 Feature_NotHasMed3_16Bit = 2,
2009 Feature_HasFminFmaxLegacyBit = 0,
2010};
2011
2012PredicateBitset AMDGPUPostLegalizerCombinerImpl::
2013computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const {
2014 PredicateBitset Features{};
2015 if (Subtarget->has16BitInsts())
2016 Features.set(Feature_Has16BitInstsBit);
2017 if (!Subtarget->hasMed3_16())
2018 Features.set(Feature_NotHasMed3_16Bit);
2019 if (Subtarget->hasFminFmaxLegacy())
2020 Features.set(Feature_HasFminFmaxLegacyBit);
2021 return Features;
2022}
2023
2024void AMDGPUPostLegalizerCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) {
2025 AvailableFunctionFeatures = computeAvailableFunctionFeatures((const AMDGPUSubtarget *)&MF.getSubtarget(), &MF);
2026}
2027PredicateBitset AMDGPUPostLegalizerCombinerImpl::
2028computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget, const MachineFunction *MF) const {
2029 PredicateBitset Features{};
2030 return Features;
2031}
2032
2033// Feature bitsets.
2034enum {
2035 GIFBS_Invalid,
2036 GIFBS_HasFminFmaxLegacy,
2037 GIFBS_Has16BitInsts_NotHasMed3_16,
2038};
2039constexpr static PredicateBitset FeatureBitsets[] {
2040 {}, // GIFBS_Invalid
2041 {Feature_HasFminFmaxLegacyBit, },
2042 {Feature_Has16BitInstsBit, Feature_NotHasMed3_16Bit, },
2043};
2044
2045// ComplexPattern predicates.
2046enum {
2047 GICP_Invalid,
2048};
2049// See constructor for table contents
2050
2051AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn
2052AMDGPUPostLegalizerCombinerImpl::ComplexPredicateFns[] = {
2053 nullptr, // GICP_Invalid
2054};
2055
2056enum {
2057 GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
2058 GICXXPred_MI_Predicate_GICombiner1,
2059 GICXXPred_MI_Predicate_GICombiner2,
2060 GICXXPred_MI_Predicate_GICombiner3,
2061 GICXXPred_MI_Predicate_GICombiner4,
2062 GICXXPred_MI_Predicate_GICombiner5,
2063 GICXXPred_MI_Predicate_GICombiner6,
2064 GICXXPred_MI_Predicate_GICombiner7,
2065 GICXXPred_MI_Predicate_GICombiner8,
2066 GICXXPred_MI_Predicate_GICombiner9,
2067 GICXXPred_MI_Predicate_GICombiner10,
2068 GICXXPred_MI_Predicate_GICombiner11,
2069 GICXXPred_MI_Predicate_GICombiner12,
2070 GICXXPred_MI_Predicate_GICombiner13,
2071 GICXXPred_MI_Predicate_GICombiner14,
2072 GICXXPred_MI_Predicate_GICombiner15,
2073 GICXXPred_MI_Predicate_GICombiner16,
2074 GICXXPred_MI_Predicate_GICombiner17,
2075 GICXXPred_MI_Predicate_GICombiner18,
2076 GICXXPred_MI_Predicate_GICombiner19,
2077 GICXXPred_MI_Predicate_GICombiner20,
2078 GICXXPred_MI_Predicate_GICombiner21,
2079 GICXXPred_MI_Predicate_GICombiner22,
2080 GICXXPred_MI_Predicate_GICombiner23,
2081 GICXXPred_MI_Predicate_GICombiner24,
2082 GICXXPred_MI_Predicate_GICombiner25,
2083};
2084bool AMDGPUPostLegalizerCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
2085 switch (PredicateID) {
2086 case GICXXPred_MI_Predicate_GICombiner0: {
2087 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg());
2088 }
2089 case GICXXPred_MI_Predicate_GICombiner1: {
2090 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg());
2091 }
2092 case GICXXPred_MI_Predicate_GICombiner2: {
2093 return isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI);
2094 }
2095 case GICXXPred_MI_Predicate_GICombiner3: {
2096 return isGuaranteedNotToBeUndefOrPoison(State.MIs[0]->getOperand(1).getReg(), MRI);
2097 }
2098 case GICXXPred_MI_Predicate_GICombiner4: {
2099 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
2100 }
2101 case GICXXPred_MI_Predicate_GICombiner5: {
2102 return MRI.getType(State.MIs[1]->getOperand(1).getReg()) != MRI.getType(State.MIs[0]->getOperand(0).getReg());
2103 }
2104 case GICXXPred_MI_Predicate_GICombiner6: {
2105 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
2106 }
2107 case GICXXPred_MI_Predicate_GICombiner7: {
2108 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 0.0);
2109 }
2110 case GICXXPred_MI_Predicate_GICombiner8: {
2111 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0);
2112 }
2113 case GICXXPred_MI_Predicate_GICombiner9: {
2114 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_EQ &&
2115 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
2116 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
2117 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
2118 }
2119 case GICXXPred_MI_Predicate_GICombiner10: {
2120 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_NE &&
2121 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
2122 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
2123 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
2124 }
2125 case GICXXPred_MI_Predicate_GICombiner11: {
2126 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
2127 Helper.isLegalOrBeforeLegalizer({
2128 TargetOpcode::G_SEXT_INREG,
2129 {MRI.getType(State.MIs[1]->getOperand(1).getReg())},
2130 {},
2131 {1}
2132 });
2133 }
2134 case GICXXPred_MI_Predicate_GICombiner12: {
2135 return MRI.getType(State.MIs[0]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg()) &&
2136 VT->computeNumSignBits(State.MIs[0]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg()).getScalarSizeInBits();
2137 }
2138 case GICXXPred_MI_Predicate_GICombiner13: {
2139 LLT SrcTy = MRI.getType(State.MIs[1]->getOperand(1).getReg());
2140 return State.MIs[0]->getOperand(2).getImm() <= SrcTy.getScalarSizeInBits() &&
2141 VT->computeNumSignBits(State.MIs[1]->getOperand(1).getReg()) >=
2142 (SrcTy.getScalarSizeInBits() - State.MIs[0]->getOperand(2).getImm() + 1);
2143 llvm_unreachable("GICombiner13 should have returned");
2144 }
2145 case GICXXPred_MI_Predicate_GICombiner14: {
2146 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_LSHR,
2147 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
2148 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
2149 }
2150 case GICXXPred_MI_Predicate_GICombiner15: {
2151 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_SHL,
2152 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
2153 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
2154 }
2155 case GICXXPred_MI_Predicate_GICombiner16: {
2156 return Helper.matchTruncUSatU(*State.MIs[0], *State.MIs[1]);
2157 }
2158 case GICXXPred_MI_Predicate_GICombiner17: {
2159 return Helper.matchTruncUSatUToFPTOUISat(*State.MIs[0], *State.MIs[1]);
2160 }
2161 case GICXXPred_MI_Predicate_GICombiner18: {
2162 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
2163 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
2164 }
2165 case GICXXPred_MI_Predicate_GICombiner19: {
2166 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
2167 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
2168 }
2169 case GICXXPred_MI_Predicate_GICombiner20: {
2170 return MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(2).getReg()) &&
2171 MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg());
2172 }
2173 case GICXXPred_MI_Predicate_GICombiner21: {
2174 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[2]->getOperand(1).getReg(), State.MIs[3]->getOperand(1).getReg(), TargetOpcode::G_UAVGFLOOR);
2175 }
2176 case GICXXPred_MI_Predicate_GICombiner22: {
2177 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[2]->getOperand(1).getReg(), State.MIs[3]->getOperand(1).getReg(), TargetOpcode::G_SAVGFLOOR);
2178 }
2179 case GICXXPred_MI_Predicate_GICombiner23: {
2180 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[3]->getOperand(1).getReg(), State.MIs[4]->getOperand(1).getReg(), TargetOpcode::G_UAVGCEIL);
2181 }
2182 case GICXXPred_MI_Predicate_GICombiner24: {
2183 return Helper.matchAVG(*State.MIs[0], MRI, State.MIs[3]->getOperand(1).getReg(), State.MIs[4]->getOperand(1).getReg(), TargetOpcode::G_SAVGCEIL);
2184 }
2185 case GICXXPred_MI_Predicate_GICombiner25: {
2186 return Helper.matchConstantIs32BitMask(State.MIs[0]->getOperand(1).getReg()) ||
2187 Helper.matchConstantIs32BitMask(State.MIs[0]->getOperand(2).getReg());
2188 }
2189 }
2190 llvm_unreachable("Unknown predicate");
2191 return false;
2192}
2193bool AMDGPUPostLegalizerCombinerImpl::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
2194 llvm_unreachable("Unknown predicate");
2195 return false;
2196}
2197bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
2198 llvm_unreachable("Unknown predicate");
2199 return false;
2200}
2201bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
2202 llvm_unreachable("Unknown predicate");
2203 return false;
2204}
2205bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
2206 llvm_unreachable("Unknown predicate");
2207 return false;
2208}
2209enum {
2210 GICXXPred_Simple_IsRule0Enabled = GICXXPred_Invalid + 1,
2211 GICXXPred_Simple_IsRule1Enabled,
2212 GICXXPred_Simple_IsRule2Enabled,
2213 GICXXPred_Simple_IsRule3Enabled,
2214 GICXXPred_Simple_IsRule4Enabled,
2215 GICXXPred_Simple_IsRule5Enabled,
2216 GICXXPred_Simple_IsRule6Enabled,
2217 GICXXPred_Simple_IsRule7Enabled,
2218 GICXXPred_Simple_IsRule8Enabled,
2219 GICXXPred_Simple_IsRule9Enabled,
2220 GICXXPred_Simple_IsRule10Enabled,
2221 GICXXPred_Simple_IsRule11Enabled,
2222 GICXXPred_Simple_IsRule12Enabled,
2223 GICXXPred_Simple_IsRule13Enabled,
2224 GICXXPred_Simple_IsRule14Enabled,
2225 GICXXPred_Simple_IsRule15Enabled,
2226 GICXXPred_Simple_IsRule16Enabled,
2227 GICXXPred_Simple_IsRule17Enabled,
2228 GICXXPred_Simple_IsRule18Enabled,
2229 GICXXPred_Simple_IsRule19Enabled,
2230 GICXXPred_Simple_IsRule20Enabled,
2231 GICXXPred_Simple_IsRule21Enabled,
2232 GICXXPred_Simple_IsRule22Enabled,
2233 GICXXPred_Simple_IsRule23Enabled,
2234 GICXXPred_Simple_IsRule24Enabled,
2235 GICXXPred_Simple_IsRule25Enabled,
2236 GICXXPred_Simple_IsRule26Enabled,
2237 GICXXPred_Simple_IsRule27Enabled,
2238 GICXXPred_Simple_IsRule28Enabled,
2239 GICXXPred_Simple_IsRule29Enabled,
2240 GICXXPred_Simple_IsRule30Enabled,
2241 GICXXPred_Simple_IsRule31Enabled,
2242 GICXXPred_Simple_IsRule32Enabled,
2243 GICXXPred_Simple_IsRule33Enabled,
2244 GICXXPred_Simple_IsRule34Enabled,
2245 GICXXPred_Simple_IsRule35Enabled,
2246 GICXXPred_Simple_IsRule36Enabled,
2247 GICXXPred_Simple_IsRule37Enabled,
2248 GICXXPred_Simple_IsRule38Enabled,
2249 GICXXPred_Simple_IsRule39Enabled,
2250 GICXXPred_Simple_IsRule40Enabled,
2251 GICXXPred_Simple_IsRule41Enabled,
2252 GICXXPred_Simple_IsRule42Enabled,
2253 GICXXPred_Simple_IsRule43Enabled,
2254 GICXXPred_Simple_IsRule44Enabled,
2255 GICXXPred_Simple_IsRule45Enabled,
2256 GICXXPred_Simple_IsRule46Enabled,
2257 GICXXPred_Simple_IsRule47Enabled,
2258 GICXXPred_Simple_IsRule48Enabled,
2259 GICXXPred_Simple_IsRule49Enabled,
2260 GICXXPred_Simple_IsRule50Enabled,
2261 GICXXPred_Simple_IsRule51Enabled,
2262 GICXXPred_Simple_IsRule52Enabled,
2263 GICXXPred_Simple_IsRule53Enabled,
2264 GICXXPred_Simple_IsRule54Enabled,
2265 GICXXPred_Simple_IsRule55Enabled,
2266 GICXXPred_Simple_IsRule56Enabled,
2267 GICXXPred_Simple_IsRule57Enabled,
2268 GICXXPred_Simple_IsRule58Enabled,
2269 GICXXPred_Simple_IsRule59Enabled,
2270 GICXXPred_Simple_IsRule60Enabled,
2271 GICXXPred_Simple_IsRule61Enabled,
2272 GICXXPred_Simple_IsRule62Enabled,
2273 GICXXPred_Simple_IsRule63Enabled,
2274 GICXXPred_Simple_IsRule64Enabled,
2275 GICXXPred_Simple_IsRule65Enabled,
2276 GICXXPred_Simple_IsRule66Enabled,
2277 GICXXPred_Simple_IsRule67Enabled,
2278 GICXXPred_Simple_IsRule68Enabled,
2279 GICXXPred_Simple_IsRule69Enabled,
2280 GICXXPred_Simple_IsRule70Enabled,
2281 GICXXPred_Simple_IsRule71Enabled,
2282 GICXXPred_Simple_IsRule72Enabled,
2283 GICXXPred_Simple_IsRule73Enabled,
2284 GICXXPred_Simple_IsRule74Enabled,
2285 GICXXPred_Simple_IsRule75Enabled,
2286 GICXXPred_Simple_IsRule76Enabled,
2287 GICXXPred_Simple_IsRule77Enabled,
2288 GICXXPred_Simple_IsRule78Enabled,
2289 GICXXPred_Simple_IsRule79Enabled,
2290 GICXXPred_Simple_IsRule80Enabled,
2291 GICXXPred_Simple_IsRule81Enabled,
2292 GICXXPred_Simple_IsRule82Enabled,
2293 GICXXPred_Simple_IsRule83Enabled,
2294 GICXXPred_Simple_IsRule84Enabled,
2295 GICXXPred_Simple_IsRule85Enabled,
2296 GICXXPred_Simple_IsRule86Enabled,
2297 GICXXPred_Simple_IsRule87Enabled,
2298 GICXXPred_Simple_IsRule88Enabled,
2299 GICXXPred_Simple_IsRule89Enabled,
2300 GICXXPred_Simple_IsRule90Enabled,
2301 GICXXPred_Simple_IsRule91Enabled,
2302 GICXXPred_Simple_IsRule92Enabled,
2303 GICXXPred_Simple_IsRule93Enabled,
2304 GICXXPred_Simple_IsRule94Enabled,
2305 GICXXPred_Simple_IsRule95Enabled,
2306 GICXXPred_Simple_IsRule96Enabled,
2307 GICXXPred_Simple_IsRule97Enabled,
2308 GICXXPred_Simple_IsRule98Enabled,
2309 GICXXPred_Simple_IsRule99Enabled,
2310 GICXXPred_Simple_IsRule100Enabled,
2311 GICXXPred_Simple_IsRule101Enabled,
2312 GICXXPred_Simple_IsRule102Enabled,
2313 GICXXPred_Simple_IsRule103Enabled,
2314 GICXXPred_Simple_IsRule104Enabled,
2315 GICXXPred_Simple_IsRule105Enabled,
2316 GICXXPred_Simple_IsRule106Enabled,
2317 GICXXPred_Simple_IsRule107Enabled,
2318 GICXXPred_Simple_IsRule108Enabled,
2319 GICXXPred_Simple_IsRule109Enabled,
2320 GICXXPred_Simple_IsRule110Enabled,
2321 GICXXPred_Simple_IsRule111Enabled,
2322 GICXXPred_Simple_IsRule112Enabled,
2323 GICXXPred_Simple_IsRule113Enabled,
2324 GICXXPred_Simple_IsRule114Enabled,
2325 GICXXPred_Simple_IsRule115Enabled,
2326 GICXXPred_Simple_IsRule116Enabled,
2327 GICXXPred_Simple_IsRule117Enabled,
2328 GICXXPred_Simple_IsRule118Enabled,
2329 GICXXPred_Simple_IsRule119Enabled,
2330 GICXXPred_Simple_IsRule120Enabled,
2331 GICXXPred_Simple_IsRule121Enabled,
2332 GICXXPred_Simple_IsRule122Enabled,
2333 GICXXPred_Simple_IsRule123Enabled,
2334 GICXXPred_Simple_IsRule124Enabled,
2335 GICXXPred_Simple_IsRule125Enabled,
2336 GICXXPred_Simple_IsRule126Enabled,
2337 GICXXPred_Simple_IsRule127Enabled,
2338 GICXXPred_Simple_IsRule128Enabled,
2339 GICXXPred_Simple_IsRule129Enabled,
2340 GICXXPred_Simple_IsRule130Enabled,
2341 GICXXPred_Simple_IsRule131Enabled,
2342 GICXXPred_Simple_IsRule132Enabled,
2343 GICXXPred_Simple_IsRule133Enabled,
2344 GICXXPred_Simple_IsRule134Enabled,
2345 GICXXPred_Simple_IsRule135Enabled,
2346 GICXXPred_Simple_IsRule136Enabled,
2347 GICXXPred_Simple_IsRule137Enabled,
2348 GICXXPred_Simple_IsRule138Enabled,
2349 GICXXPred_Simple_IsRule139Enabled,
2350 GICXXPred_Simple_IsRule140Enabled,
2351 GICXXPred_Simple_IsRule141Enabled,
2352 GICXXPred_Simple_IsRule142Enabled,
2353 GICXXPred_Simple_IsRule143Enabled,
2354 GICXXPred_Simple_IsRule144Enabled,
2355 GICXXPred_Simple_IsRule145Enabled,
2356 GICXXPred_Simple_IsRule146Enabled,
2357 GICXXPred_Simple_IsRule147Enabled,
2358 GICXXPred_Simple_IsRule148Enabled,
2359 GICXXPred_Simple_IsRule149Enabled,
2360 GICXXPred_Simple_IsRule150Enabled,
2361 GICXXPred_Simple_IsRule151Enabled,
2362 GICXXPred_Simple_IsRule152Enabled,
2363 GICXXPred_Simple_IsRule153Enabled,
2364 GICXXPred_Simple_IsRule154Enabled,
2365 GICXXPred_Simple_IsRule155Enabled,
2366 GICXXPred_Simple_IsRule156Enabled,
2367 GICXXPred_Simple_IsRule157Enabled,
2368 GICXXPred_Simple_IsRule158Enabled,
2369 GICXXPred_Simple_IsRule159Enabled,
2370 GICXXPred_Simple_IsRule160Enabled,
2371 GICXXPred_Simple_IsRule161Enabled,
2372 GICXXPred_Simple_IsRule162Enabled,
2373 GICXXPred_Simple_IsRule163Enabled,
2374 GICXXPred_Simple_IsRule164Enabled,
2375 GICXXPred_Simple_IsRule165Enabled,
2376 GICXXPred_Simple_IsRule166Enabled,
2377 GICXXPred_Simple_IsRule167Enabled,
2378 GICXXPred_Simple_IsRule168Enabled,
2379 GICXXPred_Simple_IsRule169Enabled,
2380 GICXXPred_Simple_IsRule170Enabled,
2381 GICXXPred_Simple_IsRule171Enabled,
2382 GICXXPred_Simple_IsRule172Enabled,
2383 GICXXPred_Simple_IsRule173Enabled,
2384 GICXXPred_Simple_IsRule174Enabled,
2385 GICXXPred_Simple_IsRule175Enabled,
2386 GICXXPred_Simple_IsRule176Enabled,
2387 GICXXPred_Simple_IsRule177Enabled,
2388 GICXXPred_Simple_IsRule178Enabled,
2389 GICXXPred_Simple_IsRule179Enabled,
2390 GICXXPred_Simple_IsRule180Enabled,
2391 GICXXPred_Simple_IsRule181Enabled,
2392 GICXXPred_Simple_IsRule182Enabled,
2393 GICXXPred_Simple_IsRule183Enabled,
2394 GICXXPred_Simple_IsRule184Enabled,
2395 GICXXPred_Simple_IsRule185Enabled,
2396 GICXXPred_Simple_IsRule186Enabled,
2397 GICXXPred_Simple_IsRule187Enabled,
2398 GICXXPred_Simple_IsRule188Enabled,
2399 GICXXPred_Simple_IsRule189Enabled,
2400 GICXXPred_Simple_IsRule190Enabled,
2401 GICXXPred_Simple_IsRule191Enabled,
2402 GICXXPred_Simple_IsRule192Enabled,
2403 GICXXPred_Simple_IsRule193Enabled,
2404 GICXXPred_Simple_IsRule194Enabled,
2405 GICXXPred_Simple_IsRule195Enabled,
2406 GICXXPred_Simple_IsRule196Enabled,
2407 GICXXPred_Simple_IsRule197Enabled,
2408 GICXXPred_Simple_IsRule198Enabled,
2409 GICXXPred_Simple_IsRule199Enabled,
2410 GICXXPred_Simple_IsRule200Enabled,
2411 GICXXPred_Simple_IsRule201Enabled,
2412 GICXXPred_Simple_IsRule202Enabled,
2413 GICXXPred_Simple_IsRule203Enabled,
2414 GICXXPred_Simple_IsRule204Enabled,
2415 GICXXPred_Simple_IsRule205Enabled,
2416 GICXXPred_Simple_IsRule206Enabled,
2417 GICXXPred_Simple_IsRule207Enabled,
2418 GICXXPred_Simple_IsRule208Enabled,
2419 GICXXPred_Simple_IsRule209Enabled,
2420 GICXXPred_Simple_IsRule210Enabled,
2421 GICXXPred_Simple_IsRule211Enabled,
2422 GICXXPred_Simple_IsRule212Enabled,
2423 GICXXPred_Simple_IsRule213Enabled,
2424 GICXXPred_Simple_IsRule214Enabled,
2425 GICXXPred_Simple_IsRule215Enabled,
2426 GICXXPred_Simple_IsRule216Enabled,
2427 GICXXPred_Simple_IsRule217Enabled,
2428 GICXXPred_Simple_IsRule218Enabled,
2429 GICXXPred_Simple_IsRule219Enabled,
2430 GICXXPred_Simple_IsRule220Enabled,
2431 GICXXPred_Simple_IsRule221Enabled,
2432 GICXXPred_Simple_IsRule222Enabled,
2433 GICXXPred_Simple_IsRule223Enabled,
2434 GICXXPred_Simple_IsRule224Enabled,
2435 GICXXPred_Simple_IsRule225Enabled,
2436 GICXXPred_Simple_IsRule226Enabled,
2437 GICXXPred_Simple_IsRule227Enabled,
2438 GICXXPred_Simple_IsRule228Enabled,
2439 GICXXPred_Simple_IsRule229Enabled,
2440 GICXXPred_Simple_IsRule230Enabled,
2441 GICXXPred_Simple_IsRule231Enabled,
2442 GICXXPred_Simple_IsRule232Enabled,
2443 GICXXPred_Simple_IsRule233Enabled,
2444 GICXXPred_Simple_IsRule234Enabled,
2445 GICXXPred_Simple_IsRule235Enabled,
2446 GICXXPred_Simple_IsRule236Enabled,
2447 GICXXPred_Simple_IsRule237Enabled,
2448 GICXXPred_Simple_IsRule238Enabled,
2449 GICXXPred_Simple_IsRule239Enabled,
2450 GICXXPred_Simple_IsRule240Enabled,
2451 GICXXPred_Simple_IsRule241Enabled,
2452 GICXXPred_Simple_IsRule242Enabled,
2453 GICXXPred_Simple_IsRule243Enabled,
2454 GICXXPred_Simple_IsRule244Enabled,
2455 GICXXPred_Simple_IsRule245Enabled,
2456 GICXXPred_Simple_IsRule246Enabled,
2457 GICXXPred_Simple_IsRule247Enabled,
2458 GICXXPred_Simple_IsRule248Enabled,
2459 GICXXPred_Simple_IsRule249Enabled,
2460 GICXXPred_Simple_IsRule250Enabled,
2461 GICXXPred_Simple_IsRule251Enabled,
2462 GICXXPred_Simple_IsRule252Enabled,
2463 GICXXPred_Simple_IsRule253Enabled,
2464 GICXXPred_Simple_IsRule254Enabled,
2465 GICXXPred_Simple_IsRule255Enabled,
2466 GICXXPred_Simple_IsRule256Enabled,
2467 GICXXPred_Simple_IsRule257Enabled,
2468 GICXXPred_Simple_IsRule258Enabled,
2469 GICXXPred_Simple_IsRule259Enabled,
2470 GICXXPred_Simple_IsRule260Enabled,
2471 GICXXPred_Simple_IsRule261Enabled,
2472 GICXXPred_Simple_IsRule262Enabled,
2473 GICXXPred_Simple_IsRule263Enabled,
2474 GICXXPred_Simple_IsRule264Enabled,
2475 GICXXPred_Simple_IsRule265Enabled,
2476 GICXXPred_Simple_IsRule266Enabled,
2477 GICXXPred_Simple_IsRule267Enabled,
2478 GICXXPred_Simple_IsRule268Enabled,
2479 GICXXPred_Simple_IsRule269Enabled,
2480 GICXXPred_Simple_IsRule270Enabled,
2481 GICXXPred_Simple_IsRule271Enabled,
2482 GICXXPred_Simple_IsRule272Enabled,
2483 GICXXPred_Simple_IsRule273Enabled,
2484 GICXXPred_Simple_IsRule274Enabled,
2485 GICXXPred_Simple_IsRule275Enabled,
2486 GICXXPred_Simple_IsRule276Enabled,
2487 GICXXPred_Simple_IsRule277Enabled,
2488 GICXXPred_Simple_IsRule278Enabled,
2489 GICXXPred_Simple_IsRule279Enabled,
2490 GICXXPred_Simple_IsRule280Enabled,
2491 GICXXPred_Simple_IsRule281Enabled,
2492 GICXXPred_Simple_IsRule282Enabled,
2493 GICXXPred_Simple_IsRule283Enabled,
2494 GICXXPred_Simple_IsRule284Enabled,
2495 GICXXPred_Simple_IsRule285Enabled,
2496 GICXXPred_Simple_IsRule286Enabled,
2497};
2498
2499bool AMDGPUPostLegalizerCombinerImpl::testSimplePredicate(unsigned Predicate) const {
2500 return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1);
2501}
2502// Custom renderers.
2503enum {
2504 GICR_Invalid,
2505};
2506AMDGPUPostLegalizerCombinerImpl::CustomRendererFn
2507AMDGPUPostLegalizerCombinerImpl::CustomRenderers[] = {
2508 nullptr, // GICR_Invalid
2509};
2510
2511bool AMDGPUPostLegalizerCombinerImpl::canMatchOpcode(unsigned Opc) const {
2512 switch (Opc) {
2513 case TargetOpcode::G_FCMP:
2514 case TargetOpcode::G_FSHL:
2515 case TargetOpcode::G_FSHR:
2516 case TargetOpcode::G_ICMP:
2517 case TargetOpcode::G_INSERT_VECTOR_ELT:
2518 case TargetOpcode::G_SELECT:
2519 case TargetOpcode::G_SHUFFLE_VECTOR:
2520 case TargetOpcode::G_ADD:
2521 case TargetOpcode::G_AND:
2522 case TargetOpcode::G_ASHR:
2523 case TargetOpcode::G_EXTRACT_VECTOR_ELT:
2524 case TargetOpcode::G_FADD:
2525 case TargetOpcode::G_FCOPYSIGN:
2526 case TargetOpcode::G_FDIV:
2527 case TargetOpcode::G_FMAXIMUM:
2528 case TargetOpcode::G_FMAXIMUMNUM:
2529 case TargetOpcode::G_FMAXNUM:
2530 case TargetOpcode::G_FMINIMUM:
2531 case TargetOpcode::G_FMINIMUMNUM:
2532 case TargetOpcode::G_FMINNUM:
2533 case TargetOpcode::G_FMUL:
2534 case TargetOpcode::G_FPOWI:
2535 case TargetOpcode::G_FREM:
2536 case TargetOpcode::G_FSUB:
2537 case TargetOpcode::G_LSHR:
2538 case TargetOpcode::G_MERGE_VALUES:
2539 case TargetOpcode::G_MUL:
2540 case TargetOpcode::G_OR:
2541 case TargetOpcode::G_PTR_ADD:
2542 case TargetOpcode::G_ROTL:
2543 case TargetOpcode::G_ROTR:
2544 case TargetOpcode::G_SDIV:
2545 case TargetOpcode::G_SEXT_INREG:
2546 case TargetOpcode::G_SHL:
2547 case TargetOpcode::G_SREM:
2548 case TargetOpcode::G_SUB:
2549 case TargetOpcode::G_UDIV:
2550 case TargetOpcode::G_UREM:
2551 case TargetOpcode::G_XOR:
2552 case TargetOpcode::COPY:
2553 case TargetOpcode::G_ABS:
2554 case TargetOpcode::G_ANYEXT:
2555 case TargetOpcode::G_BITCAST:
2556 case TargetOpcode::G_BITREVERSE:
2557 case TargetOpcode::G_BSWAP:
2558 case TargetOpcode::G_BUILD_VECTOR:
2559 case TargetOpcode::G_CTLZ:
2560 case TargetOpcode::G_CTLZ_ZERO_POISON:
2561 case TargetOpcode::G_CTPOP:
2562 case TargetOpcode::G_CTTZ:
2563 case TargetOpcode::G_CTTZ_ZERO_POISON:
2564 case TargetOpcode::G_FABS:
2565 case TargetOpcode::G_FCANONICALIZE:
2566 case TargetOpcode::G_FCEIL:
2567 case TargetOpcode::G_FFLOOR:
2568 case TargetOpcode::G_FLOG2:
2569 case TargetOpcode::G_FNEARBYINT:
2570 case TargetOpcode::G_FNEG:
2571 case TargetOpcode::G_FPEXT:
2572 case TargetOpcode::G_FPTOSI:
2573 case TargetOpcode::G_FPTOUI:
2574 case TargetOpcode::G_FPTRUNC:
2575 case TargetOpcode::G_FREEZE:
2576 case TargetOpcode::G_FRINT:
2577 case TargetOpcode::G_FSQRT:
2578 case TargetOpcode::G_INTRINSIC_ROUND:
2579 case TargetOpcode::G_INTRINSIC_ROUNDEVEN:
2580 case TargetOpcode::G_INTRINSIC_TRUNC:
2581 case TargetOpcode::G_INTTOPTR:
2582 case TargetOpcode::G_PTRTOINT:
2583 case TargetOpcode::G_SEXT:
2584 case TargetOpcode::G_SITOFP:
2585 case TargetOpcode::G_TRUNC:
2586 case TargetOpcode::G_TRUNC_USAT_U:
2587 case TargetOpcode::G_UITOFP:
2588 case TargetOpcode::G_ZEXT:
2589 case AMDGPU::G_AMDGPU_CVT_F32_UBYTE0:
2590 case AMDGPU::G_AMDGPU_CVT_F32_UBYTE1:
2591 case AMDGPU::G_AMDGPU_CVT_F32_UBYTE2:
2592 case AMDGPU::G_AMDGPU_CVT_F32_UBYTE3:
2593 case TargetOpcode::G_BR:
2594 case TargetOpcode::G_BUILD_VECTOR_TRUNC:
2595 case TargetOpcode::G_CONCAT_VECTORS:
2596 case TargetOpcode::G_FMA:
2597 case TargetOpcode::G_FMAD:
2598 case TargetOpcode::G_FMAXNUM_IEEE:
2599 case TargetOpcode::G_FMINNUM_IEEE:
2600 case TargetOpcode::G_INTRINSIC:
2601 case TargetOpcode::G_LOAD:
2602 case TargetOpcode::G_PHI:
2603 case TargetOpcode::G_SADDE:
2604 case TargetOpcode::G_SADDO:
2605 case TargetOpcode::G_SADDSAT:
2606 case TargetOpcode::G_SEXTLOAD:
2607 case TargetOpcode::G_SMAX:
2608 case TargetOpcode::G_SMIN:
2609 case TargetOpcode::G_SMULFIX:
2610 case TargetOpcode::G_SMULFIXSAT:
2611 case TargetOpcode::G_SMULH:
2612 case TargetOpcode::G_SMULO:
2613 case TargetOpcode::G_SSHLSAT:
2614 case TargetOpcode::G_SSUBE:
2615 case TargetOpcode::G_SSUBO:
2616 case TargetOpcode::G_STORE:
2617 case TargetOpcode::G_UADDE:
2618 case TargetOpcode::G_UADDO:
2619 case TargetOpcode::G_UADDSAT:
2620 case TargetOpcode::G_UMAX:
2621 case TargetOpcode::G_UMIN:
2622 case TargetOpcode::G_UMULFIX:
2623 case TargetOpcode::G_UMULFIXSAT:
2624 case TargetOpcode::G_UMULH:
2625 case TargetOpcode::G_UMULO:
2626 case TargetOpcode::G_UNMERGE_VALUES:
2627 case TargetOpcode::G_USHLSAT:
2628 case TargetOpcode::G_USUBE:
2629 case TargetOpcode::G_USUBO:
2630 case TargetOpcode::G_ZEXTLOAD:
2631 return true;
2632 default:
2633 return false;
2634 }
2635}
2636
2637bool AMDGPUPostLegalizerCombinerImpl::tryCombineAllImpl(MachineInstr &I) const {
2638 const PredicateBitset AvailableFeatures = getAvailableFeatures();
2639 State.MIs.clear();
2640 State.MIs.push_back(&I);
2641 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), Helper.getTII(), MRI, Helper.getTRI(), Helper.getRBI(), AvailableFeatures, /*CoverageInfo*/ nullptr)) {
2642 return true;
2643 }
2644
2645 return false;
2646}
2647
2648enum {
2649 GICXXCustomAction_GICombiner0 = GICXXCustomAction_Invalid + 1,
2650 GICXXCustomAction_GICombiner1,
2651 GICXXCustomAction_GICombiner2,
2652 GICXXCustomAction_GICombiner3,
2653 GICXXCustomAction_GICombiner4,
2654 GICXXCustomAction_GICombiner5,
2655 GICXXCustomAction_GICombiner6,
2656 GICXXCustomAction_GICombiner7,
2657 GICXXCustomAction_GICombiner8,
2658 GICXXCustomAction_GICombiner9,
2659 GICXXCustomAction_GICombiner10,
2660 GICXXCustomAction_GICombiner11,
2661 GICXXCustomAction_GICombiner12,
2662 GICXXCustomAction_GICombiner13,
2663 GICXXCustomAction_GICombiner14,
2664 GICXXCustomAction_GICombiner15,
2665 GICXXCustomAction_GICombiner16,
2666 GICXXCustomAction_GICombiner17,
2667 GICXXCustomAction_GICombiner18,
2668 GICXXCustomAction_GICombiner19,
2669 GICXXCustomAction_GICombiner20,
2670 GICXXCustomAction_GICombiner21,
2671 GICXXCustomAction_GICombiner22,
2672 GICXXCustomAction_GICombiner23,
2673 GICXXCustomAction_GICombiner24,
2674 GICXXCustomAction_GICombiner25,
2675 GICXXCustomAction_GICombiner26,
2676 GICXXCustomAction_GICombiner27,
2677 GICXXCustomAction_GICombiner28,
2678 GICXXCustomAction_GICombiner29,
2679 GICXXCustomAction_GICombiner30,
2680 GICXXCustomAction_GICombiner31,
2681 GICXXCustomAction_GICombiner32,
2682 GICXXCustomAction_GICombiner33,
2683 GICXXCustomAction_GICombiner34,
2684 GICXXCustomAction_GICombiner35,
2685 GICXXCustomAction_GICombiner36,
2686 GICXXCustomAction_GICombiner37,
2687 GICXXCustomAction_GICombiner38,
2688 GICXXCustomAction_GICombiner39,
2689 GICXXCustomAction_GICombiner40,
2690 GICXXCustomAction_GICombiner41,
2691 GICXXCustomAction_GICombiner42,
2692 GICXXCustomAction_GICombiner43,
2693 GICXXCustomAction_GICombiner44,
2694 GICXXCustomAction_GICombiner45,
2695 GICXXCustomAction_GICombiner46,
2696 GICXXCustomAction_GICombiner47,
2697 GICXXCustomAction_GICombiner48,
2698 GICXXCustomAction_GICombiner49,
2699 GICXXCustomAction_GICombiner50,
2700 GICXXCustomAction_GICombiner51,
2701 GICXXCustomAction_GICombiner52,
2702 GICXXCustomAction_GICombiner53,
2703 GICXXCustomAction_GICombiner54,
2704 GICXXCustomAction_GICombiner55,
2705 GICXXCustomAction_GICombiner56,
2706 GICXXCustomAction_GICombiner57,
2707 GICXXCustomAction_GICombiner58,
2708 GICXXCustomAction_GICombiner59,
2709 GICXXCustomAction_GICombiner60,
2710 GICXXCustomAction_GICombiner61,
2711 GICXXCustomAction_GICombiner62,
2712 GICXXCustomAction_GICombiner63,
2713 GICXXCustomAction_GICombiner64,
2714 GICXXCustomAction_GICombiner65,
2715 GICXXCustomAction_GICombiner66,
2716 GICXXCustomAction_GICombiner67,
2717 GICXXCustomAction_GICombiner68,
2718 GICXXCustomAction_GICombiner69,
2719 GICXXCustomAction_GICombiner70,
2720 GICXXCustomAction_GICombiner71,
2721 GICXXCustomAction_GICombiner72,
2722 GICXXCustomAction_GICombiner73,
2723 GICXXCustomAction_GICombiner74,
2724 GICXXCustomAction_GICombiner75,
2725 GICXXCustomAction_GICombiner76,
2726 GICXXCustomAction_GICombiner77,
2727 GICXXCustomAction_GICombiner78,
2728 GICXXCustomAction_GICombiner79,
2729 GICXXCustomAction_GICombiner80,
2730 GICXXCustomAction_GICombiner81,
2731 GICXXCustomAction_GICombiner82,
2732 GICXXCustomAction_GICombiner83,
2733 GICXXCustomAction_GICombiner84,
2734 GICXXCustomAction_GICombiner85,
2735 GICXXCustomAction_GICombiner86,
2736 GICXXCustomAction_GICombiner87,
2737 GICXXCustomAction_GICombiner88,
2738 GICXXCustomAction_GICombiner89,
2739 GICXXCustomAction_GICombiner90,
2740 GICXXCustomAction_GICombiner91,
2741 GICXXCustomAction_GICombiner92,
2742 GICXXCustomAction_GICombiner93,
2743 GICXXCustomAction_GICombiner94,
2744 GICXXCustomAction_GICombiner95,
2745 GICXXCustomAction_GICombiner96,
2746 GICXXCustomAction_GICombiner97,
2747 GICXXCustomAction_GICombiner98,
2748 GICXXCustomAction_GICombiner99,
2749 GICXXCustomAction_GICombiner100,
2750 GICXXCustomAction_GICombiner101,
2751 GICXXCustomAction_GICombiner102,
2752 GICXXCustomAction_GICombiner103,
2753 GICXXCustomAction_GICombiner104,
2754 GICXXCustomAction_GICombiner105,
2755 GICXXCustomAction_GICombiner106,
2756 GICXXCustomAction_GICombiner107,
2757 GICXXCustomAction_GICombiner108,
2758 GICXXCustomAction_GICombiner109,
2759 GICXXCustomAction_GICombiner110,
2760 GICXXCustomAction_GICombiner111,
2761 GICXXCustomAction_GICombiner112,
2762 GICXXCustomAction_GICombiner113,
2763 GICXXCustomAction_GICombiner114,
2764 GICXXCustomAction_GICombiner115,
2765 GICXXCustomAction_GICombiner116,
2766 GICXXCustomAction_GICombiner117,
2767 GICXXCustomAction_GICombiner118,
2768 GICXXCustomAction_GICombiner119,
2769 GICXXCustomAction_GICombiner120,
2770 GICXXCustomAction_GICombiner121,
2771 GICXXCustomAction_GICombiner122,
2772 GICXXCustomAction_GICombiner123,
2773 GICXXCustomAction_GICombiner124,
2774 GICXXCustomAction_GICombiner125,
2775 GICXXCustomAction_GICombiner126,
2776 GICXXCustomAction_GICombiner127,
2777 GICXXCustomAction_GICombiner128,
2778 GICXXCustomAction_GICombiner129,
2779 GICXXCustomAction_GICombiner130,
2780 GICXXCustomAction_GICombiner131,
2781 GICXXCustomAction_GICombiner132,
2782 GICXXCustomAction_GICombiner133,
2783 GICXXCustomAction_GICombiner134,
2784 GICXXCustomAction_GICombiner135,
2785 GICXXCustomAction_GICombiner136,
2786 GICXXCustomAction_GICombiner137,
2787 GICXXCustomAction_GICombiner138,
2788 GICXXCustomAction_GICombiner139,
2789 GICXXCustomAction_GICombiner140,
2790 GICXXCustomAction_GICombiner141,
2791 GICXXCustomAction_GICombiner142,
2792 GICXXCustomAction_GICombiner143,
2793 GICXXCustomAction_GICombiner144,
2794 GICXXCustomAction_GICombiner145,
2795 GICXXCustomAction_GICombiner146,
2796 GICXXCustomAction_GICombiner147,
2797 GICXXCustomAction_GICombiner148,
2798 GICXXCustomAction_GICombiner149,
2799 GICXXCustomAction_GICombiner150,
2800 GICXXCustomAction_GICombiner151,
2801 GICXXCustomAction_GICombiner152,
2802 GICXXCustomAction_GICombiner153,
2803 GICXXCustomAction_GICombiner154,
2804 GICXXCustomAction_GICombiner155,
2805 GICXXCustomAction_GICombiner156,
2806 GICXXCustomAction_GICombiner157,
2807 GICXXCustomAction_GICombiner158,
2808 GICXXCustomAction_GICombiner159,
2809 GICXXCustomAction_GICombiner160,
2810 GICXXCustomAction_GICombiner161,
2811 GICXXCustomAction_GICombiner162,
2812 GICXXCustomAction_GICombiner163,
2813 GICXXCustomAction_GICombiner164,
2814 GICXXCustomAction_GICombiner165,
2815 GICXXCustomAction_GICombiner166,
2816 GICXXCustomAction_GICombiner167,
2817 GICXXCustomAction_GICombiner168,
2818 GICXXCustomAction_GICombiner169,
2819 GICXXCustomAction_GICombiner170,
2820 GICXXCustomAction_GICombiner171,
2821 GICXXCustomAction_GICombiner172,
2822};
2823bool AMDGPUPostLegalizerCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const {
2824 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
2825 switch(ApplyID) {
2826 case GICXXCustomAction_GICombiner0:{
2827 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2828 // Match Patterns
2829 if(![&](){return Helper.matchFoldAPlusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2830 return false;
2831 }
2832 // Apply Patterns
2833 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2834 return true;
2835 }
2836 case GICXXCustomAction_GICombiner1:{
2837 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2838 // Match Patterns
2839 if(![&](){return Helper.matchFoldC2MinusAPlusC1(*State.MIs[0], GIMatchData_matchinfo);}()) {
2840 return false;
2841 }
2842 // Apply Patterns
2843 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2844 return true;
2845 }
2846 case GICXXCustomAction_GICombiner2:{
2847 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2848 // Match Patterns
2849 if(![&](){return Helper.matchFoldAMinusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2850 return false;
2851 }
2852 // Apply Patterns
2853 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2854 return true;
2855 }
2856 case GICXXCustomAction_GICombiner3:{
2857 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2858 // Match Patterns
2859 if(![&](){return Helper.matchFoldC1Minus2MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2860 return false;
2861 }
2862 // Apply Patterns
2863 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2864 return true;
2865 }
2866 case GICXXCustomAction_GICombiner4:{
2867 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2868 // Match Patterns
2869 if(![&](){return Helper.matchFoldAMinusC1PlusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2870 return false;
2871 }
2872 // Apply Patterns
2873 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2874 return true;
2875 }
2876 case GICXXCustomAction_GICombiner5:{
2877 // Match Patterns
2878 if(![&](){return Helper.matchCombineCopy(*State.MIs[0]);}()) {
2879 return false;
2880 }
2881 // Apply Patterns
2882 Helper.applyCombineCopy(*State.MIs[0]);
2883 return true;
2884 }
2885 case GICXXCustomAction_GICombiner6:{
2886 unsigned GIMatchData_matchinfo;
2887 // Match Patterns
2888 if(![&](){return Helper.matchCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);}()) {
2889 return false;
2890 }
2891 // Apply Patterns
2892 Helper.applyCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);
2893 return true;
2894 }
2895 case GICXXCustomAction_GICombiner7:{
2896 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2897 // Match Patterns
2898 if(![&](){return Helper.matchCombineSubToAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2899 return false;
2900 }
2901 // Apply Patterns
2902 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2903 return true;
2904 }
2905 case GICXXCustomAction_GICombiner8:{
2906 std::pair<Register, bool> GIMatchData_info;
2907 // Match Patterns
2908 if(![&](){return Helper.matchCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info);}()) {
2909 return false;
2910 }
2911 // Apply Patterns
2912 Helper.applyCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info);
2913 return true;
2914 }
2915 case GICXXCustomAction_GICombiner9:{
2916 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2917 // Match Patterns
2918 if(![&](){return Helper.matchExtractVectorElement(*State.MIs[0], GIMatchData_matchinfo);}()) {
2919 return false;
2920 }
2921 // Apply Patterns
2922 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2923 return true;
2924 }
2925 case GICXXCustomAction_GICombiner10:{
2926 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2927 // Match Patterns
2928 if(![&](){return Helper.matchInsertVectorElementOOB(*State.MIs[0], GIMatchData_matchinfo);}()) {
2929 return false;
2930 }
2931 // Apply Patterns
2932 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2933 return true;
2934 }
2935 case GICXXCustomAction_GICombiner11:{
2936 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2937 // Match Patterns
2938 if(![&](){return Helper.matchExtractVectorElementWithDifferentIndices(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2939 return false;
2940 }
2941 // Apply Patterns
2942 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2943 return true;
2944 }
2945 case GICXXCustomAction_GICombiner12:{
2946 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2947 // Match Patterns
2948 if(![&](){return Helper.matchExtractVectorElementWithBuildVector(*State.MIs[0], *State.MIs[1],
2949 GIMatchData_matchinfo);}()) {
2950 return false;
2951 }
2952 // Apply Patterns
2953 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2954 return true;
2955 }
2956 case GICXXCustomAction_GICombiner13:{
2957 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2958 // Match Patterns
2959 if(![&](){return Helper.matchExtractVectorElementWithBuildVectorTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2960 return false;
2961 }
2962 // Apply Patterns
2963 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2964 return true;
2965 }
2966 case GICXXCustomAction_GICombiner14:{
2967 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2968 // Match Patterns
2969 if(![&](){return Helper.matchExtractVectorElementWithShuffleVector(*State.MIs[0], *State.MIs[1],
2970 GIMatchData_matchinfo);}()) {
2971 return false;
2972 }
2973 // Apply Patterns
2974 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2975 return true;
2976 }
2977 case GICXXCustomAction_GICombiner15:{
2978 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2979 // Match Patterns
2980 if(![&](){return Helper.matchAddOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2981 return false;
2982 }
2983 // Apply Patterns
2984 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2985 return true;
2986 }
2987 case GICXXCustomAction_GICombiner16:{
2988 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2989 // Match Patterns
2990 if(![&](){return Helper.matchMulOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2991 return false;
2992 }
2993 // Apply Patterns
2994 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2995 return true;
2996 }
2997 case GICXXCustomAction_GICombiner17:{
2998 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2999 // Match Patterns
3000 if(![&](){return Helper.matchShlOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3001 return false;
3002 }
3003 // Apply Patterns
3004 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3005 return true;
3006 }
3007 case GICXXCustomAction_GICombiner18:{
3008 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3009 // Match Patterns
3010 if(![&](){return Helper.matchSubOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3011 return false;
3012 }
3013 // Apply Patterns
3014 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3015 return true;
3016 }
3017 case GICXXCustomAction_GICombiner19:{
3018 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3019 // Match Patterns
3020 if(![&](){return !isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI) && Helper.matchFreezeOfSingleMaybePoisonOperand(*State.MIs[0], GIMatchData_matchinfo);}()) {
3021 return false;
3022 }
3023 // Apply Patterns
3024 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3025 return true;
3026 }
3027 case GICXXCustomAction_GICombiner20:{
3028 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3029 // Match Patterns
3030 if(![&](){return Helper.matchTruncateOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3031 return false;
3032 }
3033 // Apply Patterns
3034 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3035 return true;
3036 }
3037 case GICXXCustomAction_GICombiner21:{
3038 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3039 // Match Patterns
3040 if(![&](){return Helper.matchExtOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3041 return false;
3042 }
3043 // Apply Patterns
3044 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3045 return true;
3046 }
3047 case GICXXCustomAction_GICombiner22:{
3048 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3049 // Match Patterns
3050 if(![&](){return Helper.matchRedundantSextInReg(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3051 return false;
3052 }
3053 // Apply Patterns
3054 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3055 return true;
3056 }
3057 case GICXXCustomAction_GICombiner23:{
3058 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3059 // Match Patterns
3060 if(![&](){return Helper.matchCastOfSelect(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3061 return false;
3062 }
3063 // Apply Patterns
3064 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3065 return true;
3066 }
3067 case GICXXCustomAction_GICombiner24:{
3068 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3069 // Match Patterns
3070 if(![&](){return Helper.matchCastOfBuildVector(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3071 return false;
3072 }
3073 // Apply Patterns
3074 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3075 return true;
3076 }
3077 case GICXXCustomAction_GICombiner25:{
3078 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3079 // Match Patterns
3080 if(![&](){return Helper.matchNarrowBinop(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3081 return false;
3082 }
3083 // Apply Patterns
3084 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3085 return true;
3086 }
3087 case GICXXCustomAction_GICombiner26:{
3088 APInt GIMatchData_matchinfo;
3089 // Match Patterns
3090 if(![&](){return Helper.matchCastOfInteger(*State.MIs[0], GIMatchData_matchinfo);}()) {
3091 return false;
3092 }
3093 // Apply Patterns
3094 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3095 return true;
3096 }
3097 case GICXXCustomAction_GICombiner27:{
3098 SmallVector<Register> GIMatchData_info;
3099 // Match Patterns
3100 if(![&](){return Helper.matchCombineInsertVecElts(*State.MIs[0], GIMatchData_info);}()) {
3101 return false;
3102 }
3103 // Apply Patterns
3104 Helper.applyCombineInsertVecElts(*State.MIs[0], GIMatchData_info);
3105 return true;
3106 }
3107 case GICXXCustomAction_GICombiner28:{
3108 Register GIMatchData_matchinfo;
3109 // Match Patterns
3110 if(![&](){return Helper.matchExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);}()) {
3111 return false;
3112 }
3113 // Apply Patterns
3114 Helper.applyExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);
3115 return true;
3116 }
3117 case GICXXCustomAction_GICombiner29:{
3118 SmallVector<std::pair<Register, MachineInstr*>> GIMatchData_matchinfo;
3119 // Match Patterns
3120 if(![&](){return Helper.matchExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
3121 return false;
3122 }
3123 // Apply Patterns
3124 Helper.applyExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);
3125 return true;
3126 }
3127 case GICXXCustomAction_GICombiner30:{
3128 PreferredTuple GIMatchData_matchinfo;
3129 // Match Patterns
3130 if(![&](){return Helper.matchCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);}()) {
3131 return false;
3132 }
3133 // Apply Patterns
3134 Helper.applyCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);
3135 return true;
3136 }
3137 case GICXXCustomAction_GICombiner31:{
3138 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3139 // Match Patterns
3140 if(![&](){return Helper.matchCombineLoadWithAndMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
3141 return false;
3142 }
3143 // Apply Patterns
3144 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3145 return true;
3146 }
3147 case GICXXCustomAction_GICombiner32:{
3148 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3149 // Match Patterns
3150 if(![&](){return Helper.matchCombineExtractedVectorLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
3151 return false;
3152 }
3153 // Apply Patterns
3154 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3155 return true;
3156 }
3157 case GICXXCustomAction_GICombiner33:{
3158 // Match Patterns
3159 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
3160 return false;
3161 }
3162 // Apply Patterns
3163 Helper.replaceInstWithFConstant(*State.MIs[0], 0.0);
3164 return true;
3165 }
3166 case GICXXCustomAction_GICombiner34:{
3167 // Match Patterns
3168 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
3169 return false;
3170 }
3171 // Apply Patterns
3172 Helper.replaceInstWithConstant(*State.MIs[0], 0);
3173 return true;
3174 }
3175 case GICXXCustomAction_GICombiner35:{
3176 // Match Patterns
3177 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
3178 return false;
3179 }
3180 // Apply Patterns
3181 Helper.replaceInstWithConstant(*State.MIs[0], -1);
3182 return true;
3183 }
3184 case GICXXCustomAction_GICombiner36:{
3185 // Match Patterns
3186 if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 1);}()) {
3187 return false;
3188 }
3189 // Apply Patterns
3190 Helper.replaceInstWithConstant(*State.MIs[0], 0);
3191 return true;
3192 }
3193 case GICXXCustomAction_GICombiner37:{
3194 // Match Patterns
3195 if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 2);}()) {
3196 return false;
3197 }
3198 // Apply Patterns
3199 Helper.replaceInstWithUndef(*State.MIs[0]);
3200 return true;
3201 }
3202 case GICXXCustomAction_GICombiner38:{
3203 // Apply Patterns
3204 Helper.replaceInstWithUndef(*State.MIs[0]->getOperand(0).getParent());
3205 return true;
3206 }
3207 case GICXXCustomAction_GICombiner39:{
3208 // Match Patterns
3209 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
3210 return false;
3211 }
3212 // Apply Patterns
3213 Helper.replaceInstWithUndef(*State.MIs[0]);
3214 return true;
3215 }
3216 case GICXXCustomAction_GICombiner40:{
3217 // Match Patterns
3218 if(![&](){return Helper.matchAllExplicitUsesAreUndef(*State.MIs[0]);}()) {
3219 return false;
3220 }
3221 // Apply Patterns
3222 Helper.replaceInstWithUndef(*State.MIs[0]);
3223 return true;
3224 }
3225 case GICXXCustomAction_GICombiner41:{
3226 // Match Patterns
3227 if(![&](){return Helper.matchUndefShuffleVectorMask(*State.MIs[0]);}()) {
3228 return false;
3229 }
3230 // Apply Patterns
3231 Helper.replaceInstWithUndef(*State.MIs[0]);
3232 return true;
3233 }
3234 case GICXXCustomAction_GICombiner42:{
3235 // Match Patterns
3236 if(![&](){return Helper.matchUndefStore(*State.MIs[0]);}()) {
3237 return false;
3238 }
3239 // Apply Patterns
3240 Helper.eraseInst(*State.MIs[0]);
3241 return true;
3242 }
3243 case GICXXCustomAction_GICombiner43:{
3244 // Match Patterns
3245 if(![&](){return Helper.matchInsertExtractVecEltOutOfBounds(*State.MIs[0]);}()) {
3246 return false;
3247 }
3248 // Apply Patterns
3249 Helper.replaceInstWithUndef(*State.MIs[0]);
3250 return true;
3251 }
3252 case GICXXCustomAction_GICombiner44:{
3253 // Match Patterns
3254 if(![&](){return Helper.matchSelectSameVal(*State.MIs[0]);}()) {
3255 return false;
3256 }
3257 // Apply Patterns
3258 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 2);
3259 return true;
3260 }
3261 case GICXXCustomAction_GICombiner45:{
3262 Register GIMatchData_info;
3263 // Match Patterns
3264 if(![&](){return Helper.matchCombineI2PToP2I(*State.MIs[0], GIMatchData_info);}()) {
3265 return false;
3266 }
3267 // Apply Patterns
3268 Helper.applyCombineI2PToP2I(*State.MIs[0], GIMatchData_info);
3269 return true;
3270 }
3271 case GICXXCustomAction_GICombiner46:{
3272 Register GIMatchData_info;
3273 // Match Patterns
3274 if(![&](){GIMatchData_info = State.MIs[1]->getOperand(1).getReg(); return true;}()) {
3275 return false;
3276 }
3277 // Apply Patterns
3278 Helper.applyCombineP2IToI2P(*State.MIs[0], GIMatchData_info);
3279 return true;
3280 }
3281 case GICXXCustomAction_GICombiner47:{
3282 Register GIMatchData_matchinfo;
3283 // Match Patterns
3284 if(![&](){return Helper.matchCombineAnyExtTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
3285 return false;
3286 }
3287 // Apply Patterns
3288 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3289 return true;
3290 }
3291 case GICXXCustomAction_GICombiner48:{
3292 Register GIMatchData_matchinfo;
3293 // Match Patterns
3294 if(![&](){return Helper.matchBuildVectorIdentityFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3295 return false;
3296 }
3297 // Apply Patterns
3298 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3299 return true;
3300 }
3301 case GICXXCustomAction_GICombiner49:{
3302 Register GIMatchData_matchinfo;
3303 // Match Patterns
3304 if(![&](){return Helper.matchTruncBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3305 return false;
3306 }
3307 // Apply Patterns
3308 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3309 return true;
3310 }
3311 case GICXXCustomAction_GICombiner50:{
3312 Register GIMatchData_matchinfo;
3313 // Match Patterns
3314 if(![&](){return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3315 return false;
3316 }
3317 // Apply Patterns
3318 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3319 return true;
3320 }
3321 case GICXXCustomAction_GICombiner51:{
3322 // Match Patterns
3323 if(![&](){return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());}()) {
3324 return false;
3325 }
3326 // Apply Patterns
3327 Helper.replaceSingleDefInstWithReg(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
3328 return true;
3329 }
3330 case GICXXCustomAction_GICombiner52:{
3331 MachineInstr* GIMatchData_matchinfo;
3332 // Match Patterns
3333 if(![&](){return Helper.matchExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);}()) {
3334 return false;
3335 }
3336 // Apply Patterns
3337 Helper.applyExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);
3338 return true;
3339 }
3340 case GICXXCustomAction_GICombiner53:{
3341 std::tuple<Register, Register> GIMatchData_info;
3342 // Match Patterns
3343 if(![&](){return Helper.matchSimplifyAddToSub(*State.MIs[0], GIMatchData_info);}()) {
3344 return false;
3345 }
3346 // Apply Patterns
3347 Helper.applySimplifyAddToSub(*State.MIs[0], GIMatchData_info);
3348 return true;
3349 }
3350 case GICXXCustomAction_GICombiner54:{
3351 InstructionStepsMatchInfo GIMatchData_info;
3352 // Match Patterns
3353 if(![&](){return Helper.matchHoistLogicOpWithSameOpcodeHands(*State.MIs[0], GIMatchData_info);}()) {
3354 return false;
3355 }
3356 // Apply Patterns
3357 Helper.applyBuildInstructionSteps(*State.MIs[0], GIMatchData_info);
3358 return true;
3359 }
3360 case GICXXCustomAction_GICombiner55:{
3361 std::optional<int64_t> GIMatchData_matchinfo;
3362 // Match Patterns
3363 if(![&](){return Helper.matchShiftsTooBig(*State.MIs[0], GIMatchData_matchinfo);}()) {
3364 return false;
3365 }
3366 // Apply Patterns
3367 if (GIMatchData_matchinfo) {
3368 Helper.replaceInstWithConstant(*State.MIs[0], *GIMatchData_matchinfo);
3369 } else {
3370 Helper.replaceInstWithUndef(*State.MIs[0]);
3371 }
3372 return true;
3373 }
3374 case GICXXCustomAction_GICombiner56:{
3375 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3376 // Match Patterns
3377 if(![&](){return Helper.matchReassocPtrAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3378 return false;
3379 }
3380 // Apply Patterns
3381 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3382 return true;
3383 }
3384 case GICXXCustomAction_GICombiner57:{
3385 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3386 // Match Patterns
3387 if(![&](){return Helper.matchReassocCommBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3388 return false;
3389 }
3390 // Apply Patterns
3391 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3392 return true;
3393 }
3394 case GICXXCustomAction_GICombiner58:{
3395 PtrAddChain GIMatchData_matchinfo;
3396 // Match Patterns
3397 if(![&](){return Helper.matchPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
3398 return false;
3399 }
3400 // Apply Patterns
3401 Helper.applyPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);
3402 return true;
3403 }
3404 case GICXXCustomAction_GICombiner59:{
3405 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3406 // Match Patterns
3407 if(![&](){return Helper.matchCanonicalizeICmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3408 return false;
3409 }
3410 // Apply Patterns
3411 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3412 return true;
3413 }
3414 case GICXXCustomAction_GICombiner60:{
3415 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3416 // Match Patterns
3417 if(![&](){return Helper.matchCanonicalizeFCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3418 return false;
3419 }
3420 // Apply Patterns
3421 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3422 return true;
3423 }
3424 case GICXXCustomAction_GICombiner61:{
3425 int64_t GIMatchData_matchinfo;
3426 // Match Patterns
3427 if(![&](){return Helper.matchICmpToTrueFalseKnownBits(*State.MIs[0], GIMatchData_matchinfo);}()) {
3428 return false;
3429 }
3430 // Apply Patterns
3431 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3432 return true;
3433 }
3434 case GICXXCustomAction_GICombiner62:{
3435 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3436 // Match Patterns
3437 if(![&](){return Helper.matchICmpToLHSKnownBits(*State.MIs[0], GIMatchData_info);}()) {
3438 return false;
3439 }
3440 // Apply Patterns
3441 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3442 return true;
3443 }
3444 case GICXXCustomAction_GICombiner63:{
3445 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3446 // Match Patterns
3447 if(![&](){return Helper.matchRedundantBinOpInEquality(*State.MIs[0], GIMatchData_info);}()) {
3448 return false;
3449 }
3450 // Apply Patterns
3451 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3452 return true;
3453 }
3454 case GICXXCustomAction_GICombiner64:{
3455 std::tuple<Register, int64_t> GIMatchData_info;
3456 // Match Patterns
3457 if(![&](){return Helper.matchAshrShlToSextInreg(*State.MIs[0], GIMatchData_info);}()) {
3458 return false;
3459 }
3460 // Apply Patterns
3461 Helper.applyAshShlToSextInreg(*State.MIs[0], GIMatchData_info);
3462 return true;
3463 }
3464 case GICXXCustomAction_GICombiner65:{
3465 std::tuple<Register, unsigned> GIMatchData_matchinfo;
3466 // Match Patterns
3467 if(![&](){return Helper.matchSextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
3468 return false;
3469 }
3470 // Apply Patterns
3471 Helper.applySextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);
3472 return true;
3473 }
3474 case GICXXCustomAction_GICombiner66:{
3475 RegisterImmPair GIMatchData_matchinfo;
3476 // Match Patterns
3477 if(![&](){return Helper.matchCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);}()) {
3478 return false;
3479 }
3480 // Apply Patterns
3481 Helper.applyCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);
3482 return true;
3483 }
3484 case GICXXCustomAction_GICombiner67:{
3485 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3486 // Match Patterns
3487 if(![&](){return Helper.matchNarrowBinopFeedingAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3488 return false;
3489 }
3490 // Apply Patterns
3491 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3492 return true;
3493 }
3494 case GICXXCustomAction_GICombiner68:{
3495 unsigned GIMatchData_matchinfo;
3496 // Match Patterns
3497 if(![&](){return Helper.matchConstantSelectCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3498 return false;
3499 }
3500 // Apply Patterns
3501 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_matchinfo);
3502 return true;
3503 }
3504 case GICXXCustomAction_GICombiner69:{
3505 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3506 // Match Patterns
3507 if(![&](){return Helper.matchSelectIMinMax(State.MIs[0]->getOperand(0), GIMatchData_info);}()) {
3508 return false;
3509 }
3510 // Apply Patterns
3511 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_info);
3512 return true;
3513 }
3514 case GICXXCustomAction_GICombiner70:{
3515 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3516 // Match Patterns
3517 if(![&](){return Helper.matchSelect(*State.MIs[0], GIMatchData_matchinfo);}()) {
3518 return false;
3519 }
3520 // Apply Patterns
3521 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3522 return true;
3523 }
3524 case GICXXCustomAction_GICombiner71:{
3525 // Match Patterns
3526 if(![&](){return Helper.matchRedundantSExtInReg(*State.MIs[0]);}()) {
3527 return false;
3528 }
3529 // Apply Patterns
3530 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 1);
3531 return true;
3532 }
3533 case GICXXCustomAction_GICombiner72:{
3534 // Match Patterns
3535 if(![&](){LLT SrcTy = MRI.getType(State.MIs[3]->getOperand(1).getReg());
3536 return State.MIs[0]->getOperand(2).getImm() <= SrcTy.getScalarSizeInBits() &&
3537 MRI.getType(State.MIs[1]->getOperand(1).getReg()).getScalarType() ==
3538 MRI.getType(State.MIs[2]->getOperand(2).getReg()).getScalarType() &&
3539 VT->computeNumSignBits(State.MIs[3]->getOperand(1).getReg()) >=
3540 (SrcTy.getScalarSizeInBits() - State.MIs[0]->getOperand(2).getImm() + 1);}()) {
3541 return false;
3542 }
3543 // Apply Patterns
3544 auto SExt1 = Helper.getBuilder().buildSExt(MRI.getType(State.MIs[2]->getOperand(2).getReg()), State.MIs[3]->getOperand(1).getReg());
3545 auto Unmerge = Helper.getBuilder().buildUnmerge(MRI.getType(State.MIs[1]->getOperand(1).getReg()), SExt1);
3546 unsigned UnmergeDef = State.MIs[1]->getOperand(1).getReg() == State.MIs[2]->getOperand(0).getReg() ? 0 : 1;
3547 Helper.getBuilder().buildSExt(State.MIs[0]->getOperand(0).getReg(), Unmerge.getReg(UnmergeDef));
3548 State.MIs[0]->eraseFromParent();
3549 return true;
3550 }
3551 case GICXXCustomAction_GICombiner73:{
3552 Register GIMatchData_matchinfo;
3553 // Match Patterns
3554 if(![&](){return Helper.matchRedundantAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3555 return false;
3556 }
3557 // Apply Patterns
3558 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3559 return true;
3560 }
3561 case GICXXCustomAction_GICombiner74:{
3562 Register GIMatchData_matchinfo;
3563 // Match Patterns
3564 if(![&](){return Helper.matchRedundantOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
3565 return false;
3566 }
3567 // Apply Patterns
3568 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3569 return true;
3570 }
3571 case GICXXCustomAction_GICombiner75:{
3572 // Match Patterns
3573 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(State.MIs[0]->getOperand(2));}()) {
3574 return false;
3575 }
3576 // Apply Patterns
3577 Helper.applySimplifyURemByPow2(*State.MIs[0]);
3578 return true;
3579 }
3580 case GICXXCustomAction_GICombiner76:{
3581 Register GIMatchData_matchinfo;
3582 // Match Patterns
3583 if(![&](){return Helper.matchCombineZextTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
3584 return false;
3585 }
3586 // Apply Patterns
3587 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3588 return true;
3589 }
3590 case GICXXCustomAction_GICombiner77:{
3591 // Match Patterns
3592 if(![&](){unsigned BitWidth = MRI.getType(State.MIs[0]->getOperand(1).getReg()).getScalarSizeInBits();
3593 return Helper.getValueTracking()->maskedValueIsZero(State.MIs[0]->getOperand(1).getReg(),
3594 APInt::getOneBitSet(BitWidth, State.MIs[0]->getOperand(2).getImm() - 1));}()) {
3595 return false;
3596 }
3597 // Apply Patterns
3598 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
3599 Helper.getBuilder().buildZExtInReg(State.MIs[0]->getOperand(0), State.MIs[0]->getOperand(1), State.MIs[0]->getOperand(2).getImm());
3600 State.MIs[0]->eraseFromParent();
3601 return true;
3602 }
3603 case GICXXCustomAction_GICombiner78:{
3604 std::pair<MachineInstr*, LLT> GIMatchData_matchinfo;
3605 // Match Patterns
3606 if(![&](){return Helper.matchCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
3607 return false;
3608 }
3609 // Apply Patterns
3610 Helper.applyCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);
3611 return true;
3612 }
3613 case GICXXCustomAction_GICombiner79:{
3614 SmallVector<Register> GIMatchData_info;
3615 // Match Patterns
3616 if(![&](){return Helper.matchNotCmp(*State.MIs[0], GIMatchData_info);}()) {
3617 return false;
3618 }
3619 // Apply Patterns
3620 Helper.applyNotCmp(*State.MIs[0], GIMatchData_info);
3621 return true;
3622 }
3623 case GICXXCustomAction_GICombiner80:{
3624 MachineInstr * GIMatchData_matchinfo;
3625 // Match Patterns
3626 if(![&](){return Helper.matchOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);}()) {
3627 return false;
3628 }
3629 // Apply Patterns
3630 Helper.applyOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);
3631 return true;
3632 }
3633 case GICXXCustomAction_GICombiner81:{
3634 // Apply Patterns
3635 Helper.applyCombineConstantFoldFpUnary(*State.MIs[0], State.MIs[1]->getOperand(1).getFPImm());
3636 return true;
3637 }
3638 case GICXXCustomAction_GICombiner82:{
3639 // Apply Patterns
3640 Helper.replaceInstWithFConstant(*State.MIs[0]->getOperand(0).getParent(), 0.0);
3641 return true;
3642 }
3643 case GICXXCustomAction_GICombiner83:{
3644 APInt GIMatchData_info;
3645 // Match Patterns
3646 if(![&](){return Helper.matchCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info);}()) {
3647 return false;
3648 }
3649 // Apply Patterns
3650 Helper.applyCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info);
3651 return true;
3652 }
3653 case GICXXCustomAction_GICombiner84:{
3654 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3655 // Match Patterns
3656 if(![&](){return Helper.matchOverlappingAnd(*State.MIs[0], GIMatchData_info);}()) {
3657 return false;
3658 }
3659 // Apply Patterns
3660 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3661 return true;
3662 }
3663 case GICXXCustomAction_GICombiner85:{
3664 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3665 // Match Patterns
3666 if(![&](){return Helper.matchMulOBy2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3667 return false;
3668 }
3669 // Apply Patterns
3670 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3671 return true;
3672 }
3673 case GICXXCustomAction_GICombiner86:{
3674 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3675 // Match Patterns
3676 if(![&](){return Helper.matchMulOBy0(*State.MIs[0], GIMatchData_matchinfo);}()) {
3677 return false;
3678 }
3679 // Apply Patterns
3680 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3681 return true;
3682 }
3683 case GICXXCustomAction_GICombiner87:{
3684 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3685 // Match Patterns
3686 if(![&](){return Helper.matchAddEToAddO(*State.MIs[0], GIMatchData_matchinfo);}()) {
3687 return false;
3688 }
3689 // Apply Patterns
3690 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3691 return true;
3692 }
3693 case GICXXCustomAction_GICombiner88:{
3694 unsigned GIMatchData_info;
3695 // Match Patterns
3696 if(![&](){return Helper.matchCombineFMinMaxNaN(*State.MIs[0], GIMatchData_info);}()) {
3697 return false;
3698 }
3699 // Apply Patterns
3700 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_info);
3701 return true;
3702 }
3703 case GICXXCustomAction_GICombiner89:{
3704 // Match Patterns
3705 if(![&](){return Helper.matchFPowIExpansion(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());}()) {
3706 return false;
3707 }
3708 // Apply Patterns
3709 Helper.applyExpandFPowI(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());
3710 return true;
3711 }
3712 case GICXXCustomAction_GICombiner90:{
3713 std::pair<Register, Register> GIMatchData_matchinfo;
3714 // Match Patterns
3715 if(![&](){return Helper.matchXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3716 return false;
3717 }
3718 // Apply Patterns
3719 Helper.applyXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);
3720 return true;
3721 }
3722 case GICXXCustomAction_GICombiner91:{
3723 // Match Patterns
3724 if(![&](){return Helper.matchPtrAddZero(*State.MIs[0]);}()) {
3725 return false;
3726 }
3727 // Apply Patterns
3728 Helper.applyPtrAddZero(*State.MIs[0]);
3729 return true;
3730 }
3731 case GICXXCustomAction_GICombiner92:{
3732 RegisterImmPair GIMatchData_matchinfo;
3733 // Match Patterns
3734 if(![&](){return Helper.matchShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
3735 return false;
3736 }
3737 // Apply Patterns
3738 Helper.applyShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);
3739 return true;
3740 }
3741 case GICXXCustomAction_GICombiner93:{
3742 ShiftOfShiftedLogic GIMatchData_matchinfo;
3743 // Match Patterns
3744 if(![&](){return Helper.matchShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);}()) {
3745 return false;
3746 }
3747 // Apply Patterns
3748 Helper.applyShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);
3749 return true;
3750 }
3751 case GICXXCustomAction_GICombiner94:{
3752 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3753 // Match Patterns
3754 if(![&](){return Helper.matchLoadOrCombine(*State.MIs[0], GIMatchData_info);}()) {
3755 return false;
3756 }
3757 // Apply Patterns
3758 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3759 return true;
3760 }
3761 case GICXXCustomAction_GICombiner95:{
3762 MachineInstr * GIMatchData_matchinfo;
3763 // Match Patterns
3764 if(![&](){return Helper.matchCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);}()) {
3765 return false;
3766 }
3767 // Apply Patterns
3768 Helper.applyCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);
3769 return true;
3770 }
3771 case GICXXCustomAction_GICombiner96:{
3772 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3773 // Match Patterns
3774 if(![&](){return Helper.matchOrShiftToFunnelShift(*State.MIs[0], false, GIMatchData_info);}()) {
3775 return false;
3776 }
3777 // Apply Patterns
3778 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3779 return true;
3780 }
3781 case GICXXCustomAction_GICombiner97:{
3782 // Match Patterns
3783 if(![&](){return Helper.matchFunnelShiftToRotate(*State.MIs[0]);}()) {
3784 return false;
3785 }
3786 // Apply Patterns
3787 Helper.applyFunnelShiftToRotate(*State.MIs[0]);
3788 return true;
3789 }
3790 case GICXXCustomAction_GICombiner98:{
3791 // Match Patterns
3792 if(![&](){return Helper.matchConstantLargerBitWidth(*State.MIs[0], 3);}()) {
3793 return false;
3794 }
3795 // Apply Patterns
3796 Helper.applyFunnelShiftConstantModulo(*State.MIs[0]);
3797 return true;
3798 }
3799 case GICXXCustomAction_GICombiner99:{
3800 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3801 // Match Patterns
3802 if(![&](){return Helper.matchCommuteShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
3803 return false;
3804 }
3805 // Apply Patterns
3806 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3807 return true;
3808 }
3809 case GICXXCustomAction_GICombiner100:{
3810 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3811 // Match Patterns
3812 if(![&](){return Helper.matchBitfieldExtractFromSExtInReg(*State.MIs[0], GIMatchData_info);}()) {
3813 return false;
3814 }
3815 // Apply Patterns
3816 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3817 return true;
3818 }
3819 case GICXXCustomAction_GICombiner101:{
3820 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3821 // Match Patterns
3822 if(![&](){return Helper.matchBitfieldExtractFromAnd(*State.MIs[0], GIMatchData_info);}()) {
3823 return false;
3824 }
3825 // Apply Patterns
3826 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3827 return true;
3828 }
3829 case GICXXCustomAction_GICombiner102:{
3830 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3831 // Match Patterns
3832 if(![&](){return Helper.matchBitfieldExtractFromShr(*State.MIs[0], GIMatchData_info);}()) {
3833 return false;
3834 }
3835 // Apply Patterns
3836 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3837 return true;
3838 }
3839 case GICXXCustomAction_GICombiner103:{
3840 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3841 // Match Patterns
3842 if(![&](){return Helper.matchBitfieldExtractFromShrAnd(*State.MIs[0], GIMatchData_info);}()) {
3843 return false;
3844 }
3845 // Apply Patterns
3846 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3847 return true;
3848 }
3849 case GICXXCustomAction_GICombiner104:{
3850 APInt GIMatchData_matchinfo;
3851 // Match Patterns
3852 if(![&](){return Helper.matchConstantFoldBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3853 return false;
3854 }
3855 // Apply Patterns
3856 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3857 return true;
3858 }
3859 case GICXXCustomAction_GICombiner105:{
3860 ConstantFP* GIMatchData_matchinfo;
3861 // Match Patterns
3862 if(![&](){return Helper.matchConstantFoldFPBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3863 return false;
3864 }
3865 // Apply Patterns
3866 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3867 return true;
3868 }
3869 case GICXXCustomAction_GICombiner106:{
3870 ConstantFP* GIMatchData_matchinfo;
3871 // Match Patterns
3872 if(![&](){return Helper.matchConstantFoldFMA(*State.MIs[0], GIMatchData_matchinfo);}()) {
3873 return false;
3874 }
3875 // Apply Patterns
3876 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3877 return true;
3878 }
3879 case GICXXCustomAction_GICombiner107:{
3880 APInt GIMatchData_matchinfo;
3881 // Match Patterns
3882 if(![&](){return Helper.matchConstantFoldCastOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3883 return false;
3884 }
3885 // Apply Patterns
3886 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3887 return true;
3888 }
3889 case GICXXCustomAction_GICombiner108:{
3890 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3891 // Match Patterns
3892 if(![&](){return Helper.matchConstantFoldUnaryIntOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3893 return false;
3894 }
3895 // Apply Patterns
3896 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3897 return true;
3898 }
3899 case GICXXCustomAction_GICombiner109:{
3900 // Match Patterns
3901 if(![&](){return Helper.matchUMulHToLShr(*State.MIs[0]);}()) {
3902 return false;
3903 }
3904 // Apply Patterns
3905 Helper.applyUMulHToLShr(*State.MIs[0]);
3906 return true;
3907 }
3908 case GICXXCustomAction_GICombiner110:{
3909 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3910 // Match Patterns
3911 if(![&](){return Helper.matchRedundantNegOperands(*State.MIs[0], GIMatchData_matchinfo);}()) {
3912 return false;
3913 }
3914 // Apply Patterns
3915 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3916 return true;
3917 }
3918 case GICXXCustomAction_GICombiner111:{
3919 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3920 // Match Patterns
3921 if(![&](){return Helper.matchAndOrDisjointMask(*State.MIs[0], GIMatchData_info);}()) {
3922 return false;
3923 }
3924 // Apply Patterns
3925 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_info);
3926 return true;
3927 }
3928 case GICXXCustomAction_GICombiner112:{
3929 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3930 // Match Patterns
3931 if(![&](){return Helper.matchCombineFAddFMulToFMadOrFMA(*State.MIs[0],
3932 GIMatchData_info);}()) {
3933 return false;
3934 }
3935 // Apply Patterns
3936 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3937 return true;
3938 }
3939 case GICXXCustomAction_GICombiner113:{
3940 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3941 // Match Patterns
3942 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMA(*State.MIs[0],
3943 GIMatchData_info);}()) {
3944 return false;
3945 }
3946 // Apply Patterns
3947 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3948 return true;
3949 }
3950 case GICXXCustomAction_GICombiner114:{
3951 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3952 // Match Patterns
3953 if(![&](){return Helper.matchCombineFAddFMAFMulToFMadOrFMA(*State.MIs[0],
3954 GIMatchData_info);}()) {
3955 return false;
3956 }
3957 // Apply Patterns
3958 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3959 return true;
3960 }
3961 case GICXXCustomAction_GICombiner115:{
3962 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3963 // Match Patterns
3964 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMAAggressive(
3965 *State.MIs[0], GIMatchData_info);}()) {
3966 return false;
3967 }
3968 // Apply Patterns
3969 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3970 return true;
3971 }
3972 case GICXXCustomAction_GICombiner116:{
3973 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3974 // Match Patterns
3975 if(![&](){return Helper.matchCombineFSubFMulToFMadOrFMA(*State.MIs[0],
3976 GIMatchData_info);}()) {
3977 return false;
3978 }
3979 // Apply Patterns
3980 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3981 return true;
3982 }
3983 case GICXXCustomAction_GICombiner117:{
3984 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3985 // Match Patterns
3986 if(![&](){return Helper.matchCombineFSubFNegFMulToFMadOrFMA(*State.MIs[0],
3987 GIMatchData_info);}()) {
3988 return false;
3989 }
3990 // Apply Patterns
3991 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3992 return true;
3993 }
3994 case GICXXCustomAction_GICombiner118:{
3995 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3996 // Match Patterns
3997 if(![&](){return Helper.matchCombineFSubFpExtFMulToFMadOrFMA(*State.MIs[0],
3998 GIMatchData_info);}()) {
3999 return false;
4000 }
4001 // Apply Patterns
4002 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4003 return true;
4004 }
4005 case GICXXCustomAction_GICombiner119:{
4006 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4007 // Match Patterns
4008 if(![&](){return Helper.matchCombineFSubFpExtFNegFMulToFMadOrFMA(
4009 *State.MIs[0], GIMatchData_info);}()) {
4010 return false;
4011 }
4012 // Apply Patterns
4013 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4014 return true;
4015 }
4016 case GICXXCustomAction_GICombiner120:{
4017 unsigned GIMatchData_select_op_no;
4018 // Match Patterns
4019 if(![&](){return Helper.matchFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);}()) {
4020 return false;
4021 }
4022 // Apply Patterns
4023 Helper.applyFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);
4024 return true;
4025 }
4026 case GICXXCustomAction_GICombiner121:{
4027 // Match Patterns
4028 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(State.MIs[0]->getOperand(2),
4029 /*OrNegative=*/true);}()) {
4030 return false;
4031 }
4032 // Apply Patterns
4033 Helper.applySimplifySRemByPow2(*State.MIs[0]);
4034 return true;
4035 }
4036 case GICXXCustomAction_GICombiner122:{
4037 // Match Patterns
4038 if(![&](){return Helper.matchUDivOrURemByConst(*State.MIs[0]);}()) {
4039 return false;
4040 }
4041 // Apply Patterns
4042 Helper.applyUDivOrURemByConst(*State.MIs[0]);
4043 return true;
4044 }
4045 case GICXXCustomAction_GICombiner123:{
4046 // Match Patterns
4047 if(![&](){return Helper.matchSDivOrSRemByConst(*State.MIs[0]);}()) {
4048 return false;
4049 }
4050 // Apply Patterns
4051 Helper.applySDivOrSRemByConst(*State.MIs[0]);
4052 return true;
4053 }
4054 case GICXXCustomAction_GICombiner124:{
4055 // Match Patterns
4056 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/false);}()) {
4057 return false;
4058 }
4059 // Apply Patterns
4060 Helper.applyUDivByPow2(*State.MIs[0]);
4061 return true;
4062 }
4063 case GICXXCustomAction_GICombiner125:{
4064 // Match Patterns
4065 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/true);}()) {
4066 return false;
4067 }
4068 // Apply Patterns
4069 Helper.applySDivByPow2(*State.MIs[0]);
4070 return true;
4071 }
4072 case GICXXCustomAction_GICombiner126:{
4073 SmallVector<MachineInstr *> GIMatchData_matchinfo;
4074 // Match Patterns
4075 if(![&](){return Helper.matchRepeatedFPDivisor(*State.MIs[0], GIMatchData_matchinfo);}()) {
4076 return false;
4077 }
4078 // Apply Patterns
4079 Helper.applyRepeatedFPDivisor(GIMatchData_matchinfo);
4080 return true;
4081 }
4082 case GICXXCustomAction_GICombiner127:{
4083 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4084 // Match Patterns
4085 if(![&](){return Helper.matchSubAddSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4086 return false;
4087 }
4088 // Apply Patterns
4089 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4090 return true;
4091 }
4092 case GICXXCustomAction_GICombiner128:{
4093 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4094 // Match Patterns
4095 if(![&](){return Helper.matchSimplifySelectToMinMax(*State.MIs[0], GIMatchData_info);}()) {
4096 return false;
4097 }
4098 // Apply Patterns
4099 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4100 return true;
4101 }
4102 case GICXXCustomAction_GICombiner129:{
4103 Register GIMatchData_matchinfo;
4104 // Match Patterns
4105 if(![&](){return Helper.matchFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4106 return false;
4107 }
4108 // Apply Patterns
4109 Helper.applyFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);
4110 return true;
4111 }
4112 case GICXXCustomAction_GICombiner130:{
4113 // Match Patterns
4114 if(![&](){return Helper.matchCommuteConstantToRHS(*State.MIs[0]);}()) {
4115 return false;
4116 }
4117 // Apply Patterns
4118 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
4119 return true;
4120 }
4121 case GICXXCustomAction_GICombiner131:{
4122 // Match Patterns
4123 if(![&](){return Helper.matchCommuteFPConstantToRHS(*State.MIs[0]);}()) {
4124 return false;
4125 }
4126 // Apply Patterns
4127 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
4128 return true;
4129 }
4130 case GICXXCustomAction_GICombiner132:{
4131 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4132 // Match Patterns
4133 if(![&](){return Helper.matchAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
4134 return false;
4135 }
4136 // Apply Patterns
4137 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4138 return true;
4139 }
4140 case GICXXCustomAction_GICombiner133:{
4141 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4142 // Match Patterns
4143 if(![&](){return Helper.matchOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
4144 return false;
4145 }
4146 // Apply Patterns
4147 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4148 return true;
4149 }
4150 case GICXXCustomAction_GICombiner134:{
4151 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4152 // Match Patterns
4153 if(![&](){return Helper.matchSimplifyNegMinMax(*State.MIs[0], GIMatchData_matchinfo);}()) {
4154 return false;
4155 }
4156 // Apply Patterns
4157 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4158 return true;
4159 }
4160 case GICXXCustomAction_GICombiner135:{
4161 SmallVector<Register> GIMatchData_matchinfo;
4162 // Match Patterns
4163 if(![&](){return Helper.matchCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);}()) {
4164 return false;
4165 }
4166 // Apply Patterns
4167 Helper.applyCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);
4168 return true;
4169 }
4170 case GICXXCustomAction_GICombiner136:{
4171 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4172 // Match Patterns
4173 if(![&](){return Helper.matchSextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4174 return false;
4175 }
4176 // Apply Patterns
4177 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4178 return true;
4179 }
4180 case GICXXCustomAction_GICombiner137:{
4181 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4182 // Match Patterns
4183 if(![&](){return Helper.matchZextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4184 return false;
4185 }
4186 // Apply Patterns
4187 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4188 return true;
4189 }
4190 case GICXXCustomAction_GICombiner138:{
4191 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4192 // Match Patterns
4193 if(![&](){return Helper.matchNonNegZext(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4194 return false;
4195 }
4196 // Apply Patterns
4197 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4198 return true;
4199 }
4200 case GICXXCustomAction_GICombiner139:{
4201 SmallVector<Register> GIMatchData_matchinfo;
4202 // Match Patterns
4203 if(![&](){return Helper.matchCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);}()) {
4204 return false;
4205 }
4206 // Apply Patterns
4207 Helper.applyCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);
4208 return true;
4209 }
4210 case GICXXCustomAction_GICombiner140:{
4211 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4212 // Match Patterns
4213 if(![&](){return Helper.matchShuffleUndefRHS(*State.MIs[0], GIMatchData_matchinfo);}()) {
4214 return false;
4215 }
4216 // Apply Patterns
4217 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4218 return true;
4219 }
4220 case GICXXCustomAction_GICombiner141:{
4221 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4222 // Match Patterns
4223 if(![&](){return Helper.matchShuffleDisjointMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
4224 return false;
4225 }
4226 // Apply Patterns
4227 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4228 return true;
4229 }
4230 case GICXXCustomAction_GICombiner142:{
4231 Register GIMatchData_matchinfo;
4232 // Match Patterns
4233 if(![&](){return Helper.matchUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);}()) {
4234 return false;
4235 }
4236 // Apply Patterns
4237 Helper.applyUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);
4238 return true;
4239 }
4240 case GICXXCustomAction_GICombiner143:{
4241 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4242 // Match Patterns
4243 if(![&](){return Helper.matchUnmergeValuesAnyExtBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
4244 return false;
4245 }
4246 // Apply Patterns
4247 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4248 return true;
4249 }
4250 case GICXXCustomAction_GICombiner144:{
4251 SmallVector<Register> GIMatchData_info;
4252 // Match Patterns
4253 if(![&](){return Helper.matchCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);}()) {
4254 return false;
4255 }
4256 // Apply Patterns
4257 Helper.applyCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);
4258 return true;
4259 }
4260 case GICXXCustomAction_GICombiner145:{
4261 Register GIMatchData_src;
4262 // Match Patterns
4263 if(![&](){// Check if first source comes from G_UNMERGE_VALUES.
4264 Register FirstMergeSrc = getRemainingOperands(*State.MIs[0], 1)[0].getReg();
4265 MachineInstr *UnmergeMI = MRI.getVRegDef(FirstMergeSrc);
4266 if (!UnmergeMI || UnmergeMI->getOpcode() != TargetOpcode::G_UNMERGE_VALUES)
4267 return false;
4268
4269 // Check counts match.
4270 unsigned NumMergeSrcs = getRemainingOperands(*State.MIs[0], 1).size();
4271 unsigned NumUnmergeDefs = UnmergeMI->getNumDefs();
4272 if (NumMergeSrcs != NumUnmergeDefs)
4273 return false;
4274
4275 // Verify all merge sources match unmerge defs in order.
4276 for (unsigned I = 0; I < NumMergeSrcs; ++I) {
4277 Register MergeSrc = getRemainingOperands(*State.MIs[0], 1)[I].getReg();
4278 Register UnmergeDef = UnmergeMI->getOperand(I).getReg();
4279
4280 if (MergeSrc != UnmergeDef)
4281 return false;
4282
4283 if (!MRI.hasOneNonDBGUse(MergeSrc))
4284 return false;
4285 }
4286
4287 // Check size compatibility.
4288 GIMatchData_src = UnmergeMI->getOperand(NumUnmergeDefs).getReg();
4289 LLT SrcTy = MRI.getType(GIMatchData_src);
4290 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
4291 if (SrcTy.getSizeInBits() != DstTy.getSizeInBits())
4292 return false;
4293
4294 // Check bitcast legality.
4295 if (SrcTy != DstTy) {
4296 std::array<LLT, 2> Types = {{DstTy, SrcTy}};
4297 LegalityQuery Query(TargetOpcode::G_BITCAST, Types);
4298 if (!Helper.isLegalOrBeforeLegalizer(Query))
4299 return false;
4300 }
4301
4302 return true;}()) {
4303 return false;
4304 }
4305 // Apply Patterns
4306 LLT SrcTy = MRI.getType(GIMatchData_src);
4307 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
4308
4309 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
4310
4311 if (SrcTy == DstTy) {
4312 Helper.replaceRegWith(MRI, State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
4313 } else {
4314 Helper.getBuilder().buildBitcast(State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
4315 }
4316
4317 State.MIs[0]->eraseFromParent();
4318 return true;
4319 }
4320 case GICXXCustomAction_GICombiner146:{
4321 SmallVector<APInt, 8> GIMatchData_info;
4322 // Match Patterns
4323 if(![&](){return Helper.matchCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);}()) {
4324 return false;
4325 }
4326 // Apply Patterns
4327 Helper.applyCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);
4328 return true;
4329 }
4330 case GICXXCustomAction_GICombiner147:{
4331 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4332 // Match Patterns
4333 if(![&](){return Helper.matchCombineUnmergeUndef(*State.MIs[0], GIMatchData_info);}()) {
4334 return false;
4335 }
4336 // Apply Patterns
4337 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4338 return true;
4339 }
4340 case GICXXCustomAction_GICombiner148:{
4341 // Match Patterns
4342 if(![&](){return Helper.matchCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);}()) {
4343 return false;
4344 }
4345 // Apply Patterns
4346 Helper.applyCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);
4347 return true;
4348 }
4349 case GICXXCustomAction_GICombiner149:{
4350 // Match Patterns
4351 if(![&](){return Helper.matchCombineUnmergeZExtToZExt(*State.MIs[0]);}()) {
4352 return false;
4353 }
4354 // Apply Patterns
4355 Helper.applyCombineUnmergeZExtToZExt(*State.MIs[0]);
4356 return true;
4357 }
4358 case GICXXCustomAction_GICombiner150:{
4359 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4360 // Match Patterns
4361 if(![&](){return Helper.matchMergeXAndUndef(*State.MIs[0], GIMatchData_matchinfo);}()) {
4362 return false;
4363 }
4364 // Apply Patterns
4365 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4366 return true;
4367 }
4368 case GICXXCustomAction_GICombiner151:{
4369 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4370 // Match Patterns
4371 if(![&](){return Helper.matchMergeXAndZero(*State.MIs[0], GIMatchData_matchinfo);}()) {
4372 return false;
4373 }
4374 // Apply Patterns
4375 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4376 return true;
4377 }
4378 case GICXXCustomAction_GICombiner152:{
4379 Register GIMatchData_unmergeSrc;
4380 // Match Patterns
4381 if(![&](){return Helper.matchCombineBuildUnmerge(*State.MIs[0], MRI, GIMatchData_unmergeSrc);}()) {
4382 return false;
4383 }
4384 // Apply Patterns
4385 Helper.applyCombineBuildUnmerge(*State.MIs[0], MRI, B, GIMatchData_unmergeSrc);
4386 return true;
4387 }
4388 case GICXXCustomAction_GICombiner153:{
4389 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4390 // Match Patterns
4391 if(![&](){return Helper.matchAddOverflow(*State.MIs[0], GIMatchData_matchinfo);}()) {
4392 return false;
4393 }
4394 // Apply Patterns
4395 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4396 return true;
4397 }
4398 case GICXXCustomAction_GICombiner154:{
4399 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4400 // Match Patterns
4401 if(![&](){return Helper.matchSuboCarryOut(*State.MIs[0], GIMatchData_matchinfo);}()) {
4402 return false;
4403 }
4404 // Apply Patterns
4405 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4406 return true;
4407 }
4408 case GICXXCustomAction_GICombiner155:{
4409 Register GIMatchData_matchinfo;
4410 // Match Patterns
4411 if(![&](){return Helper.matchTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);}()) {
4412 return false;
4413 }
4414 // Apply Patterns
4415 Helper.applyTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);
4416 return true;
4417 }
4418 case GICXXCustomAction_GICombiner156:{
4419 Register GIMatchData_matchinfo;
4420 // Match Patterns
4421 if(![&](){return Helper.matchTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);}()) {
4422 return false;
4423 }
4424 // Apply Patterns
4425 Helper.applyTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);
4426 return true;
4427 }
4428 case GICXXCustomAction_GICombiner157:{
4429 LshrOfTruncOfLshr GIMatchData_matchinfo;
4430 // Match Patterns
4431 if(![&](){return Helper.matchLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo, *State.MIs[2]);}()) {
4432 return false;
4433 }
4434 // Apply Patterns
4435 Helper.applyLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo);
4436 return true;
4437 }
4438 case GICXXCustomAction_GICombiner158:{
4439 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4440 // Match Patterns
4441 if(![&](){return Helper.matchCtls(*State.MIs[0], GIMatchData_matchinfo);}()) {
4442 return false;
4443 }
4444 // Apply Patterns
4445 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4446 return true;
4447 }
4448 case GICXXCustomAction_GICombiner159:{
4449 // Match Patterns
4450 if(![&](){return Helper.matchCountZeroToZeroPoison(*State.MIs[0]);}()) {
4451 return false;
4452 }
4453 // Apply Patterns
4454 Helper.applyCountZeroToZeroPoison(*State.MIs[0]);
4455 return true;
4456 }
4457 case GICXXCustomAction_GICombiner160:{
4458 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4459 // Match Patterns
4460 if(![&](){return Helper.matchBinopWithNeg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4461 return false;
4462 }
4463 // Apply Patterns
4464 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4465 return true;
4466 }
4467 case GICXXCustomAction_GICombiner161:{
4468 FMinFMaxLegacyInfo GIMatchData_matchinfo;
4469 // Match Patterns
4470 if(![&](){return matchFMinFMaxLegacy(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
4471 return false;
4472 }
4473 // Apply Patterns
4474 applySelectFCmpToFMinFMaxLegacy(*State.MIs[0], GIMatchData_matchinfo);
4475 return true;
4476 }
4477 case GICXXCustomAction_GICombiner162:{
4478 // Match Patterns
4479 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());}()) {
4480 return false;
4481 }
4482 // Apply Patterns
4483 Helper.applyExpandPromotedF16FMed3(*State.MIs[0], State.MIs[1]->getOperand(1).getReg(), State.MIs[1]->getOperand(2).getReg(), State.MIs[1]->getOperand(3).getReg());
4484 return true;
4485 }
4486 case GICXXCustomAction_GICombiner163:{
4487 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4488 // Match Patterns
4489 if(![&](){return Helper.matchCombineFmulWithSelectToFldexp(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
4490 return false;
4491 }
4492 // Apply Patterns
4493 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4494 return true;
4495 }
4496 case GICXXCustomAction_GICombiner164:{
4497 // Match Patterns
4498 if(![&](){return matchUCharToFloat(*State.MIs[0]);}()) {
4499 return false;
4500 }
4501 // Apply Patterns
4502 applyUCharToFloat(*State.MIs[0]);
4503 return true;
4504 }
4505 case GICXXCustomAction_GICombiner165:{
4506 CvtF32UByteMatchInfo GIMatchData_matchinfo;
4507 // Match Patterns
4508 if(![&](){return matchCvtF32UByteN(*State.MIs[0], GIMatchData_matchinfo);}()) {
4509 return false;
4510 }
4511 // Apply Patterns
4512 applyCvtF32UByteN(*State.MIs[0], GIMatchData_matchinfo);
4513 return true;
4514 }
4515 case GICXXCustomAction_GICombiner166:{
4516 Register GIMatchData_matchinfo;
4517 // Match Patterns
4518 if(![&](){return matchRemoveFcanonicalize(*State.MIs[0], GIMatchData_matchinfo);}()) {
4519 return false;
4520 }
4521 // Apply Patterns
4522 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
4523 return true;
4524 }
4525 case GICXXCustomAction_GICombiner167:{
4526 MachineInstr * GIMatchData_matchinfo;
4527 // Match Patterns
4528 if(![&](){return Helper.matchFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4529 return false;
4530 }
4531 // Apply Patterns
4532 Helper.applyFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);
4533 return true;
4534 }
4535 case GICXXCustomAction_GICombiner168:{
4536 // Match Patterns
4537 if(![&](){return Helper.matchFoldFAbsFptrunc(*State.MIs[0], *State.MIs[1]);}()) {
4538 return false;
4539 }
4540 // Apply Patterns
4541 Helper.applyFoldFAbsFptrunc(*State.MIs[0], *State.MIs[1]);
4542 return true;
4543 }
4544 case GICXXCustomAction_GICombiner169:{
4545 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4546 // Match Patterns
4547 if(![&](){return matchRcpSqrtToRsq(*State.MIs[0], GIMatchData_matchinfo);}()) {
4548 return false;
4549 }
4550 // Apply Patterns
4551 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4552 return true;
4553 }
4554 case GICXXCustomAction_GICombiner170:{
4555 // Match Patterns
4556 if(![&](){return matchFDivSqrtToRsqF16(*State.MIs[0]);}()) {
4557 return false;
4558 }
4559 // Apply Patterns
4560 applyFDivSqrtToRsqF16(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
4561 return true;
4562 }
4563 case GICXXCustomAction_GICombiner171:{
4564 std::pair<MachineInstr *, unsigned> GIMatchData_matchinfo;
4565 // Match Patterns
4566 if(![&](){return matchCombineSignExtendInReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4567 return false;
4568 }
4569 // Apply Patterns
4570 applyCombineSignExtendInReg(*State.MIs[0], GIMatchData_matchinfo);
4571 return true;
4572 }
4573 case GICXXCustomAction_GICombiner172:{
4574 unsigned GIMatchData_matchinfo;
4575 // Match Patterns
4576 if(![&](){return matchCombine_s_mul_u64(*State.MIs[0], GIMatchData_matchinfo);}()) {
4577 return false;
4578 }
4579 // Apply Patterns
4580 Helper.replaceOpcodeWith(*State.MIs[0], GIMatchData_matchinfo);
4581 return true;
4582 }
4583 }
4584 llvm_unreachable("Unknown Apply Action");
4585}
4586#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
4587#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((Val) >> 8)
4588#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24)
4589#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)
4590#else
4591#define GIMT_Encode2(Val) uint8_t((Val) >> 8), uint8_t(Val)
4592#define GIMT_Encode4(Val) uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
4593#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)
4594#endif
4595const uint8_t *AMDGPUPostLegalizerCombinerImpl::getMatchTable() const {
4596 constexpr static uint8_t MatchTable0[] = {
4597 /* 0 */ GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(20), GIMT_Encode2(4139), /*)*//*default:*//*Label 118*/ GIMT_Encode4(26303),
4598 /* 10 */ /*TargetOpcode::COPY*//*Label 0*/ GIMT_Encode4(16486), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4599 /* 150 */ /*TargetOpcode::G_ADD*//*Label 1*/ GIMT_Encode4(16498),
4600 /* 154 */ /*TargetOpcode::G_SUB*//*Label 2*/ GIMT_Encode4(17231),
4601 /* 158 */ /*TargetOpcode::G_MUL*//*Label 3*/ GIMT_Encode4(18212),
4602 /* 162 */ /*TargetOpcode::G_SDIV*//*Label 4*/ GIMT_Encode4(18429),
4603 /* 166 */ /*TargetOpcode::G_UDIV*//*Label 5*/ GIMT_Encode4(18531),
4604 /* 170 */ /*TargetOpcode::G_SREM*//*Label 6*/ GIMT_Encode4(18644),
4605 /* 174 */ /*TargetOpcode::G_UREM*//*Label 7*/ GIMT_Encode4(18740), GIMT_Encode4(0), GIMT_Encode4(0),
4606 /* 186 */ /*TargetOpcode::G_AND*//*Label 8*/ GIMT_Encode4(18847),
4607 /* 190 */ /*TargetOpcode::G_OR*//*Label 9*/ GIMT_Encode4(19388),
4608 /* 194 */ /*TargetOpcode::G_XOR*//*Label 10*/ GIMT_Encode4(20491), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4609 /* 226 */ /*TargetOpcode::G_PHI*//*Label 11*/ GIMT_Encode4(20702), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4610 /* 250 */ /*TargetOpcode::G_UNMERGE_VALUES*//*Label 12*/ GIMT_Encode4(20714), GIMT_Encode4(0),
4611 /* 258 */ /*TargetOpcode::G_MERGE_VALUES*//*Label 13*/ GIMT_Encode4(20781),
4612 /* 262 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 14*/ GIMT_Encode4(20858),
4613 /* 266 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 15*/ GIMT_Encode4(20923),
4614 /* 270 */ /*TargetOpcode::G_CONCAT_VECTORS*//*Label 16*/ GIMT_Encode4(20935),
4615 /* 274 */ /*TargetOpcode::G_PTRTOINT*//*Label 17*/ GIMT_Encode4(20947),
4616 /* 278 */ /*TargetOpcode::G_INTTOPTR*//*Label 18*/ GIMT_Encode4(20990),
4617 /* 282 */ /*TargetOpcode::G_BITCAST*//*Label 19*/ GIMT_Encode4(21023),
4618 /* 286 */ /*TargetOpcode::G_FREEZE*//*Label 20*/ GIMT_Encode4(21098), GIMT_Encode4(0), GIMT_Encode4(0),
4619 /* 298 */ /*TargetOpcode::G_INTRINSIC_TRUNC*//*Label 21*/ GIMT_Encode4(21162),
4620 /* 302 */ /*TargetOpcode::G_INTRINSIC_ROUND*//*Label 22*/ GIMT_Encode4(21184), GIMT_Encode4(0), GIMT_Encode4(0),
4621 /* 314 */ /*TargetOpcode::G_INTRINSIC_ROUNDEVEN*//*Label 23*/ GIMT_Encode4(21206), GIMT_Encode4(0), GIMT_Encode4(0),
4622 /* 326 */ /*TargetOpcode::G_LOAD*//*Label 24*/ GIMT_Encode4(21228),
4623 /* 330 */ /*TargetOpcode::G_SEXTLOAD*//*Label 25*/ GIMT_Encode4(21240),
4624 /* 334 */ /*TargetOpcode::G_ZEXTLOAD*//*Label 26*/ GIMT_Encode4(21252), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4625 /* 354 */ /*TargetOpcode::G_STORE*//*Label 27*/ GIMT_Encode4(21264), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4626 /* 486 */ /*TargetOpcode::G_INTRINSIC*//*Label 28*/ GIMT_Encode4(21276), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4627 /* 502 */ /*TargetOpcode::G_ANYEXT*//*Label 29*/ GIMT_Encode4(21288),
4628 /* 506 */ /*TargetOpcode::G_TRUNC*//*Label 30*/ GIMT_Encode4(21416), GIMT_Encode4(0), GIMT_Encode4(0),
4629 /* 518 */ /*TargetOpcode::G_TRUNC_USAT_U*//*Label 31*/ GIMT_Encode4(21828), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4630 /* 538 */ /*TargetOpcode::G_SEXT*//*Label 32*/ GIMT_Encode4(21861),
4631 /* 542 */ /*TargetOpcode::G_SEXT_INREG*//*Label 33*/ GIMT_Encode4(21936),
4632 /* 546 */ /*TargetOpcode::G_ZEXT*//*Label 34*/ GIMT_Encode4(22157),
4633 /* 550 */ /*TargetOpcode::G_SHL*//*Label 35*/ GIMT_Encode4(22287),
4634 /* 554 */ /*TargetOpcode::G_LSHR*//*Label 36*/ GIMT_Encode4(22485),
4635 /* 558 */ /*TargetOpcode::G_ASHR*//*Label 37*/ GIMT_Encode4(22832),
4636 /* 562 */ /*TargetOpcode::G_FSHL*//*Label 38*/ GIMT_Encode4(23161),
4637 /* 566 */ /*TargetOpcode::G_FSHR*//*Label 39*/ GIMT_Encode4(23204),
4638 /* 570 */ /*TargetOpcode::G_ROTR*//*Label 40*/ GIMT_Encode4(23247),
4639 /* 574 */ /*TargetOpcode::G_ROTL*//*Label 41*/ GIMT_Encode4(23271),
4640 /* 578 */ /*TargetOpcode::G_ICMP*//*Label 42*/ GIMT_Encode4(23295),
4641 /* 582 */ /*TargetOpcode::G_FCMP*//*Label 43*/ GIMT_Encode4(23340), GIMT_Encode4(0), GIMT_Encode4(0),
4642 /* 594 */ /*TargetOpcode::G_SELECT*//*Label 44*/ GIMT_Encode4(23352),
4643 /* 598 */ /*TargetOpcode::G_UADDO*//*Label 45*/ GIMT_Encode4(23558),
4644 /* 602 */ /*TargetOpcode::G_UADDE*//*Label 46*/ GIMT_Encode4(23581),
4645 /* 606 */ /*TargetOpcode::G_USUBO*//*Label 47*/ GIMT_Encode4(23593),
4646 /* 610 */ /*TargetOpcode::G_USUBE*//*Label 48*/ GIMT_Encode4(23605),
4647 /* 614 */ /*TargetOpcode::G_SADDO*//*Label 49*/ GIMT_Encode4(23617),
4648 /* 618 */ /*TargetOpcode::G_SADDE*//*Label 50*/ GIMT_Encode4(23640),
4649 /* 622 */ /*TargetOpcode::G_SSUBO*//*Label 51*/ GIMT_Encode4(23652),
4650 /* 626 */ /*TargetOpcode::G_SSUBE*//*Label 52*/ GIMT_Encode4(23664),
4651 /* 630 */ /*TargetOpcode::G_UMULO*//*Label 53*/ GIMT_Encode4(23676),
4652 /* 634 */ /*TargetOpcode::G_SMULO*//*Label 54*/ GIMT_Encode4(23710),
4653 /* 638 */ /*TargetOpcode::G_UMULH*//*Label 55*/ GIMT_Encode4(23744),
4654 /* 642 */ /*TargetOpcode::G_SMULH*//*Label 56*/ GIMT_Encode4(23767),
4655 /* 646 */ /*TargetOpcode::G_UADDSAT*//*Label 57*/ GIMT_Encode4(23779),
4656 /* 650 */ /*TargetOpcode::G_SADDSAT*//*Label 58*/ GIMT_Encode4(23791), GIMT_Encode4(0), GIMT_Encode4(0),
4657 /* 662 */ /*TargetOpcode::G_USHLSAT*//*Label 59*/ GIMT_Encode4(23803),
4658 /* 666 */ /*TargetOpcode::G_SSHLSAT*//*Label 60*/ GIMT_Encode4(23826),
4659 /* 670 */ /*TargetOpcode::G_SMULFIX*//*Label 61*/ GIMT_Encode4(23849),
4660 /* 674 */ /*TargetOpcode::G_UMULFIX*//*Label 62*/ GIMT_Encode4(23861),
4661 /* 678 */ /*TargetOpcode::G_SMULFIXSAT*//*Label 63*/ GIMT_Encode4(23873),
4662 /* 682 */ /*TargetOpcode::G_UMULFIXSAT*//*Label 64*/ GIMT_Encode4(23885), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4663 /* 702 */ /*TargetOpcode::G_FADD*//*Label 65*/ GIMT_Encode4(23897),
4664 /* 706 */ /*TargetOpcode::G_FSUB*//*Label 66*/ GIMT_Encode4(24038),
4665 /* 710 */ /*TargetOpcode::G_FMUL*//*Label 67*/ GIMT_Encode4(24127),
4666 /* 714 */ /*TargetOpcode::G_FMA*//*Label 68*/ GIMT_Encode4(24236),
4667 /* 718 */ /*TargetOpcode::G_FMAD*//*Label 69*/ GIMT_Encode4(24259),
4668 /* 722 */ /*TargetOpcode::G_FDIV*//*Label 70*/ GIMT_Encode4(24282),
4669 /* 726 */ /*TargetOpcode::G_FREM*//*Label 71*/ GIMT_Encode4(24366), GIMT_Encode4(0), GIMT_Encode4(0),
4670 /* 738 */ /*TargetOpcode::G_FPOWI*//*Label 72*/ GIMT_Encode4(24389), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4671 /* 758 */ /*TargetOpcode::G_FLOG2*//*Label 73*/ GIMT_Encode4(24411), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4672 /* 774 */ /*TargetOpcode::G_FNEG*//*Label 74*/ GIMT_Encode4(24433),
4673 /* 778 */ /*TargetOpcode::G_FPEXT*//*Label 75*/ GIMT_Encode4(24495),
4674 /* 782 */ /*TargetOpcode::G_FPTRUNC*//*Label 76*/ GIMT_Encode4(24517),
4675 /* 786 */ /*TargetOpcode::G_FPTOSI*//*Label 77*/ GIMT_Encode4(24583),
4676 /* 790 */ /*TargetOpcode::G_FPTOUI*//*Label 78*/ GIMT_Encode4(24605),
4677 /* 794 */ /*TargetOpcode::G_SITOFP*//*Label 79*/ GIMT_Encode4(24627),
4678 /* 798 */ /*TargetOpcode::G_UITOFP*//*Label 80*/ GIMT_Encode4(24665), GIMT_Encode4(0), GIMT_Encode4(0),
4679 /* 810 */ /*TargetOpcode::G_FABS*//*Label 81*/ GIMT_Encode4(24703),
4680 /* 814 */ /*TargetOpcode::G_FCOPYSIGN*//*Label 82*/ GIMT_Encode4(24803), GIMT_Encode4(0),
4681 /* 822 */ /*TargetOpcode::G_FCANONICALIZE*//*Label 83*/ GIMT_Encode4(24815),
4682 /* 826 */ /*TargetOpcode::G_FMINNUM*//*Label 84*/ GIMT_Encode4(24856),
4683 /* 830 */ /*TargetOpcode::G_FMAXNUM*//*Label 85*/ GIMT_Encode4(24901),
4684 /* 834 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 86*/ GIMT_Encode4(24946),
4685 /* 838 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 87*/ GIMT_Encode4(24958),
4686 /* 842 */ /*TargetOpcode::G_FMINIMUM*//*Label 88*/ GIMT_Encode4(24970),
4687 /* 846 */ /*TargetOpcode::G_FMAXIMUM*//*Label 89*/ GIMT_Encode4(25015),
4688 /* 850 */ /*TargetOpcode::G_FMINIMUMNUM*//*Label 90*/ GIMT_Encode4(25060),
4689 /* 854 */ /*TargetOpcode::G_FMAXIMUMNUM*//*Label 91*/ GIMT_Encode4(25072), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4690 /* 890 */ /*TargetOpcode::G_PTR_ADD*//*Label 92*/ GIMT_Encode4(25084), GIMT_Encode4(0),
4691 /* 898 */ /*TargetOpcode::G_SMIN*//*Label 93*/ GIMT_Encode4(25174),
4692 /* 902 */ /*TargetOpcode::G_SMAX*//*Label 94*/ GIMT_Encode4(25208),
4693 /* 906 */ /*TargetOpcode::G_UMIN*//*Label 95*/ GIMT_Encode4(25242),
4694 /* 910 */ /*TargetOpcode::G_UMAX*//*Label 96*/ GIMT_Encode4(25276),
4695 /* 914 */ /*TargetOpcode::G_ABS*//*Label 97*/ GIMT_Encode4(25310), GIMT_Encode4(0), GIMT_Encode4(0),
4696 /* 926 */ /*TargetOpcode::G_BR*//*Label 98*/ GIMT_Encode4(25333), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4697 /* 946 */ /*TargetOpcode::G_INSERT_VECTOR_ELT*//*Label 99*/ GIMT_Encode4(25345),
4698 /* 950 */ /*TargetOpcode::G_EXTRACT_VECTOR_ELT*//*Label 100*/ GIMT_Encode4(25475),
4699 /* 954 */ /*TargetOpcode::G_SHUFFLE_VECTOR*//*Label 101*/ GIMT_Encode4(25852), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4700 /* 970 */ /*TargetOpcode::G_CTTZ*//*Label 102*/ GIMT_Encode4(25918),
4701 /* 974 */ /*TargetOpcode::G_CTTZ_ZERO_POISON*//*Label 103*/ GIMT_Encode4(25941),
4702 /* 978 */ /*TargetOpcode::G_CTLZ*//*Label 104*/ GIMT_Encode4(25953),
4703 /* 982 */ /*TargetOpcode::G_CTLZ_ZERO_POISON*//*Label 105*/ GIMT_Encode4(25987), GIMT_Encode4(0),
4704 /* 990 */ /*TargetOpcode::G_CTPOP*//*Label 106*/ GIMT_Encode4(26010),
4705 /* 994 */ /*TargetOpcode::G_BSWAP*//*Label 107*/ GIMT_Encode4(26022),
4706 /* 998 */ /*TargetOpcode::G_BITREVERSE*//*Label 108*/ GIMT_Encode4(26034), GIMT_Encode4(0),
4707 /* 1006 */ /*TargetOpcode::G_FCEIL*//*Label 109*/ GIMT_Encode4(26134), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4708 /* 1054 */ /*TargetOpcode::G_FSQRT*//*Label 110*/ GIMT_Encode4(26156),
4709 /* 1058 */ /*TargetOpcode::G_FFLOOR*//*Label 111*/ GIMT_Encode4(26189),
4710 /* 1062 */ /*TargetOpcode::G_FRINT*//*Label 112*/ GIMT_Encode4(26211),
4711 /* 1066 */ /*TargetOpcode::G_FNEARBYINT*//*Label 113*/ GIMT_Encode4(26233), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4712 /* 16470 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE0*//*Label 114*/ GIMT_Encode4(26255),
4713 /* 16474 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE1*//*Label 115*/ GIMT_Encode4(26267),
4714 /* 16478 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE2*//*Label 116*/ GIMT_Encode4(26279),
4715 /* 16482 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE3*//*Label 117*/ GIMT_Encode4(26291),
4716 /* 16486 */ // Label 0: @16486
4717 /* 16486 */ GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(16497), // Rule ID 19 //
4718 /* 16491 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
4719 /* 16494 */ // MIs[0] d
4720 /* 16494 */ // No operand predicates
4721 /* 16494 */ // MIs[0] s
4722 /* 16494 */ // No operand predicates
4723 /* 16494 */ // Combiner Rule #19: copy_prop
4724 /* 16494 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
4725 /* 16497 */ // Label 119: @16497
4726 /* 16497 */ GIM_Reject,
4727 /* 16498 */ // Label 1: @16498
4728 /* 16498 */ GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(16509), // Rule ID 22 //
4729 /* 16503 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
4730 /* 16506 */ // Combiner Rule #22: add_p2i_to_ptradd; wip_match_opcode 'G_ADD'
4731 /* 16506 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
4732 /* 16509 */ // Label 120: @16509
4733 /* 16509 */ GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(16520), // Rule ID 100 //
4734 /* 16514 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
4735 /* 16517 */ // Combiner Rule #84: propagate_undef_any_op; wip_match_opcode 'G_ADD'
4736 /* 16517 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
4737 /* 16520 */ // Label 121: @16520
4738 /* 16520 */ GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(16531), // Rule ID 152 //
4739 /* 16525 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
4740 /* 16528 */ // Combiner Rule #112: simplify_add_to_sub; wip_match_opcode 'G_ADD'
4741 /* 16528 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner53),
4742 /* 16531 */ // Label 122: @16531
4743 /* 16531 */ GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(16542), // Rule ID 260 //
4744 /* 16536 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
4745 /* 16539 */ // Combiner Rule #191: constant_fold_binop; wip_match_opcode 'G_ADD'
4746 /* 16539 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
4747 /* 16542 */ // Label 123: @16542
4748 /* 16542 */ GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(16553), // Rule ID 320 //
4749 /* 16547 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
4750 /* 16550 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_ADD'
4751 /* 16550 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
4752 /* 16553 */ // Label 124: @16553
4753 /* 16553 */ GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(16564), // Rule ID 357 //
4754 /* 16558 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
4755 /* 16561 */ // Combiner Rule #220: commute_int_constant_to_rhs; wip_match_opcode 'G_ADD'
4756 /* 16561 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
4757 /* 16564 */ // Label 125: @16564
4758 /* 16564 */ GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(16652), // Rule ID 427 //
4759 /* 16569 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule260Enabled),
4760 /* 16572 */ // MIs[0] dst
4761 /* 16572 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4762 /* 16576 */ // MIs[0] __add_shift_match_0.shl_neg
4763 /* 16576 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4764 /* 16580 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
4765 /* 16584 */ // MIs[1] __add_shift_match_0.neg_y
4766 /* 16584 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4767 /* 16588 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4768 /* 16592 */ // MIs[2] __add_shift_match_0.zero
4769 /* 16592 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
4770 /* 16596 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4771 /* 16600 */ // MIs[3] Operand 1
4772 /* 16600 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
4773 /* 16611 */ // MIs[2] y
4774 /* 16611 */ // No operand predicates
4775 /* 16611 */ // MIs[1] n
4776 /* 16611 */ // No operand predicates
4777 /* 16611 */ // MIs[0] x
4778 /* 16611 */ // No operand predicates
4779 /* 16611 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner19),
4780 /* 16615 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4781 /* 16617 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4782 /* 16620 */ // Combiner Rule #260: add_shift @ [__add_shift_match_0[1]]
4783 /* 16620 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
4784 /* 16623 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4785 /* 16628 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
4786 /* 16632 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
4787 /* 16636 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4788 /* 16640 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4789 /* 16644 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // x
4790 /* 16648 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4791 /* 16651 */ GIR_EraseRootFromParent_Done,
4792 /* 16652 */ // Label 126: @16652
4793 /* 16652 */ GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(16740), // Rule ID 426 //
4794 /* 16657 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule260Enabled),
4795 /* 16660 */ // MIs[0] dst
4796 /* 16660 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4797 /* 16664 */ // MIs[0] x
4798 /* 16664 */ // No operand predicates
4799 /* 16664 */ // MIs[0] __add_shift_match_0.shl_neg
4800 /* 16664 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4801 /* 16668 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
4802 /* 16672 */ // MIs[1] __add_shift_match_0.neg_y
4803 /* 16672 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4804 /* 16676 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4805 /* 16680 */ // MIs[2] __add_shift_match_0.zero
4806 /* 16680 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
4807 /* 16684 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4808 /* 16688 */ // MIs[3] Operand 1
4809 /* 16688 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
4810 /* 16699 */ // MIs[2] y
4811 /* 16699 */ // No operand predicates
4812 /* 16699 */ // MIs[1] n
4813 /* 16699 */ // No operand predicates
4814 /* 16699 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner18),
4815 /* 16703 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4816 /* 16705 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4817 /* 16708 */ // Combiner Rule #260: add_shift @ [__add_shift_match_0[0]]
4818 /* 16708 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
4819 /* 16711 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4820 /* 16716 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
4821 /* 16720 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
4822 /* 16724 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4823 /* 16728 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4824 /* 16732 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // x
4825 /* 16736 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4826 /* 16739 */ GIR_EraseRootFromParent_Done,
4827 /* 16740 */ // Label 127: @16740
4828 /* 16740 */ GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(16774), // Rule ID 2 //
4829 /* 16745 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
4830 /* 16748 */ // MIs[0] root
4831 /* 16748 */ // No operand predicates
4832 /* 16748 */ // MIs[0] sub
4833 /* 16748 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4834 /* 16752 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4835 /* 16756 */ // MIs[1] Operand 1
4836 /* 16756 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
4837 /* 16760 */ // MIs[1] A
4838 /* 16760 */ // No operand predicates
4839 /* 16760 */ // MIs[0] B
4840 /* 16760 */ // No operand predicates
4841 /* 16760 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4842 /* 16762 */ // Combiner Rule #2: ZeroMinusAPlusB
4843 /* 16762 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4844 /* 16765 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4845 /* 16767 */ GIR_RootToRootCopy, /*OpIdx*/2, // B
4846 /* 16769 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // A
4847 /* 16773 */ GIR_EraseRootFromParent_Done,
4848 /* 16774 */ // Label 128: @16774
4849 /* 16774 */ GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(16811), // Rule ID 18 //
4850 /* 16779 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
4851 /* 16782 */ // MIs[0] root
4852 /* 16782 */ // No operand predicates
4853 /* 16782 */ // MIs[0] sub
4854 /* 16782 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4855 /* 16786 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4856 /* 16790 */ // MIs[1] A
4857 /* 16790 */ // No operand predicates
4858 /* 16790 */ // MIs[1] c1
4859 /* 16790 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4860 /* 16794 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4861 /* 16798 */ // MIs[2] imm1
4862 /* 16798 */ // No operand predicates
4863 /* 16798 */ // MIs[0] c2
4864 /* 16798 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4865 /* 16802 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4866 /* 16806 */ // MIs[3] imm2
4867 /* 16806 */ // No operand predicates
4868 /* 16806 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4869 /* 16808 */ // Combiner Rule #18: AMinusC1PlusC2
4870 /* 16808 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
4871 /* 16811 */ // Label 129: @16811
4872 /* 16811 */ GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(16845), // Rule ID 5 //
4873 /* 16816 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
4874 /* 16819 */ // MIs[0] root
4875 /* 16819 */ // No operand predicates
4876 /* 16819 */ // MIs[0] sub
4877 /* 16819 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4878 /* 16823 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4879 /* 16827 */ // MIs[1] B
4880 /* 16827 */ // No operand predicates
4881 /* 16827 */ // MIs[1] A
4882 /* 16827 */ // No operand predicates
4883 /* 16827 */ // MIs[0] A
4884 /* 16827 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
4885 /* 16832 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4886 /* 16837 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4887 /* 16839 */ // Combiner Rule #5: BMinusAPlusA
4888 /* 16839 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4889 /* 16844 */ GIR_EraseRootFromParent_Done,
4890 /* 16845 */ // Label 130: @16845
4891 /* 16845 */ GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(16879), // Rule ID 140 //
4892 /* 16850 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
4893 /* 16853 */ // MIs[0] dst
4894 /* 16853 */ // No operand predicates
4895 /* 16853 */ // MIs[0] __add_sub_reg_match_0.tmp
4896 /* 16853 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4897 /* 16857 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4898 /* 16861 */ // MIs[1] src
4899 /* 16861 */ // No operand predicates
4900 /* 16861 */ // MIs[1] __add_sub_reg_match_0.x
4901 /* 16861 */ // No operand predicates
4902 /* 16861 */ // MIs[0] __add_sub_reg_match_0.x
4903 /* 16861 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
4904 /* 16866 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4905 /* 16871 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4906 /* 16873 */ // Combiner Rule #101: add_sub_reg @ [__add_sub_reg_match_0[1]]
4907 /* 16873 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4908 /* 16878 */ GIR_EraseRootFromParent_Done,
4909 /* 16879 */ // Label 131: @16879
4910 /* 16879 */ GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(16924), // Rule ID 7 //
4911 /* 16884 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
4912 /* 16887 */ // MIs[0] root
4913 /* 16887 */ // No operand predicates
4914 /* 16887 */ // MIs[0] sub1
4915 /* 16887 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4916 /* 16891 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4917 /* 16895 */ // MIs[1] A
4918 /* 16895 */ // No operand predicates
4919 /* 16895 */ // MIs[1] B
4920 /* 16895 */ // No operand predicates
4921 /* 16895 */ // MIs[0] sub2
4922 /* 16895 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4923 /* 16899 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4924 /* 16903 */ // MIs[2] B
4925 /* 16903 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
4926 /* 16908 */ // MIs[2] C
4927 /* 16908 */ // No operand predicates
4928 /* 16908 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4929 /* 16910 */ // Combiner Rule #7: AMinusBPlusBMinusC
4930 /* 16910 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4931 /* 16913 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4932 /* 16915 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
4933 /* 16919 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
4934 /* 16923 */ GIR_EraseRootFromParent_Done,
4935 /* 16924 */ // Label 132: @16924
4936 /* 16924 */ GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(16969), // Rule ID 6 //
4937 /* 16929 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
4938 /* 16932 */ // MIs[0] root
4939 /* 16932 */ // No operand predicates
4940 /* 16932 */ // MIs[0] sub1
4941 /* 16932 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4942 /* 16936 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4943 /* 16940 */ // MIs[1] A
4944 /* 16940 */ // No operand predicates
4945 /* 16940 */ // MIs[1] B
4946 /* 16940 */ // No operand predicates
4947 /* 16940 */ // MIs[0] sub2
4948 /* 16940 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4949 /* 16944 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4950 /* 16948 */ // MIs[2] C
4951 /* 16948 */ // No operand predicates
4952 /* 16948 */ // MIs[2] A
4953 /* 16948 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
4954 /* 16953 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4955 /* 16955 */ // Combiner Rule #6: AMinusBPlusCMinusA
4956 /* 16955 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4957 /* 16958 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4958 /* 16960 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
4959 /* 16964 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
4960 /* 16968 */ GIR_EraseRootFromParent_Done,
4961 /* 16969 */ // Label 133: @16969
4962 /* 16969 */ GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(17004), // Rule ID 45 //
4963 /* 16974 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
4964 /* 16977 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
4965 /* 16983 */ // MIs[0] root
4966 /* 16983 */ // No operand predicates
4967 /* 16983 */ // MIs[0] left
4968 /* 16983 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4969 /* 16987 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
4970 /* 16991 */ // MIs[1] imm1
4971 /* 16991 */ // No operand predicates
4972 /* 16991 */ // MIs[0] right
4973 /* 16991 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4974 /* 16995 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_VSCALE),
4975 /* 16999 */ // MIs[2] imm2
4976 /* 16999 */ // No operand predicates
4977 /* 16999 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4978 /* 17001 */ // Combiner Rule #43: add_of_vscale
4979 /* 17001 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
4980 /* 17004 */ // Label 134: @17004
4981 /* 17004 */ GIM_Try, /*On fail goto*//*Label 135*/ GIMT_Encode4(17038), // Rule ID 3 //
4982 /* 17009 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
4983 /* 17012 */ // MIs[0] root
4984 /* 17012 */ // No operand predicates
4985 /* 17012 */ // MIs[0] A
4986 /* 17012 */ // No operand predicates
4987 /* 17012 */ // MIs[0] sub
4988 /* 17012 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4989 /* 17016 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4990 /* 17020 */ // MIs[1] Operand 1
4991 /* 17020 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
4992 /* 17024 */ // MIs[1] B
4993 /* 17024 */ // No operand predicates
4994 /* 17024 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4995 /* 17026 */ // Combiner Rule #3: APlusZeroMinusB
4996 /* 17026 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4997 /* 17029 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4998 /* 17031 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
4999 /* 17033 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
5000 /* 17037 */ GIR_EraseRootFromParent_Done,
5001 /* 17038 */ // Label 135: @17038
5002 /* 17038 */ GIM_Try, /*On fail goto*//*Label 136*/ GIMT_Encode4(17072), // Rule ID 4 //
5003 /* 17043 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
5004 /* 17046 */ // MIs[0] root
5005 /* 17046 */ // No operand predicates
5006 /* 17046 */ // MIs[0] A
5007 /* 17046 */ // No operand predicates
5008 /* 17046 */ // MIs[0] sub
5009 /* 17046 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5010 /* 17050 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5011 /* 17054 */ // MIs[1] B
5012 /* 17054 */ // No operand predicates
5013 /* 17054 */ // MIs[1] A
5014 /* 17054 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5015 /* 17059 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5016 /* 17064 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5017 /* 17066 */ // Combiner Rule #4: APlusBMinusB
5018 /* 17066 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5019 /* 17071 */ GIR_EraseRootFromParent_Done,
5020 /* 17072 */ // Label 136: @17072
5021 /* 17072 */ GIM_Try, /*On fail goto*//*Label 137*/ GIMT_Encode4(17106), // Rule ID 139 //
5022 /* 17077 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
5023 /* 17080 */ // MIs[0] dst
5024 /* 17080 */ // No operand predicates
5025 /* 17080 */ // MIs[0] __add_sub_reg_match_0.x
5026 /* 17080 */ // No operand predicates
5027 /* 17080 */ // MIs[0] __add_sub_reg_match_0.tmp
5028 /* 17080 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5029 /* 17084 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5030 /* 17088 */ // MIs[1] src
5031 /* 17088 */ // No operand predicates
5032 /* 17088 */ // MIs[1] __add_sub_reg_match_0.x
5033 /* 17088 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5034 /* 17093 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5035 /* 17098 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5036 /* 17100 */ // Combiner Rule #101: add_sub_reg @ [__add_sub_reg_match_0[0]]
5037 /* 17100 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5038 /* 17105 */ GIR_EraseRootFromParent_Done,
5039 /* 17106 */ // Label 137: @17106
5040 /* 17106 */ GIM_Try, /*On fail goto*//*Label 138*/ GIMT_Encode4(17151), // Rule ID 8 //
5041 /* 17111 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
5042 /* 17114 */ // MIs[0] root
5043 /* 17114 */ // No operand predicates
5044 /* 17114 */ // MIs[0] A
5045 /* 17114 */ // No operand predicates
5046 /* 17114 */ // MIs[0] sub1
5047 /* 17114 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5048 /* 17118 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5049 /* 17122 */ // MIs[1] B
5050 /* 17122 */ // No operand predicates
5051 /* 17122 */ // MIs[1] add1
5052 /* 17122 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5053 /* 17126 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
5054 /* 17130 */ // MIs[2] A
5055 /* 17130 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
5056 /* 17135 */ // MIs[2] C
5057 /* 17135 */ // No operand predicates
5058 /* 17135 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5059 /* 17137 */ // Combiner Rule #8: APlusBMinusAplusC
5060 /* 17137 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5061 /* 17140 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5062 /* 17142 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
5063 /* 17146 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
5064 /* 17150 */ GIR_EraseRootFromParent_Done,
5065 /* 17151 */ // Label 138: @17151
5066 /* 17151 */ GIM_Try, /*On fail goto*//*Label 139*/ GIMT_Encode4(17196), // Rule ID 10 //
5067 /* 17156 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
5068 /* 17159 */ // MIs[0] root
5069 /* 17159 */ // No operand predicates
5070 /* 17159 */ // MIs[0] A
5071 /* 17159 */ // No operand predicates
5072 /* 17159 */ // MIs[0] sub1
5073 /* 17159 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5074 /* 17163 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5075 /* 17167 */ // MIs[1] B
5076 /* 17167 */ // No operand predicates
5077 /* 17167 */ // MIs[1] add1
5078 /* 17167 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5079 /* 17171 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
5080 /* 17175 */ // MIs[2] C
5081 /* 17175 */ // No operand predicates
5082 /* 17175 */ // MIs[2] A
5083 /* 17175 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5084 /* 17180 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5085 /* 17182 */ // Combiner Rule #10: APlusBMinusCPlusA
5086 /* 17182 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5087 /* 17185 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5088 /* 17187 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
5089 /* 17191 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
5090 /* 17195 */ GIR_EraseRootFromParent_Done,
5091 /* 17196 */ // Label 139: @17196
5092 /* 17196 */ GIM_Try, /*On fail goto*//*Label 140*/ GIMT_Encode4(17219), // Rule ID 111 //
5093 /* 17201 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
5094 /* 17204 */ // MIs[0] dst
5095 /* 17204 */ // No operand predicates
5096 /* 17204 */ // MIs[0] lhs
5097 /* 17204 */ // No operand predicates
5098 /* 17204 */ // MIs[0] Operand 2
5099 /* 17204 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5100 /* 17208 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5101 /* 17213 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[1]]
5102 /* 17213 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5103 /* 17218 */ GIR_EraseRootFromParent_Done,
5104 /* 17219 */ // Label 140: @17219
5105 /* 17219 */ GIM_Try, /*On fail goto*//*Label 141*/ GIMT_Encode4(17230), // Rule ID 160 //
5106 /* 17224 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule116Enabled),
5107 /* 17227 */ // MIs[0] root
5108 /* 17227 */ // No operand predicates
5109 /* 17227 */ // MIs[0] src1
5110 /* 17227 */ // No operand predicates
5111 /* 17227 */ // MIs[0] src2
5112 /* 17227 */ // No operand predicates
5113 /* 17227 */ // Combiner Rule #116: reassoc_comm_binops
5114 /* 17227 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner57),
5115 /* 17230 */ // Label 141: @17230
5116 /* 17230 */ GIM_Reject,
5117 /* 17231 */ // Label 2: @17231
5118 /* 17231 */ GIM_Try, /*On fail goto*//*Label 142*/ GIMT_Encode4(17242), // Rule ID 101 //
5119 /* 17236 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
5120 /* 17239 */ // Combiner Rule #84: propagate_undef_any_op; wip_match_opcode 'G_SUB'
5121 /* 17239 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
5122 /* 17242 */ // Label 142: @17242
5123 /* 17242 */ GIM_Try, /*On fail goto*//*Label 143*/ GIMT_Encode4(17253), // Rule ID 268 //
5124 /* 17247 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
5125 /* 17250 */ // Combiner Rule #191: constant_fold_binop; wip_match_opcode 'G_SUB'
5126 /* 17250 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
5127 /* 17253 */ // Label 143: @17253
5128 /* 17253 */ GIM_Try, /*On fail goto*//*Label 144*/ GIMT_Encode4(17264), // Rule ID 321 //
5129 /* 17258 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
5130 /* 17261 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_SUB'
5131 /* 17261 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
5132 /* 17264 */ // Label 144: @17264
5133 /* 17264 */ GIM_Try, /*On fail goto*//*Label 145*/ GIMT_Encode4(17275), // Rule ID 354 //
5134 /* 17269 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
5135 /* 17272 */ // Combiner Rule #217: sub_add_reg; wip_match_opcode 'G_SUB'
5136 /* 17272 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5137 /* 17275 */ // Label 145: @17275
5138 /* 17275 */ GIM_Try, /*On fail goto*//*Label 146*/ GIMT_Encode4(17286), // Rule ID 394 //
5139 /* 17280 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule230Enabled),
5140 /* 17283 */ // Combiner Rule #230: simplify_neg_minmax; wip_match_opcode 'G_SUB'
5141 /* 17283 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner134),
5142 /* 17286 */ // Label 146: @17286
5143 /* 17286 */ GIM_Try, /*On fail goto*//*Label 147*/ GIMT_Encode4(17363), // Rule ID 428 //
5144 /* 17291 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule261Enabled),
5145 /* 17294 */ // MIs[0] dst
5146 /* 17294 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5147 /* 17298 */ // MIs[0] sub1
5148 /* 17298 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5149 /* 17302 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5150 /* 17306 */ // MIs[1] a
5151 /* 17306 */ // No operand predicates
5152 /* 17306 */ // MIs[1] b
5153 /* 17306 */ // No operand predicates
5154 /* 17306 */ // MIs[0] Operand 2
5155 /* 17306 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
5156 /* 17310 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
5157 /* 17314 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5158 /* 17316 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5159 /* 17319 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
5160 /* 17329 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5161 /* 17332 */ // Combiner Rule #261: sub_one_from_sub
5162 /* 17332 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
5163 /* 17335 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5164 /* 17340 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // b
5165 /* 17344 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5166 /* 17347 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5167 /* 17351 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
5168 /* 17355 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5169 /* 17358 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
5170 /* 17362 */ GIR_EraseRootFromParent_Done,
5171 /* 17363 */ // Label 147: @17363
5172 /* 17363 */ GIM_Try, /*On fail goto*//*Label 148*/ GIMT_Encode4(17457), // Rule ID 434 //
5173 /* 17368 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule265Enabled),
5174 /* 17371 */ // MIs[0] root
5175 /* 17371 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5176 /* 17375 */ // MIs[0] Operand 1
5177 /* 17375 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5178 /* 17379 */ // MIs[0] max
5179 /* 17379 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5180 /* 17383 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SMAX),
5181 /* 17387 */ // MIs[1] A
5182 /* 17387 */ // No operand predicates
5183 /* 17387 */ // MIs[1] sub
5184 /* 17387 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5185 /* 17391 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5186 /* 17395 */ // MIs[2] Operand 1
5187 /* 17395 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/1, 0,
5188 /* 17399 */ // MIs[2] A
5189 /* 17399 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5190 /* 17404 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner20),
5191 /* 17408 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5192 /* 17410 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5193 /* 17413 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5194 /* 17423 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5195 /* 17426 */ // Combiner Rule #265: SubSmaxSub
5196 /* 17426 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5197 /* 17429 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5198 /* 17434 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5199 /* 17437 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5200 /* 17441 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMIN),
5201 /* 17445 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5202 /* 17449 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // A
5203 /* 17453 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5204 /* 17456 */ GIR_EraseRootFromParent_Done,
5205 /* 17457 */ // Label 148: @17457
5206 /* 17457 */ GIM_Try, /*On fail goto*//*Label 149*/ GIMT_Encode4(17551), // Rule ID 435 //
5207 /* 17462 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule266Enabled),
5208 /* 17465 */ // MIs[0] root
5209 /* 17465 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5210 /* 17469 */ // MIs[0] Operand 1
5211 /* 17469 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5212 /* 17473 */ // MIs[0] max
5213 /* 17473 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5214 /* 17477 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMAX),
5215 /* 17481 */ // MIs[1] A
5216 /* 17481 */ // No operand predicates
5217 /* 17481 */ // MIs[1] sub
5218 /* 17481 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5219 /* 17485 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5220 /* 17489 */ // MIs[2] Operand 1
5221 /* 17489 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/1, 0,
5222 /* 17493 */ // MIs[2] A
5223 /* 17493 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5224 /* 17498 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner20),
5225 /* 17502 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5226 /* 17504 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5227 /* 17507 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5228 /* 17517 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5229 /* 17520 */ // Combiner Rule #266: SubUmaxSub
5230 /* 17520 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5231 /* 17523 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5232 /* 17528 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5233 /* 17531 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5234 /* 17535 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMIN),
5235 /* 17539 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5236 /* 17543 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // A
5237 /* 17547 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5238 /* 17550 */ GIR_EraseRootFromParent_Done,
5239 /* 17551 */ // Label 149: @17551
5240 /* 17551 */ GIM_Try, /*On fail goto*//*Label 150*/ GIMT_Encode4(17591), // Rule ID 432 //
5241 /* 17556 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule263Enabled),
5242 /* 17559 */ // MIs[0] root
5243 /* 17559 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5244 /* 17563 */ // MIs[0] Operand 1
5245 /* 17563 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 255,
5246 /* 17567 */ // MIs[0] op1
5247 /* 17567 */ // No operand predicates
5248 /* 17567 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5249 /* 17570 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(18446744073709551615u),
5250 /* 17580 */ // Combiner Rule #263: sub_minus_one
5251 /* 17580 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
5252 /* 17583 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5253 /* 17585 */ GIR_RootToRootCopy, /*OpIdx*/2, // op1
5254 /* 17587 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5255 /* 17590 */ GIR_EraseRootFromParent_Done,
5256 /* 17591 */ // Label 150: @17591
5257 /* 17591 */ GIM_Try, /*On fail goto*//*Label 151*/ GIMT_Encode4(17691), // Rule ID 433 //
5258 /* 17596 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule264Enabled),
5259 /* 17599 */ // MIs[0] d
5260 /* 17599 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5261 /* 17603 */ // MIs[0] a
5262 /* 17603 */ // No operand predicates
5263 /* 17603 */ // MIs[0] mul
5264 /* 17603 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5265 /* 17607 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
5266 /* 17611 */ // MIs[1] x
5267 /* 17611 */ // No operand predicates
5268 /* 17611 */ // MIs[1] c
5269 /* 17611 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5270 /* 17615 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5271 /* 17619 */ // MIs[2] imm
5272 /* 17619 */ // No operand predicates
5273 /* 17619 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
5274 /* 17623 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5275 /* 17625 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
5276 /* 17628 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5277 /* 17631 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5278 /* 17641 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5279 /* 17644 */ // Combiner Rule #264: sub_of_mul_const
5280 /* 17644 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5281 /* 17647 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5282 /* 17652 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5283 /* 17655 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // c
5284 /* 17659 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MUL),
5285 /* 17663 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5286 /* 17668 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
5287 /* 17672 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5288 /* 17675 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5289 /* 17679 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // d
5290 /* 17683 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // a
5291 /* 17687 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5292 /* 17690 */ GIR_EraseRootFromParent_Done,
5293 /* 17691 */ // Label 151: @17691
5294 /* 17691 */ GIM_Try, /*On fail goto*//*Label 152*/ GIMT_Encode4(17752), // Rule ID 9 //
5295 /* 17696 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
5296 /* 17699 */ // MIs[0] root
5297 /* 17699 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5298 /* 17703 */ // MIs[0] A
5299 /* 17703 */ // No operand predicates
5300 /* 17703 */ // MIs[0] sub1
5301 /* 17703 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5302 /* 17707 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5303 /* 17711 */ // MIs[1] B
5304 /* 17711 */ // No operand predicates
5305 /* 17711 */ // MIs[1] C
5306 /* 17711 */ // No operand predicates
5307 /* 17711 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
5308 /* 17715 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5309 /* 17717 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5310 /* 17720 */ // Combiner Rule #9: AMinusBMinusC
5311 /* 17720 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5312 /* 17723 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5313 /* 17728 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // C
5314 /* 17732 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
5315 /* 17736 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5316 /* 17740 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5317 /* 17744 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // A
5318 /* 17748 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5319 /* 17751 */ GIR_EraseRootFromParent_Done,
5320 /* 17752 */ // Label 152: @17752
5321 /* 17752 */ GIM_Try, /*On fail goto*//*Label 153*/ GIMT_Encode4(17797), // Rule ID 0 //
5322 /* 17757 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
5323 /* 17760 */ // MIs[0] root
5324 /* 17760 */ // No operand predicates
5325 /* 17760 */ // MIs[0] add1
5326 /* 17760 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5327 /* 17764 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5328 /* 17768 */ // MIs[1] A
5329 /* 17768 */ // No operand predicates
5330 /* 17768 */ // MIs[1] sub1
5331 /* 17768 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5332 /* 17772 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5333 /* 17776 */ // MIs[2] B
5334 /* 17776 */ // No operand predicates
5335 /* 17776 */ // MIs[2] C
5336 /* 17776 */ // No operand predicates
5337 /* 17776 */ // MIs[0] B
5338 /* 17776 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
5339 /* 17781 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5340 /* 17783 */ // Combiner Rule #0: APlusBMinusCMinusB
5341 /* 17783 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5342 /* 17786 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5343 /* 17788 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5344 /* 17792 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
5345 /* 17796 */ GIR_EraseRootFromParent_Done,
5346 /* 17797 */ // Label 153: @17797
5347 /* 17797 */ GIM_Try, /*On fail goto*//*Label 154*/ GIMT_Encode4(17834), // Rule ID 14 //
5348 /* 17802 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
5349 /* 17805 */ // MIs[0] root
5350 /* 17805 */ // No operand predicates
5351 /* 17805 */ // MIs[0] add
5352 /* 17805 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5353 /* 17809 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5354 /* 17813 */ // MIs[1] A
5355 /* 17813 */ // No operand predicates
5356 /* 17813 */ // MIs[1] c1
5357 /* 17813 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5358 /* 17817 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5359 /* 17821 */ // MIs[2] imm1
5360 /* 17821 */ // No operand predicates
5361 /* 17821 */ // MIs[0] c2
5362 /* 17821 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5363 /* 17825 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5364 /* 17829 */ // MIs[3] imm2
5365 /* 17829 */ // No operand predicates
5366 /* 17829 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5367 /* 17831 */ // Combiner Rule #14: APlusC1MinusC2
5368 /* 17831 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
5369 /* 17834 */ // Label 154: @17834
5370 /* 17834 */ GIM_Try, /*On fail goto*//*Label 155*/ GIMT_Encode4(17871), // Rule ID 17 //
5371 /* 17839 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
5372 /* 17842 */ // MIs[0] root
5373 /* 17842 */ // No operand predicates
5374 /* 17842 */ // MIs[0] sub1
5375 /* 17842 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5376 /* 17846 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5377 /* 17850 */ // MIs[1] c1
5378 /* 17850 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5379 /* 17854 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5380 /* 17858 */ // MIs[2] imm1
5381 /* 17858 */ // No operand predicates
5382 /* 17858 */ // MIs[1] A
5383 /* 17858 */ // No operand predicates
5384 /* 17858 */ // MIs[0] c2
5385 /* 17858 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5386 /* 17862 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5387 /* 17866 */ // MIs[3] imm2
5388 /* 17866 */ // No operand predicates
5389 /* 17866 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5390 /* 17868 */ // Combiner Rule #17: C1Minus2MinusC2
5391 /* 17868 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
5392 /* 17871 */ // Label 155: @17871
5393 /* 17871 */ GIM_Try, /*On fail goto*//*Label 156*/ GIMT_Encode4(17916), // Rule ID 1 //
5394 /* 17876 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
5395 /* 17879 */ // MIs[0] root
5396 /* 17879 */ // No operand predicates
5397 /* 17879 */ // MIs[0] sub2
5398 /* 17879 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5399 /* 17883 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5400 /* 17887 */ // MIs[1] A
5401 /* 17887 */ // No operand predicates
5402 /* 17887 */ // MIs[1] sub1
5403 /* 17887 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5404 /* 17891 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5405 /* 17895 */ // MIs[2] B
5406 /* 17895 */ // No operand predicates
5407 /* 17895 */ // MIs[2] C
5408 /* 17895 */ // No operand predicates
5409 /* 17895 */ // MIs[0] C
5410 /* 17895 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/2,
5411 /* 17900 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5412 /* 17902 */ // Combiner Rule #1: AMinusBMinusCMinusC
5413 /* 17902 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5414 /* 17905 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5415 /* 17907 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5416 /* 17911 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // B
5417 /* 17915 */ GIR_EraseRootFromParent_Done,
5418 /* 17916 */ // Label 156: @17916
5419 /* 17916 */ GIM_Try, /*On fail goto*//*Label 157*/ GIMT_Encode4(17953), // Rule ID 16 //
5420 /* 17921 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
5421 /* 17924 */ // MIs[0] root
5422 /* 17924 */ // No operand predicates
5423 /* 17924 */ // MIs[0] sub1
5424 /* 17924 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5425 /* 17928 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5426 /* 17932 */ // MIs[1] A
5427 /* 17932 */ // No operand predicates
5428 /* 17932 */ // MIs[1] c1
5429 /* 17932 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5430 /* 17936 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5431 /* 17940 */ // MIs[2] imm1
5432 /* 17940 */ // No operand predicates
5433 /* 17940 */ // MIs[0] c2
5434 /* 17940 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5435 /* 17944 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5436 /* 17948 */ // MIs[3] imm2
5437 /* 17948 */ // No operand predicates
5438 /* 17948 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5439 /* 17950 */ // Combiner Rule #16: AMinusC1MinusC2
5440 /* 17950 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
5441 /* 17953 */ // Label 157: @17953
5442 /* 17953 */ GIM_Try, /*On fail goto*//*Label 158*/ GIMT_Encode4(17996), // Rule ID 170 //
5443 /* 17958 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
5444 /* 17961 */ // MIs[0] dst
5445 /* 17961 */ // No operand predicates
5446 /* 17961 */ // MIs[0] Operand 1
5447 /* 17961 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5448 /* 17965 */ // MIs[0] and
5449 /* 17965 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5450 /* 17969 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5451 /* 17973 */ // MIs[1] x
5452 /* 17973 */ // No operand predicates
5453 /* 17973 */ // MIs[1] Operand 2
5454 /* 17973 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
5455 /* 17977 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner11),
5456 /* 17981 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5457 /* 17983 */ // Combiner Rule #126: neg_and_one_to_sext_inreg
5458 /* 17983 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
5459 /* 17986 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5460 /* 17988 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
5461 /* 17992 */ GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
5462 /* 17995 */ GIR_EraseRootFromParent_Done,
5463 /* 17996 */ // Label 158: @17996
5464 /* 17996 */ GIM_Try, /*On fail goto*//*Label 159*/ GIMT_Encode4(18033), // Rule ID 15 //
5465 /* 18001 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
5466 /* 18004 */ // MIs[0] root
5467 /* 18004 */ // No operand predicates
5468 /* 18004 */ // MIs[0] c2
5469 /* 18004 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5470 /* 18008 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5471 /* 18012 */ // MIs[1] imm2
5472 /* 18012 */ // No operand predicates
5473 /* 18012 */ // MIs[0] add
5474 /* 18012 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5475 /* 18016 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
5476 /* 18020 */ // MIs[2] A
5477 /* 18020 */ // No operand predicates
5478 /* 18020 */ // MIs[2] c1
5479 /* 18020 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
5480 /* 18024 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5481 /* 18028 */ // MIs[3] imm1
5482 /* 18028 */ // No operand predicates
5483 /* 18028 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5484 /* 18030 */ // Combiner Rule #15: C2MinusAPlusC1
5485 /* 18030 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
5486 /* 18033 */ // Label 159: @18033
5487 /* 18033 */ GIM_Try, /*On fail goto*//*Label 160*/ GIMT_Encode4(18072), // Rule ID 122 //
5488 /* 18038 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
5489 /* 18041 */ // MIs[0] dst
5490 /* 18041 */ // No operand predicates
5491 /* 18041 */ // MIs[0] x
5492 /* 18041 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
5493 /* 18045 */ // MIs[0] x
5494 /* 18045 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5495 /* 18050 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5496 /* 18053 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5497 /* 18063 */ // Combiner Rule #92: same_val_zero @ [__same_val_zero_match_0[0]]
5498 /* 18063 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5499 /* 18066 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5500 /* 18068 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5501 /* 18071 */ GIR_EraseRootFromParent_Done,
5502 /* 18072 */ // Label 160: @18072
5503 /* 18072 */ GIM_Try, /*On fail goto*//*Label 161*/ GIMT_Encode4(18106), // Rule ID 12 //
5504 /* 18077 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
5505 /* 18080 */ // MIs[0] root
5506 /* 18080 */ // No operand predicates
5507 /* 18080 */ // MIs[0] A
5508 /* 18080 */ // No operand predicates
5509 /* 18080 */ // MIs[0] add
5510 /* 18080 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5511 /* 18084 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5512 /* 18088 */ // MIs[1] A
5513 /* 18088 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
5514 /* 18093 */ // MIs[1] B
5515 /* 18093 */ // No operand predicates
5516 /* 18093 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
5517 /* 18098 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5518 /* 18100 */ // Combiner Rule #12: AMinusBMinusA
5519 /* 18100 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
5520 /* 18105 */ GIR_EraseRootFromParent_Done,
5521 /* 18106 */ // Label 161: @18106
5522 /* 18106 */ GIM_Try, /*On fail goto*//*Label 162*/ GIMT_Encode4(18140), // Rule ID 11 //
5523 /* 18111 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
5524 /* 18114 */ // MIs[0] root
5525 /* 18114 */ // No operand predicates
5526 /* 18114 */ // MIs[0] A
5527 /* 18114 */ // No operand predicates
5528 /* 18114 */ // MIs[0] sub1
5529 /* 18114 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5530 /* 18118 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5531 /* 18122 */ // MIs[1] Operand 1
5532 /* 18122 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
5533 /* 18126 */ // MIs[1] B
5534 /* 18126 */ // No operand predicates
5535 /* 18126 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5536 /* 18128 */ // Combiner Rule #11: AMinusZeroMinusB
5537 /* 18128 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5538 /* 18131 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5539 /* 18133 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
5540 /* 18135 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
5541 /* 18139 */ GIR_EraseRootFromParent_Done,
5542 /* 18140 */ // Label 162: @18140
5543 /* 18140 */ GIM_Try, /*On fail goto*//*Label 163*/ GIMT_Encode4(18167), // Rule ID 48 //
5544 /* 18145 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
5545 /* 18148 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
5546 /* 18154 */ // MIs[0] root
5547 /* 18154 */ // No operand predicates
5548 /* 18154 */ // MIs[0] x
5549 /* 18154 */ // No operand predicates
5550 /* 18154 */ // MIs[0] right
5551 /* 18154 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5552 /* 18158 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
5553 /* 18162 */ // MIs[1] imm
5554 /* 18162 */ // No operand predicates
5555 /* 18162 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5556 /* 18164 */ // Combiner Rule #46: sub_of_vscale
5557 /* 18164 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
5558 /* 18167 */ // Label 163: @18167
5559 /* 18167 */ GIM_Try, /*On fail goto*//*Label 164*/ GIMT_Encode4(18190), // Rule ID 110 //
5560 /* 18172 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
5561 /* 18175 */ // MIs[0] dst
5562 /* 18175 */ // No operand predicates
5563 /* 18175 */ // MIs[0] lhs
5564 /* 18175 */ // No operand predicates
5565 /* 18175 */ // MIs[0] Operand 2
5566 /* 18175 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5567 /* 18179 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5568 /* 18184 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[0]]
5569 /* 18184 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5570 /* 18189 */ GIR_EraseRootFromParent_Done,
5571 /* 18190 */ // Label 164: @18190
5572 /* 18190 */ GIM_Try, /*On fail goto*//*Label 165*/ GIMT_Encode4(18211), // Rule ID 21 //
5573 /* 18195 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
5574 /* 18198 */ // MIs[0] d
5575 /* 18198 */ // No operand predicates
5576 /* 18198 */ // MIs[0] op1
5577 /* 18198 */ // No operand predicates
5578 /* 18198 */ // MIs[0] c
5579 /* 18198 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5580 /* 18202 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5581 /* 18206 */ // MIs[1] imm
5582 /* 18206 */ // No operand predicates
5583 /* 18206 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5584 /* 18208 */ // Combiner Rule #21: sub_to_add
5585 /* 18208 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
5586 /* 18211 */ // Label 165: @18211
5587 /* 18211 */ GIM_Reject,
5588 /* 18212 */ // Label 3: @18212
5589 /* 18212 */ GIM_Try, /*On fail goto*//*Label 166*/ GIMT_Encode4(18223), // Rule ID 84 //
5590 /* 18217 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
5591 /* 18220 */ // Combiner Rule #78: undef_to_int_zero; wip_match_opcode 'G_MUL'
5592 /* 18220 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
5593 /* 18223 */ // Label 166: @18223
5594 /* 18223 */ GIM_Try, /*On fail goto*//*Label 167*/ GIMT_Encode4(18234), // Rule ID 265 //
5595 /* 18228 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
5596 /* 18231 */ // Combiner Rule #191: constant_fold_binop; wip_match_opcode 'G_MUL'
5597 /* 18231 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
5598 /* 18234 */ // Label 167: @18234
5599 /* 18234 */ GIM_Try, /*On fail goto*//*Label 168*/ GIMT_Encode4(18245), // Rule ID 358 //
5600 /* 18239 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
5601 /* 18242 */ // Combiner Rule #220: commute_int_constant_to_rhs; wip_match_opcode 'G_MUL'
5602 /* 18242 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
5603 /* 18245 */ // Label 168: @18245
5604 /* 18245 */ GIM_Try, /*On fail goto*//*Label 169*/ GIMT_Encode4(18256), // Rule ID 460 //
5605 /* 18250 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule283Enabled),
5606 /* 18253 */ // Combiner Rule #283: smulu64; wip_match_opcode 'G_MUL'
5607 /* 18253 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner172),
5608 /* 18256 */ // Label 169: @18256
5609 /* 18256 */ GIM_Try, /*On fail goto*//*Label 170*/ GIMT_Encode4(18296), // Rule ID 23 //
5610 /* 18261 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
5611 /* 18264 */ // MIs[0] dst
5612 /* 18264 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5613 /* 18268 */ // MIs[0] x
5614 /* 18268 */ // No operand predicates
5615 /* 18268 */ // MIs[0] Operand 2
5616 /* 18268 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
5617 /* 18272 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5618 /* 18275 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5619 /* 18285 */ // Combiner Rule #23: mul_by_neg_one
5620 /* 18285 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5621 /* 18288 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5622 /* 18290 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5623 /* 18293 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
5624 /* 18295 */ GIR_EraseRootFromParent_Done,
5625 /* 18296 */ // Label 170: @18296
5626 /* 18296 */ GIM_Try, /*On fail goto*//*Label 171*/ GIMT_Encode4(18331), // Rule ID 46 //
5627 /* 18301 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
5628 /* 18304 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
5629 /* 18310 */ // MIs[0] root
5630 /* 18310 */ // No operand predicates
5631 /* 18310 */ // MIs[0] left
5632 /* 18310 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5633 /* 18314 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
5634 /* 18318 */ // MIs[1] scale
5635 /* 18318 */ // No operand predicates
5636 /* 18318 */ // MIs[0] x
5637 /* 18318 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5638 /* 18322 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5639 /* 18326 */ // MIs[2] imm1
5640 /* 18326 */ // No operand predicates
5641 /* 18326 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5642 /* 18328 */ // Combiner Rule #44: mul_of_vscale
5643 /* 18328 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
5644 /* 18331 */ // Label 171: @18331
5645 /* 18331 */ GIM_Try, /*On fail goto*//*Label 172*/ GIMT_Encode4(18371), // Rule ID 131 //
5646 /* 18336 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5647 /* 18339 */ // MIs[0] dst
5648 /* 18339 */ // No operand predicates
5649 /* 18339 */ // MIs[0] zero
5650 /* 18339 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5651 /* 18343 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5652 /* 18347 */ // MIs[1] Operand 1
5653 /* 18347 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5654 /* 18358 */ // MIs[0] rhs
5655 /* 18358 */ // No operand predicates
5656 /* 18358 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5657 /* 18363 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5658 /* 18365 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[7]]
5659 /* 18365 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5660 /* 18370 */ GIR_EraseRootFromParent_Done,
5661 /* 18371 */ // Label 172: @18371
5662 /* 18371 */ GIM_Try, /*On fail goto*//*Label 173*/ GIMT_Encode4(18394), // Rule ID 132 //
5663 /* 18376 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
5664 /* 18379 */ // MIs[0] dst
5665 /* 18379 */ // No operand predicates
5666 /* 18379 */ // MIs[0] lhs
5667 /* 18379 */ // No operand predicates
5668 /* 18379 */ // MIs[0] zero
5669 /* 18379 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5670 /* 18383 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5671 /* 18388 */ // Combiner Rule #94: binop_right_to_zero
5672 /* 18388 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5673 /* 18393 */ GIR_EraseRootFromParent_Done,
5674 /* 18394 */ // Label 173: @18394
5675 /* 18394 */ GIM_Try, /*On fail goto*//*Label 174*/ GIMT_Encode4(18417), // Rule ID 137 //
5676 /* 18399 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule99Enabled),
5677 /* 18402 */ // MIs[0] dst
5678 /* 18402 */ // No operand predicates
5679 /* 18402 */ // MIs[0] x
5680 /* 18402 */ // No operand predicates
5681 /* 18402 */ // MIs[0] Operand 2
5682 /* 18402 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
5683 /* 18406 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5684 /* 18411 */ // Combiner Rule #99: right_identity_one_int
5685 /* 18411 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5686 /* 18416 */ GIR_EraseRootFromParent_Done,
5687 /* 18417 */ // Label 174: @18417
5688 /* 18417 */ GIM_Try, /*On fail goto*//*Label 175*/ GIMT_Encode4(18428), // Rule ID 20 //
5689 /* 18422 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
5690 /* 18425 */ // MIs[0] d
5691 /* 18425 */ // No operand predicates
5692 /* 18425 */ // MIs[0] op1
5693 /* 18425 */ // No operand predicates
5694 /* 18425 */ // MIs[0] op2
5695 /* 18425 */ // No operand predicates
5696 /* 18425 */ // Combiner Rule #20: mul_to_shl
5697 /* 18425 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
5698 /* 18428 */ // Label 175: @18428
5699 /* 18428 */ GIM_Reject,
5700 /* 18429 */ // Label 4: @18429
5701 /* 18429 */ GIM_Try, /*On fail goto*//*Label 176*/ GIMT_Encode4(18440), // Rule ID 236 //
5702 /* 18434 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
5703 /* 18437 */ // Combiner Rule #176: div_rem_to_divrem; wip_match_opcode 'G_SDIV'
5704 /* 18437 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
5705 /* 18440 */ // Label 176: @18440
5706 /* 18440 */ GIM_Try, /*On fail goto*//*Label 177*/ GIMT_Encode4(18451), // Rule ID 271 //
5707 /* 18445 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
5708 /* 18448 */ // Combiner Rule #191: constant_fold_binop; wip_match_opcode 'G_SDIV'
5709 /* 18448 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
5710 /* 18451 */ // Label 177: @18451
5711 /* 18451 */ GIM_Try, /*On fail goto*//*Label 178*/ GIMT_Encode4(18462), // Rule ID 326 //
5712 /* 18456 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
5713 /* 18459 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_SDIV'
5714 /* 18459 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
5715 /* 18462 */ // Label 178: @18462
5716 /* 18462 */ GIM_Try, /*On fail goto*//*Label 179*/ GIMT_Encode4(18502), // Rule ID 127 //
5717 /* 18467 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5718 /* 18470 */ // MIs[0] dst
5719 /* 18470 */ // No operand predicates
5720 /* 18470 */ // MIs[0] zero
5721 /* 18470 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5722 /* 18474 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5723 /* 18478 */ // MIs[1] Operand 1
5724 /* 18478 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5725 /* 18489 */ // MIs[0] rhs
5726 /* 18489 */ // No operand predicates
5727 /* 18489 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5728 /* 18494 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5729 /* 18496 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[3]]
5730 /* 18496 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5731 /* 18501 */ GIR_EraseRootFromParent_Done,
5732 /* 18502 */ // Label 179: @18502
5733 /* 18502 */ GIM_Try, /*On fail goto*//*Label 180*/ GIMT_Encode4(18519), // Rule ID 350 //
5734 /* 18507 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
5735 /* 18510 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
5736 /* 18516 */ // MIs[0] dst
5737 /* 18516 */ // No operand predicates
5738 /* 18516 */ // MIs[0] x
5739 /* 18516 */ // No operand predicates
5740 /* 18516 */ // MIs[0] y
5741 /* 18516 */ // No operand predicates
5742 /* 18516 */ // Combiner Rule #213: sdiv_by_pow2
5743 /* 18516 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner125),
5744 /* 18519 */ // Label 180: @18519
5745 /* 18519 */ GIM_Try, /*On fail goto*//*Label 181*/ GIMT_Encode4(18530), // Rule ID 352 //
5746 /* 18524 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
5747 /* 18527 */ // MIs[0] dst
5748 /* 18527 */ // No operand predicates
5749 /* 18527 */ // MIs[0] x
5750 /* 18527 */ // No operand predicates
5751 /* 18527 */ // MIs[0] y
5752 /* 18527 */ // No operand predicates
5753 /* 18527 */ // Combiner Rule #215: sdiv_by_const
5754 /* 18527 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
5755 /* 18530 */ // Label 181: @18530
5756 /* 18530 */ GIM_Reject,
5757 /* 18531 */ // Label 5: @18531
5758 /* 18531 */ GIM_Try, /*On fail goto*//*Label 182*/ GIMT_Encode4(18542), // Rule ID 87 //
5759 /* 18536 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
5760 /* 18539 */ // Combiner Rule #80: binop_left_undef_to_zero; wip_match_opcode 'G_UDIV'
5761 /* 18539 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
5762 /* 18542 */ // Label 182: @18542
5763 /* 18542 */ GIM_Try, /*On fail goto*//*Label 183*/ GIMT_Encode4(18553), // Rule ID 237 //
5764 /* 18547 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
5765 /* 18550 */ // Combiner Rule #176: div_rem_to_divrem; wip_match_opcode 'G_UDIV'
5766 /* 18550 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
5767 /* 18553 */ // Label 183: @18553
5768 /* 18553 */ GIM_Try, /*On fail goto*//*Label 184*/ GIMT_Encode4(18564), // Rule ID 270 //
5769 /* 18558 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
5770 /* 18561 */ // Combiner Rule #191: constant_fold_binop; wip_match_opcode 'G_UDIV'
5771 /* 18561 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
5772 /* 18564 */ // Label 184: @18564
5773 /* 18564 */ GIM_Try, /*On fail goto*//*Label 185*/ GIMT_Encode4(18575), // Rule ID 328 //
5774 /* 18569 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
5775 /* 18572 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_UDIV'
5776 /* 18572 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
5777 /* 18575 */ // Label 185: @18575
5778 /* 18575 */ GIM_Try, /*On fail goto*//*Label 186*/ GIMT_Encode4(18615), // Rule ID 128 //
5779 /* 18580 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5780 /* 18583 */ // MIs[0] dst
5781 /* 18583 */ // No operand predicates
5782 /* 18583 */ // MIs[0] zero
5783 /* 18583 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5784 /* 18587 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5785 /* 18591 */ // MIs[1] Operand 1
5786 /* 18591 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5787 /* 18602 */ // MIs[0] rhs
5788 /* 18602 */ // No operand predicates
5789 /* 18602 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5790 /* 18607 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5791 /* 18609 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[4]]
5792 /* 18609 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5793 /* 18614 */ GIR_EraseRootFromParent_Done,
5794 /* 18615 */ // Label 186: @18615
5795 /* 18615 */ GIM_Try, /*On fail goto*//*Label 187*/ GIMT_Encode4(18632), // Rule ID 349 //
5796 /* 18620 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
5797 /* 18623 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
5798 /* 18629 */ // MIs[0] dst
5799 /* 18629 */ // No operand predicates
5800 /* 18629 */ // MIs[0] x
5801 /* 18629 */ // No operand predicates
5802 /* 18629 */ // MIs[0] y
5803 /* 18629 */ // No operand predicates
5804 /* 18629 */ // Combiner Rule #212: udiv_by_pow2
5805 /* 18629 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner124),
5806 /* 18632 */ // Label 187: @18632
5807 /* 18632 */ GIM_Try, /*On fail goto*//*Label 188*/ GIMT_Encode4(18643), // Rule ID 351 //
5808 /* 18637 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
5809 /* 18640 */ // MIs[0] dst
5810 /* 18640 */ // No operand predicates
5811 /* 18640 */ // MIs[0] x
5812 /* 18640 */ // No operand predicates
5813 /* 18640 */ // MIs[0] y
5814 /* 18640 */ // No operand predicates
5815 /* 18640 */ // Combiner Rule #214: udiv_by_const
5816 /* 18640 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
5817 /* 18643 */ // Label 188: @18643
5818 /* 18643 */ GIM_Reject,
5819 /* 18644 */ // Label 6: @18644
5820 /* 18644 */ GIM_Try, /*On fail goto*//*Label 189*/ GIMT_Encode4(18655), // Rule ID 238 //
5821 /* 18649 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
5822 /* 18652 */ // Combiner Rule #176: div_rem_to_divrem; wip_match_opcode 'G_SREM'
5823 /* 18652 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
5824 /* 18655 */ // Label 189: @18655
5825 /* 18655 */ GIM_Try, /*On fail goto*//*Label 190*/ GIMT_Encode4(18666), // Rule ID 273 //
5826 /* 18660 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
5827 /* 18663 */ // Combiner Rule #191: constant_fold_binop; wip_match_opcode 'G_SREM'
5828 /* 18663 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
5829 /* 18666 */ // Label 190: @18666
5830 /* 18666 */ GIM_Try, /*On fail goto*//*Label 191*/ GIMT_Encode4(18677), // Rule ID 327 //
5831 /* 18671 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
5832 /* 18674 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_SREM'
5833 /* 18674 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
5834 /* 18677 */ // Label 191: @18677
5835 /* 18677 */ GIM_Try, /*On fail goto*//*Label 192*/ GIMT_Encode4(18717), // Rule ID 129 //
5836 /* 18682 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5837 /* 18685 */ // MIs[0] dst
5838 /* 18685 */ // No operand predicates
5839 /* 18685 */ // MIs[0] zero
5840 /* 18685 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5841 /* 18689 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5842 /* 18693 */ // MIs[1] Operand 1
5843 /* 18693 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5844 /* 18704 */ // MIs[0] rhs
5845 /* 18704 */ // No operand predicates
5846 /* 18704 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5847 /* 18709 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5848 /* 18711 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[5]]
5849 /* 18711 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5850 /* 18716 */ GIR_EraseRootFromParent_Done,
5851 /* 18717 */ // Label 192: @18717
5852 /* 18717 */ GIM_Try, /*On fail goto*//*Label 193*/ GIMT_Encode4(18728), // Rule ID 346 //
5853 /* 18722 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
5854 /* 18725 */ // MIs[0] dst
5855 /* 18725 */ // No operand predicates
5856 /* 18725 */ // MIs[0] x
5857 /* 18725 */ // No operand predicates
5858 /* 18725 */ // MIs[0] y
5859 /* 18725 */ // No operand predicates
5860 /* 18725 */ // Combiner Rule #209: srem_pow2_to_mask
5861 /* 18725 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
5862 /* 18728 */ // Label 193: @18728
5863 /* 18728 */ GIM_Try, /*On fail goto*//*Label 194*/ GIMT_Encode4(18739), // Rule ID 348 //
5864 /* 18733 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
5865 /* 18736 */ // MIs[0] dst
5866 /* 18736 */ // No operand predicates
5867 /* 18736 */ // MIs[0] x
5868 /* 18736 */ // No operand predicates
5869 /* 18736 */ // MIs[0] y
5870 /* 18736 */ // No operand predicates
5871 /* 18736 */ // Combiner Rule #211: srem_by_const
5872 /* 18736 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
5873 /* 18739 */ // Label 194: @18739
5874 /* 18739 */ GIM_Reject,
5875 /* 18740 */ // Label 7: @18740
5876 /* 18740 */ GIM_Try, /*On fail goto*//*Label 195*/ GIMT_Encode4(18751), // Rule ID 88 //
5877 /* 18745 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
5878 /* 18748 */ // Combiner Rule #80: binop_left_undef_to_zero; wip_match_opcode 'G_UREM'
5879 /* 18748 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
5880 /* 18751 */ // Label 195: @18751
5881 /* 18751 */ GIM_Try, /*On fail goto*//*Label 196*/ GIMT_Encode4(18762), // Rule ID 239 //
5882 /* 18756 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
5883 /* 18759 */ // Combiner Rule #176: div_rem_to_divrem; wip_match_opcode 'G_UREM'
5884 /* 18759 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
5885 /* 18762 */ // Label 196: @18762
5886 /* 18762 */ GIM_Try, /*On fail goto*//*Label 197*/ GIMT_Encode4(18773), // Rule ID 272 //
5887 /* 18767 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
5888 /* 18770 */ // Combiner Rule #191: constant_fold_binop; wip_match_opcode 'G_UREM'
5889 /* 18770 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
5890 /* 18773 */ // Label 197: @18773
5891 /* 18773 */ GIM_Try, /*On fail goto*//*Label 198*/ GIMT_Encode4(18784), // Rule ID 329 //
5892 /* 18778 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
5893 /* 18781 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_UREM'
5894 /* 18781 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
5895 /* 18784 */ // Label 198: @18784
5896 /* 18784 */ GIM_Try, /*On fail goto*//*Label 199*/ GIMT_Encode4(18824), // Rule ID 130 //
5897 /* 18789 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
5898 /* 18792 */ // MIs[0] dst
5899 /* 18792 */ // No operand predicates
5900 /* 18792 */ // MIs[0] zero
5901 /* 18792 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5902 /* 18796 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5903 /* 18800 */ // MIs[1] Operand 1
5904 /* 18800 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5905 /* 18811 */ // MIs[0] rhs
5906 /* 18811 */ // No operand predicates
5907 /* 18811 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5908 /* 18816 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5909 /* 18818 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[6]]
5910 /* 18818 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5911 /* 18823 */ GIR_EraseRootFromParent_Done,
5912 /* 18824 */ // Label 199: @18824
5913 /* 18824 */ GIM_Try, /*On fail goto*//*Label 200*/ GIMT_Encode4(18835), // Rule ID 187 //
5914 /* 18829 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule143Enabled),
5915 /* 18832 */ // MIs[0] dst
5916 /* 18832 */ // No operand predicates
5917 /* 18832 */ // MIs[0] x
5918 /* 18832 */ // No operand predicates
5919 /* 18832 */ // MIs[0] y
5920 /* 18832 */ // No operand predicates
5921 /* 18832 */ // Combiner Rule #143: urem_pow2_to_mask
5922 /* 18832 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner75),
5923 /* 18835 */ // Label 200: @18835
5924 /* 18835 */ GIM_Try, /*On fail goto*//*Label 201*/ GIMT_Encode4(18846), // Rule ID 347 //
5925 /* 18840 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
5926 /* 18843 */ // MIs[0] dst
5927 /* 18843 */ // No operand predicates
5928 /* 18843 */ // MIs[0] x
5929 /* 18843 */ // No operand predicates
5930 /* 18843 */ // MIs[0] y
5931 /* 18843 */ // No operand predicates
5932 /* 18843 */ // Combiner Rule #210: urem_by_const
5933 /* 18843 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
5934 /* 18846 */ // Label 201: @18846
5935 /* 18846 */ GIM_Reject,
5936 /* 18847 */ // Label 8: @18847
5937 /* 18847 */ GIM_Try, /*On fail goto*//*Label 202*/ GIMT_Encode4(18858), // Rule ID 79 //
5938 /* 18852 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
5939 /* 18855 */ // Combiner Rule #75: load_and_mask; wip_match_opcode 'G_AND'
5940 /* 18855 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
5941 /* 18858 */ // Label 202: @18858
5942 /* 18858 */ GIM_Try, /*On fail goto*//*Label 203*/ GIMT_Encode4(18869), // Rule ID 83 //
5943 /* 18863 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
5944 /* 18866 */ // Combiner Rule #78: undef_to_int_zero; wip_match_opcode 'G_AND'
5945 /* 18866 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
5946 /* 18869 */ // Label 203: @18869
5947 /* 18869 */ GIM_Try, /*On fail goto*//*Label 204*/ GIMT_Encode4(18880), // Rule ID 153 //
5948 /* 18874 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
5949 /* 18877 */ // Combiner Rule #113: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_AND'
5950 /* 18877 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
5951 /* 18880 */ // Label 204: @18880
5952 /* 18880 */ GIM_Try, /*On fail goto*//*Label 205*/ GIMT_Encode4(18891), // Rule ID 173 //
5953 /* 18885 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule129Enabled),
5954 /* 18888 */ // Combiner Rule #129: narrow_binop_feeding_and; wip_match_opcode 'G_AND'
5955 /* 18888 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner67),
5956 /* 18891 */ // Label 205: @18891
5957 /* 18891 */ GIM_Try, /*On fail goto*//*Label 206*/ GIMT_Encode4(18902), // Rule ID 185 //
5958 /* 18896 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule141Enabled),
5959 /* 18899 */ // Combiner Rule #141: redundant_and; wip_match_opcode 'G_AND'
5960 /* 18899 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner73),
5961 /* 18902 */ // Label 206: @18902
5962 /* 18902 */ GIM_Try, /*On fail goto*//*Label 207*/ GIMT_Encode4(18913), // Rule ID 209 //
5963 /* 18907 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
5964 /* 18910 */ // Combiner Rule #165: overlapping_and; wip_match_opcode 'G_AND'
5965 /* 18910 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
5966 /* 18913 */ // Label 207: @18913
5967 /* 18913 */ GIM_Try, /*On fail goto*//*Label 208*/ GIMT_Encode4(18924), // Rule ID 262 //
5968 /* 18918 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
5969 /* 18921 */ // Combiner Rule #191: constant_fold_binop; wip_match_opcode 'G_AND'
5970 /* 18921 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
5971 /* 18924 */ // Label 208: @18924
5972 /* 18924 */ GIM_Try, /*On fail goto*//*Label 209*/ GIMT_Encode4(18935), // Rule ID 311 //
5973 /* 18929 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule199Enabled),
5974 /* 18932 */ // Combiner Rule #199: and_or_disjoint_mask; wip_match_opcode 'G_AND'
5975 /* 18932 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner111),
5976 /* 18935 */ // Label 209: @18935
5977 /* 18935 */ GIM_Try, /*On fail goto*//*Label 210*/ GIMT_Encode4(18946), // Rule ID 323 //
5978 /* 18940 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
5979 /* 18943 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_AND'
5980 /* 18943 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
5981 /* 18946 */ // Label 210: @18946
5982 /* 18946 */ GIM_Try, /*On fail goto*//*Label 211*/ GIMT_Encode4(18957), // Rule ID 359 //
5983 /* 18951 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
5984 /* 18954 */ // Combiner Rule #220: commute_int_constant_to_rhs; wip_match_opcode 'G_AND'
5985 /* 18954 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
5986 /* 18957 */ // Label 211: @18957
5987 /* 18957 */ GIM_Try, /*On fail goto*//*Label 212*/ GIMT_Encode4(18968), // Rule ID 386 //
5988 /* 18962 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule222Enabled),
5989 /* 18965 */ // Combiner Rule #222: match_ands; wip_match_opcode 'G_AND'
5990 /* 18965 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132),
5991 /* 18968 */ // Label 212: @18968
5992 /* 18968 */ GIM_Try, /*On fail goto*//*Label 213*/ GIMT_Encode4(18979), // Rule ID 429 //
5993 /* 18973 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule262Enabled),
5994 /* 18976 */ // Combiner Rule #262: binop_with_neg; wip_match_opcode 'G_AND'
5995 /* 18976 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
5996 /* 18979 */ // Label 213: @18979
5997 /* 18979 */ GIM_Try, /*On fail goto*//*Label 214*/ GIMT_Encode4(19065), // Rule ID 391 //
5998 /* 18984 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
5999 /* 18987 */ // MIs[0] root
6000 /* 18987 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
6001 /* 18991 */ // MIs[0] or
6002 /* 18991 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6003 /* 18995 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
6004 /* 18999 */ // MIs[1] x
6005 /* 18999 */ // No operand predicates
6006 /* 18999 */ // MIs[1] y
6007 /* 18999 */ // No operand predicates
6008 /* 18999 */ // MIs[0] not
6009 /* 18999 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6010 /* 19003 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6011 /* 19007 */ // MIs[2] y
6012 /* 19007 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
6013 /* 19012 */ // MIs[2] Operand 2
6014 /* 19012 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6015 /* 19016 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6016 /* 19018 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6017 /* 19021 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
6018 /* 19031 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6019 /* 19034 */ // Combiner Rule #227: and_xor_or_to_xor_and
6020 /* 19034 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
6021 /* 19037 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6022 /* 19042 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
6023 /* 19046 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
6024 /* 19049 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6025 /* 19053 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6026 /* 19057 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
6027 /* 19061 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6028 /* 19064 */ GIR_EraseRootFromParent_Done,
6029 /* 19065 */ // Label 214: @19065
6030 /* 19065 */ GIM_Try, /*On fail goto*//*Label 215*/ GIMT_Encode4(19163), // Rule ID 166 //
6031 /* 19070 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule122Enabled),
6032 /* 19073 */ // MIs[0] root
6033 /* 19073 */ // No operand predicates
6034 /* 19073 */ // MIs[0] d1
6035 /* 19073 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6036 /* 19077 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
6037 /* 19081 */ // MIs[1] p
6038 /* 19081 */ // No operand predicates
6039 /* 19081 */ // MIs[1] s1
6040 /* 19081 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
6041 /* 19085 */ // MIs[1] Operand 3
6042 /* 19085 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
6043 /* 19089 */ // MIs[0] d2
6044 /* 19089 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6045 /* 19093 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
6046 /* 19097 */ // MIs[2] p
6047 /* 19097 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6048 /* 19102 */ // MIs[2] s2
6049 /* 19102 */ // No operand predicates
6050 /* 19102 */ // MIs[2] Operand 3
6051 /* 19102 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
6052 /* 19106 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
6053 /* 19110 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6054 /* 19112 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6055 /* 19115 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
6056 /* 19125 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6057 /* 19128 */ // Combiner Rule #122: double_icmp_zero_and_combine
6058 /* 19128 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6059 /* 19131 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6060 /* 19136 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
6061 /* 19140 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
6062 /* 19144 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
6063 /* 19148 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6064 /* 19152 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
6065 /* 19156 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6066 /* 19159 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
6067 /* 19162 */ GIR_EraseRootFromParent_Done,
6068 /* 19163 */ // Label 215: @19163
6069 /* 19163 */ GIM_Try, /*On fail goto*//*Label 216*/ GIMT_Encode4(19200), // Rule ID 255 //
6070 /* 19168 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
6071 /* 19171 */ // MIs[0] root
6072 /* 19171 */ // No operand predicates
6073 /* 19171 */ // MIs[0] shift
6074 /* 19171 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6075 /* 19175 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
6076 /* 19179 */ // MIs[1] x
6077 /* 19179 */ // No operand predicates
6078 /* 19179 */ // MIs[1] lsb
6079 /* 19179 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6080 /* 19183 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6081 /* 19187 */ // MIs[2] imm1
6082 /* 19187 */ // No operand predicates
6083 /* 19187 */ // MIs[0] mask
6084 /* 19187 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6085 /* 19191 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6086 /* 19195 */ // MIs[3] imm2
6087 /* 19195 */ // No operand predicates
6088 /* 19195 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
6089 /* 19197 */ // Combiner Rule #188: bitfield_extract_from_and
6090 /* 19197 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
6091 /* 19200 */ // Label 216: @19200
6092 /* 19200 */ GIM_Try, /*On fail goto*//*Label 217*/ GIMT_Encode4(19249), // Rule ID 390 //
6093 /* 19205 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule226Enabled),
6094 /* 19208 */ // MIs[0] root
6095 /* 19208 */ // No operand predicates
6096 /* 19208 */ // MIs[0] or
6097 /* 19208 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6098 /* 19212 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
6099 /* 19216 */ // MIs[1] x
6100 /* 19216 */ // No operand predicates
6101 /* 19216 */ // MIs[1] not
6102 /* 19216 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6103 /* 19220 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6104 /* 19224 */ // MIs[2] y
6105 /* 19224 */ // No operand predicates
6106 /* 19224 */ // MIs[2] Operand 2
6107 /* 19224 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6108 /* 19228 */ // MIs[0] y
6109 /* 19228 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
6110 /* 19233 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6111 /* 19235 */ // Combiner Rule #226: and_xor_or_to_and
6112 /* 19235 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6113 /* 19238 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6114 /* 19240 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6115 /* 19244 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
6116 /* 19248 */ GIR_EraseRootFromParent_Done,
6117 /* 19249 */ // Label 217: @19249
6118 /* 19249 */ GIM_Try, /*On fail goto*//*Label 218*/ GIMT_Encode4(19363), // Rule ID 462 //
6119 /* 19254 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule285Enabled),
6120 /* 19257 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i64,
6121 /* 19260 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_i64,
6122 /* 19263 */ // MIs[0] dst
6123 /* 19263 */ // No operand predicates
6124 /* 19263 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner25),
6125 /* 19267 */ GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_i32,
6126 /* 19270 */ GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_i32,
6127 /* 19273 */ GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_i32,
6128 /* 19276 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_i32,
6129 /* 19279 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_i32,
6130 /* 19282 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_i32,
6131 /* 19285 */ // Combiner Rule #285: combine_and_s64_with_s32_mask
6132 /* 19285 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6133 /* 19288 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6134 /* 19293 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6135 /* 19298 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
6136 /* 19300 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6137 /* 19304 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6138 /* 19309 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6139 /* 19314 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
6140 /* 19318 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6141 /* 19322 */ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6142 /* 19327 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
6143 /* 19330 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
6144 /* 19333 */ GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6145 /* 19337 */ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6146 /* 19342 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
6147 /* 19345 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
6148 /* 19348 */ GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
6149 /* 19352 */ GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
6150 /* 19356 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
6151 /* 19359 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
6152 /* 19362 */ GIR_EraseRootFromParent_Done,
6153 /* 19363 */ // Label 218: @19363
6154 /* 19363 */ GIM_Try, /*On fail goto*//*Label 219*/ GIMT_Encode4(19387), // Rule ID 120 //
6155 /* 19368 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
6156 /* 19371 */ // MIs[0] dst
6157 /* 19371 */ // No operand predicates
6158 /* 19371 */ // MIs[0] src
6159 /* 19371 */ // No operand predicates
6160 /* 19371 */ // MIs[0] src
6161 /* 19371 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6162 /* 19376 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6163 /* 19381 */ // Combiner Rule #91: binop_same_val @ [__binop_same_val_match_0[0]]
6164 /* 19381 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6165 /* 19386 */ GIR_EraseRootFromParent_Done,
6166 /* 19387 */ // Label 219: @19387
6167 /* 19387 */ GIM_Reject,
6168 /* 19388 */ // Label 9: @19388
6169 /* 19388 */ GIM_Try, /*On fail goto*//*Label 220*/ GIMT_Encode4(19399), // Rule ID 85 //
6170 /* 19393 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
6171 /* 19396 */ // Combiner Rule #79: undef_to_negative_one; wip_match_opcode 'G_OR'
6172 /* 19396 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
6173 /* 19399 */ // Label 220: @19399
6174 /* 19399 */ GIM_Try, /*On fail goto*//*Label 221*/ GIMT_Encode4(19410), // Rule ID 154 //
6175 /* 19404 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
6176 /* 19407 */ // Combiner Rule #113: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_OR'
6177 /* 19407 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
6178 /* 19410 */ // Label 221: @19410
6179 /* 19410 */ GIM_Try, /*On fail goto*//*Label 222*/ GIMT_Encode4(19421), // Rule ID 186 //
6180 /* 19415 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule142Enabled),
6181 /* 19418 */ // Combiner Rule #142: redundant_or; wip_match_opcode 'G_OR'
6182 /* 19418 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner74),
6183 /* 19421 */ // Label 222: @19421
6184 /* 19421 */ GIM_Try, /*On fail goto*//*Label 223*/ GIMT_Encode4(19432), // Rule ID 235 //
6185 /* 19426 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
6186 /* 19429 */ // Combiner Rule #175: load_or_combine; wip_match_opcode 'G_OR'
6187 /* 19429 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
6188 /* 19432 */ // Label 223: @19432
6189 /* 19432 */ GIM_Try, /*On fail goto*//*Label 224*/ GIMT_Encode4(19443), // Rule ID 240 //
6190 /* 19437 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled),
6191 /* 19440 */ // Combiner Rule #177: funnel_shift_from_or_shift; wip_match_opcode 'G_OR'
6192 /* 19440 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
6193 /* 19443 */ // Label 224: @19443
6194 /* 19443 */ GIM_Try, /*On fail goto*//*Label 225*/ GIMT_Encode4(19454), // Rule ID 266 //
6195 /* 19448 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6196 /* 19451 */ // Combiner Rule #191: constant_fold_binop; wip_match_opcode 'G_OR'
6197 /* 19451 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
6198 /* 19454 */ // Label 225: @19454
6199 /* 19454 */ GIM_Try, /*On fail goto*//*Label 226*/ GIMT_Encode4(19465), // Rule ID 324 //
6200 /* 19459 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
6201 /* 19462 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_OR'
6202 /* 19462 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
6203 /* 19465 */ // Label 226: @19465
6204 /* 19465 */ GIM_Try, /*On fail goto*//*Label 227*/ GIMT_Encode4(19476), // Rule ID 360 //
6205 /* 19470 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
6206 /* 19473 */ // Combiner Rule #220: commute_int_constant_to_rhs; wip_match_opcode 'G_OR'
6207 /* 19473 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
6208 /* 19476 */ // Label 227: @19476
6209 /* 19476 */ GIM_Try, /*On fail goto*//*Label 228*/ GIMT_Encode4(19487), // Rule ID 387 //
6210 /* 19481 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule223Enabled),
6211 /* 19484 */ // Combiner Rule #223: match_ors; wip_match_opcode 'G_OR'
6212 /* 19484 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
6213 /* 19487 */ // Label 228: @19487
6214 /* 19487 */ GIM_Try, /*On fail goto*//*Label 229*/ GIMT_Encode4(19498), // Rule ID 430 //
6215 /* 19492 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule262Enabled),
6216 /* 19495 */ // Combiner Rule #262: binop_with_neg; wip_match_opcode 'G_OR'
6217 /* 19495 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
6218 /* 19498 */ // Label 229: @19498
6219 /* 19498 */ GIM_Try, /*On fail goto*//*Label 230*/ GIMT_Encode4(19584), // Rule ID 389 //
6220 /* 19503 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule225Enabled),
6221 /* 19506 */ // MIs[0] root
6222 /* 19506 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
6223 /* 19510 */ // MIs[0] and
6224 /* 19510 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6225 /* 19514 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6226 /* 19518 */ // MIs[1] x
6227 /* 19518 */ // No operand predicates
6228 /* 19518 */ // MIs[1] y
6229 /* 19518 */ // No operand predicates
6230 /* 19518 */ // MIs[0] not
6231 /* 19518 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6232 /* 19522 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6233 /* 19526 */ // MIs[2] y
6234 /* 19526 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
6235 /* 19531 */ // MIs[2] Operand 2
6236 /* 19531 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6237 /* 19535 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6238 /* 19537 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6239 /* 19540 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
6240 /* 19550 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6241 /* 19553 */ // Combiner Rule #225: or_and_xor_to_xor_or
6242 /* 19553 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
6243 /* 19556 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6244 /* 19561 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
6245 /* 19565 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
6246 /* 19568 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6247 /* 19572 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6248 /* 19576 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
6249 /* 19580 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6250 /* 19583 */ GIR_EraseRootFromParent_Done,
6251 /* 19584 */ // Label 230: @19584
6252 /* 19584 */ GIM_Try, /*On fail goto*//*Label 231*/ GIMT_Encode4(19671), // Rule ID 464 //
6253 /* 19589 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule286Enabled),
6254 /* 19592 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i64,
6255 /* 19595 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_i64,
6256 /* 19598 */ // MIs[0] dst
6257 /* 19598 */ // No operand predicates
6258 /* 19598 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6259 /* 19602 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6260 /* 19606 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_i32,
6261 /* 19610 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
6262 /* 19614 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6263 /* 19616 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
6264 /* 19619 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6265 /* 19622 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6266 /* 19625 */ // Combiner Rule #286: combine_or_s64_s32 @ [dst[1]]
6267 /* 19625 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6268 /* 19628 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6269 /* 19633 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6270 /* 19638 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
6271 /* 19640 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6272 /* 19644 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6273 /* 19649 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6274 /* 19652 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
6275 /* 19656 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
6276 /* 19660 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
6277 /* 19664 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
6278 /* 19667 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
6279 /* 19670 */ GIR_EraseRootFromParent_Done,
6280 /* 19671 */ // Label 231: @19671
6281 /* 19671 */ GIM_Try, /*On fail goto*//*Label 232*/ GIMT_Encode4(19718), // Rule ID 247 //
6282 /* 19676 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
6283 /* 19679 */ // MIs[0] root
6284 /* 19679 */ // No operand predicates
6285 /* 19679 */ // MIs[0] out1
6286 /* 19679 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6287 /* 19683 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHL),
6288 /* 19687 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6289 /* 19687 */ // No operand predicates
6290 /* 19687 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
6291 /* 19687 */ // No operand predicates
6292 /* 19687 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6293 /* 19687 */ // No operand predicates
6294 /* 19687 */ // MIs[0] out2
6295 /* 19687 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6296 /* 19691 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SHL),
6297 /* 19695 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6298 /* 19695 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6299 /* 19700 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6300 /* 19700 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
6301 /* 19705 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6302 /* 19710 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6303 /* 19712 */ // Combiner Rule #182: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[0]]
6304 /* 19712 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6305 /* 19717 */ GIR_EraseRootFromParent_Done,
6306 /* 19718 */ // Label 232: @19718
6307 /* 19718 */ GIM_Try, /*On fail goto*//*Label 233*/ GIMT_Encode4(19765), // Rule ID 249 //
6308 /* 19723 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
6309 /* 19726 */ // MIs[0] root
6310 /* 19726 */ // No operand predicates
6311 /* 19726 */ // MIs[0] out1
6312 /* 19726 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6313 /* 19730 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHR),
6314 /* 19734 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
6315 /* 19734 */ // No operand predicates
6316 /* 19734 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6317 /* 19734 */ // No operand predicates
6318 /* 19734 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6319 /* 19734 */ // No operand predicates
6320 /* 19734 */ // MIs[0] out2
6321 /* 19734 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6322 /* 19738 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
6323 /* 19742 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6324 /* 19742 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
6325 /* 19747 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6326 /* 19747 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
6327 /* 19752 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6328 /* 19757 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6329 /* 19759 */ // Combiner Rule #183: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[0]]
6330 /* 19759 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6331 /* 19764 */ GIR_EraseRootFromParent_Done,
6332 /* 19765 */ // Label 233: @19765
6333 /* 19765 */ GIM_Try, /*On fail goto*//*Label 234*/ GIMT_Encode4(19863), // Rule ID 167 //
6334 /* 19770 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule123Enabled),
6335 /* 19773 */ // MIs[0] root
6336 /* 19773 */ // No operand predicates
6337 /* 19773 */ // MIs[0] d1
6338 /* 19773 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6339 /* 19777 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
6340 /* 19781 */ // MIs[1] p
6341 /* 19781 */ // No operand predicates
6342 /* 19781 */ // MIs[1] s1
6343 /* 19781 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
6344 /* 19785 */ // MIs[1] Operand 3
6345 /* 19785 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
6346 /* 19789 */ // MIs[0] d2
6347 /* 19789 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6348 /* 19793 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
6349 /* 19797 */ // MIs[2] p
6350 /* 19797 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6351 /* 19802 */ // MIs[2] s2
6352 /* 19802 */ // No operand predicates
6353 /* 19802 */ // MIs[2] Operand 3
6354 /* 19802 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
6355 /* 19806 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
6356 /* 19810 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6357 /* 19812 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6358 /* 19815 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
6359 /* 19825 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6360 /* 19828 */ // Combiner Rule #123: double_icmp_zero_or_combine
6361 /* 19828 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6362 /* 19831 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6363 /* 19836 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
6364 /* 19840 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
6365 /* 19844 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
6366 /* 19848 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6367 /* 19852 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
6368 /* 19856 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6369 /* 19859 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
6370 /* 19862 */ GIR_EraseRootFromParent_Done,
6371 /* 19863 */ // Label 234: @19863
6372 /* 19863 */ GIM_Try, /*On fail goto*//*Label 235*/ GIMT_Encode4(19912), // Rule ID 388 //
6373 /* 19868 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule224Enabled),
6374 /* 19871 */ // MIs[0] root
6375 /* 19871 */ // No operand predicates
6376 /* 19871 */ // MIs[0] and
6377 /* 19871 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6378 /* 19875 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6379 /* 19879 */ // MIs[1] x
6380 /* 19879 */ // No operand predicates
6381 /* 19879 */ // MIs[1] not
6382 /* 19879 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6383 /* 19883 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6384 /* 19887 */ // MIs[2] y
6385 /* 19887 */ // No operand predicates
6386 /* 19887 */ // MIs[2] Operand 2
6387 /* 19887 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6388 /* 19891 */ // MIs[0] y
6389 /* 19891 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
6390 /* 19896 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6391 /* 19898 */ // Combiner Rule #224: or_and_xor_to_or
6392 /* 19898 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6393 /* 19901 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6394 /* 19903 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6395 /* 19907 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
6396 /* 19911 */ GIR_EraseRootFromParent_Done,
6397 /* 19912 */ // Label 235: @19912
6398 /* 19912 */ GIM_Try, /*On fail goto*//*Label 236*/ GIMT_Encode4(19946), // Rule ID 440 //
6399 /* 19917 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule271Enabled),
6400 /* 19920 */ // MIs[0] dst
6401 /* 19920 */ // No operand predicates
6402 /* 19920 */ // MIs[0] __combine_or_of_and_match_0.and
6403 /* 19920 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6404 /* 19924 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6405 /* 19928 */ // MIs[1] x
6406 /* 19928 */ // No operand predicates
6407 /* 19928 */ // MIs[1] y
6408 /* 19928 */ // No operand predicates
6409 /* 19928 */ // MIs[0] x
6410 /* 19928 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
6411 /* 19933 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
6412 /* 19938 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6413 /* 19940 */ // Combiner Rule #271: combine_or_of_and @ [__combine_or_of_and_match_0[0]]
6414 /* 19940 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
6415 /* 19945 */ GIR_EraseRootFromParent_Done,
6416 /* 19946 */ // Label 236: @19946
6417 /* 19946 */ GIM_Try, /*On fail goto*//*Label 237*/ GIMT_Encode4(19980), // Rule ID 441 //
6418 /* 19951 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule271Enabled),
6419 /* 19954 */ // MIs[0] dst
6420 /* 19954 */ // No operand predicates
6421 /* 19954 */ // MIs[0] __combine_or_of_and_match_0.and
6422 /* 19954 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6423 /* 19958 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6424 /* 19962 */ // MIs[1] y
6425 /* 19962 */ // No operand predicates
6426 /* 19962 */ // MIs[1] x
6427 /* 19962 */ // No operand predicates
6428 /* 19962 */ // MIs[0] x
6429 /* 19962 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
6430 /* 19967 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6431 /* 19972 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6432 /* 19974 */ // Combiner Rule #271: combine_or_of_and @ [__combine_or_of_and_match_0[1]]
6433 /* 19974 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6434 /* 19979 */ GIR_EraseRootFromParent_Done,
6435 /* 19980 */ // Label 237: @19980
6436 /* 19980 */ GIM_Try, /*On fail goto*//*Label 238*/ GIMT_Encode4(20027), // Rule ID 250 //
6437 /* 19985 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
6438 /* 19988 */ // MIs[0] root
6439 /* 19988 */ // No operand predicates
6440 /* 19988 */ // MIs[0] out2
6441 /* 19988 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6442 /* 19992 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
6443 /* 19996 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6444 /* 19996 */ // No operand predicates
6445 /* 19996 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6446 /* 19996 */ // No operand predicates
6447 /* 19996 */ // MIs[0] out1
6448 /* 19996 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6449 /* 20000 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHR),
6450 /* 20004 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
6451 /* 20004 */ // No operand predicates
6452 /* 20004 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
6453 /* 20004 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
6454 /* 20009 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
6455 /* 20009 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
6456 /* 20014 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6457 /* 20019 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6458 /* 20021 */ // Combiner Rule #183: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[1]]
6459 /* 20021 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6460 /* 20026 */ GIR_EraseRootFromParent_Done,
6461 /* 20027 */ // Label 238: @20027
6462 /* 20027 */ GIM_Try, /*On fail goto*//*Label 239*/ GIMT_Encode4(20074), // Rule ID 248 //
6463 /* 20032 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
6464 /* 20035 */ // MIs[0] root
6465 /* 20035 */ // No operand predicates
6466 /* 20035 */ // MIs[0] out2
6467 /* 20035 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6468 /* 20039 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
6469 /* 20043 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6470 /* 20043 */ // No operand predicates
6471 /* 20043 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6472 /* 20043 */ // No operand predicates
6473 /* 20043 */ // MIs[0] out1
6474 /* 20043 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6475 /* 20047 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHL),
6476 /* 20051 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
6477 /* 20051 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6478 /* 20056 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
6479 /* 20056 */ // No operand predicates
6480 /* 20056 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
6481 /* 20056 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
6482 /* 20061 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6483 /* 20066 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6484 /* 20068 */ // Combiner Rule #182: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[1]]
6485 /* 20068 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6486 /* 20073 */ GIR_EraseRootFromParent_Done,
6487 /* 20074 */ // Label 239: @20074
6488 /* 20074 */ GIM_Try, /*On fail goto*//*Label 240*/ GIMT_Encode4(20124), // Rule ID 393 //
6489 /* 20079 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule229Enabled),
6490 /* 20082 */ // MIs[0] root
6491 /* 20082 */ // No operand predicates
6492 /* 20082 */ // MIs[0] xor
6493 /* 20082 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6494 /* 20086 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
6495 /* 20090 */ // MIs[1] x
6496 /* 20090 */ // No operand predicates
6497 /* 20090 */ // MIs[1] y
6498 /* 20090 */ // No operand predicates
6499 /* 20090 */ // MIs[0] and
6500 /* 20090 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6501 /* 20094 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_AND),
6502 /* 20098 */ // MIs[2] x
6503 /* 20098 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6504 /* 20103 */ // MIs[2] y
6505 /* 20103 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
6506 /* 20108 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6507 /* 20110 */ // Combiner Rule #229: or_xor_and
6508 /* 20110 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6509 /* 20113 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6510 /* 20115 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6511 /* 20119 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
6512 /* 20123 */ GIR_EraseRootFromParent_Done,
6513 /* 20124 */ // Label 240: @20124
6514 /* 20124 */ GIM_Try, /*On fail goto*//*Label 241*/ GIMT_Encode4(20174), // Rule ID 392 //
6515 /* 20129 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
6516 /* 20132 */ // MIs[0] root
6517 /* 20132 */ // No operand predicates
6518 /* 20132 */ // MIs[0] xor
6519 /* 20132 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6520 /* 20136 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
6521 /* 20140 */ // MIs[1] x
6522 /* 20140 */ // No operand predicates
6523 /* 20140 */ // MIs[1] y
6524 /* 20140 */ // No operand predicates
6525 /* 20140 */ // MIs[0] or
6526 /* 20140 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6527 /* 20144 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_OR),
6528 /* 20148 */ // MIs[2] x
6529 /* 20148 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6530 /* 20153 */ // MIs[2] y
6531 /* 20153 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
6532 /* 20158 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6533 /* 20160 */ // Combiner Rule #228: or_xor_or
6534 /* 20160 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6535 /* 20163 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6536 /* 20165 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6537 /* 20169 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
6538 /* 20173 */ GIR_EraseRootFromParent_Done,
6539 /* 20174 */ // Label 241: @20174
6540 /* 20174 */ GIM_Try, /*On fail goto*//*Label 242*/ GIMT_Encode4(20375),
6541 /* 20179 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i64,
6542 /* 20182 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_i64,
6543 /* 20185 */ GIM_Try, /*On fail goto*//*Label 243*/ GIMT_Encode4(20266), // Rule ID 463 //
6544 /* 20190 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule286Enabled),
6545 /* 20193 */ // MIs[0] dst
6546 /* 20193 */ // No operand predicates
6547 /* 20193 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6548 /* 20197 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6549 /* 20201 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_i32,
6550 /* 20205 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
6551 /* 20209 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6552 /* 20211 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
6553 /* 20214 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6554 /* 20217 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6555 /* 20220 */ // Combiner Rule #286: combine_or_s64_s32 @ [dst[0]]
6556 /* 20220 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6557 /* 20223 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6558 /* 20228 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6559 /* 20233 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
6560 /* 20235 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6561 /* 20239 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6562 /* 20244 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6563 /* 20247 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
6564 /* 20251 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
6565 /* 20255 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
6566 /* 20259 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
6567 /* 20262 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
6568 /* 20265 */ GIR_EraseRootFromParent_Done,
6569 /* 20266 */ // Label 243: @20266
6570 /* 20266 */ GIM_Try, /*On fail goto*//*Label 244*/ GIMT_Encode4(20374), // Rule ID 461 //
6571 /* 20271 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule284Enabled),
6572 /* 20274 */ // MIs[0] dst
6573 /* 20274 */ // No operand predicates
6574 /* 20274 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner25),
6575 /* 20278 */ GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_i32,
6576 /* 20281 */ GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_i32,
6577 /* 20284 */ GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_i32,
6578 /* 20287 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_i32,
6579 /* 20290 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_i32,
6580 /* 20293 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_i32,
6581 /* 20296 */ // Combiner Rule #284: combine_or_s64_with_s32_mask
6582 /* 20296 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6583 /* 20299 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6584 /* 20304 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6585 /* 20309 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
6586 /* 20311 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6587 /* 20315 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6588 /* 20320 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6589 /* 20325 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
6590 /* 20329 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6591 /* 20333 */ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6592 /* 20338 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
6593 /* 20341 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
6594 /* 20344 */ GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6595 /* 20348 */ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6596 /* 20353 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
6597 /* 20356 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
6598 /* 20359 */ GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
6599 /* 20363 */ GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
6600 /* 20367 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
6601 /* 20370 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
6602 /* 20373 */ GIR_EraseRootFromParent_Done,
6603 /* 20374 */ // Label 244: @20374
6604 /* 20374 */ GIM_Reject,
6605 /* 20375 */ // Label 242: @20375
6606 /* 20375 */ GIM_Try, /*On fail goto*//*Label 245*/ GIMT_Encode4(20399), // Rule ID 121 //
6607 /* 20380 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
6608 /* 20383 */ // MIs[0] dst
6609 /* 20383 */ // No operand predicates
6610 /* 20383 */ // MIs[0] src
6611 /* 20383 */ // No operand predicates
6612 /* 20383 */ // MIs[0] src
6613 /* 20383 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6614 /* 20388 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6615 /* 20393 */ // Combiner Rule #91: binop_same_val @ [__binop_same_val_match_0[1]]
6616 /* 20393 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6617 /* 20398 */ GIR_EraseRootFromParent_Done,
6618 /* 20399 */ // Label 245: @20399
6619 /* 20399 */ GIM_Try, /*On fail goto*//*Label 246*/ GIMT_Encode4(20433), // Rule ID 442 //
6620 /* 20404 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule271Enabled),
6621 /* 20407 */ // MIs[0] dst
6622 /* 20407 */ // No operand predicates
6623 /* 20407 */ // MIs[0] x
6624 /* 20407 */ // No operand predicates
6625 /* 20407 */ // MIs[0] __combine_or_of_and_match_0.and
6626 /* 20407 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6627 /* 20411 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6628 /* 20415 */ // MIs[1] x
6629 /* 20415 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
6630 /* 20420 */ // MIs[1] y
6631 /* 20420 */ // No operand predicates
6632 /* 20420 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6633 /* 20425 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6634 /* 20427 */ // Combiner Rule #271: combine_or_of_and @ [__combine_or_of_and_match_0[2]]
6635 /* 20427 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6636 /* 20432 */ GIR_EraseRootFromParent_Done,
6637 /* 20433 */ // Label 246: @20433
6638 /* 20433 */ GIM_Try, /*On fail goto*//*Label 247*/ GIMT_Encode4(20467), // Rule ID 443 //
6639 /* 20438 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule271Enabled),
6640 /* 20441 */ // MIs[0] dst
6641 /* 20441 */ // No operand predicates
6642 /* 20441 */ // MIs[0] x
6643 /* 20441 */ // No operand predicates
6644 /* 20441 */ // MIs[0] __combine_or_of_and_match_0.and
6645 /* 20441 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6646 /* 20445 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6647 /* 20449 */ // MIs[1] y
6648 /* 20449 */ // No operand predicates
6649 /* 20449 */ // MIs[1] x
6650 /* 20449 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6651 /* 20454 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6652 /* 20459 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6653 /* 20461 */ // Combiner Rule #271: combine_or_of_and @ [__combine_or_of_and_match_0[3]]
6654 /* 20461 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6655 /* 20466 */ GIR_EraseRootFromParent_Done,
6656 /* 20467 */ // Label 247: @20467
6657 /* 20467 */ GIM_Try, /*On fail goto*//*Label 248*/ GIMT_Encode4(20490), // Rule ID 112 //
6658 /* 20472 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
6659 /* 20475 */ // MIs[0] dst
6660 /* 20475 */ // No operand predicates
6661 /* 20475 */ // MIs[0] lhs
6662 /* 20475 */ // No operand predicates
6663 /* 20475 */ // MIs[0] Operand 2
6664 /* 20475 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6665 /* 20479 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6666 /* 20484 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[2]]
6667 /* 20484 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6668 /* 20489 */ GIR_EraseRootFromParent_Done,
6669 /* 20490 */ // Label 248: @20490
6670 /* 20490 */ GIM_Reject,
6671 /* 20491 */ // Label 10: @20491
6672 /* 20491 */ GIM_Try, /*On fail goto*//*Label 249*/ GIMT_Encode4(20502), // Rule ID 102 //
6673 /* 20496 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
6674 /* 20499 */ // Combiner Rule #84: propagate_undef_any_op; wip_match_opcode 'G_XOR'
6675 /* 20499 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
6676 /* 20502 */ // Label 249: @20502
6677 /* 20502 */ GIM_Try, /*On fail goto*//*Label 250*/ GIMT_Encode4(20513), // Rule ID 155 //
6678 /* 20507 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
6679 /* 20510 */ // Combiner Rule #113: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_XOR'
6680 /* 20510 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
6681 /* 20513 */ // Label 250: @20513
6682 /* 20513 */ GIM_Try, /*On fail goto*//*Label 251*/ GIMT_Encode4(20524), // Rule ID 191 //
6683 /* 20518 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
6684 /* 20521 */ // Combiner Rule #147: not_cmp_fold; wip_match_opcode 'G_XOR'
6685 /* 20521 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
6686 /* 20524 */ // Label 251: @20524
6687 /* 20524 */ GIM_Try, /*On fail goto*//*Label 252*/ GIMT_Encode4(20535), // Rule ID 223 //
6688 /* 20529 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
6689 /* 20532 */ // Combiner Rule #171: xor_of_and_with_same_reg; wip_match_opcode 'G_XOR'
6690 /* 20532 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner90),
6691 /* 20535 */ // Label 252: @20535
6692 /* 20535 */ GIM_Try, /*On fail goto*//*Label 253*/ GIMT_Encode4(20546), // Rule ID 269 //
6693 /* 20540 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6694 /* 20543 */ // Combiner Rule #191: constant_fold_binop; wip_match_opcode 'G_XOR'
6695 /* 20543 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
6696 /* 20546 */ // Label 253: @20546
6697 /* 20546 */ GIM_Try, /*On fail goto*//*Label 254*/ GIMT_Encode4(20557), // Rule ID 325 //
6698 /* 20551 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
6699 /* 20554 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_XOR'
6700 /* 20554 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
6701 /* 20557 */ // Label 254: @20557
6702 /* 20557 */ GIM_Try, /*On fail goto*//*Label 255*/ GIMT_Encode4(20568), // Rule ID 361 //
6703 /* 20562 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
6704 /* 20565 */ // Combiner Rule #220: commute_int_constant_to_rhs; wip_match_opcode 'G_XOR'
6705 /* 20565 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
6706 /* 20568 */ // Label 255: @20568
6707 /* 20568 */ GIM_Try, /*On fail goto*//*Label 256*/ GIMT_Encode4(20579), // Rule ID 431 //
6708 /* 20573 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule262Enabled),
6709 /* 20576 */ // Combiner Rule #262: binop_with_neg; wip_match_opcode 'G_XOR'
6710 /* 20576 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
6711 /* 20579 */ // Label 256: @20579
6712 /* 20579 */ GIM_Try, /*On fail goto*//*Label 257*/ GIMT_Encode4(20639), // Rule ID 13 //
6713 /* 20584 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
6714 /* 20587 */ // MIs[0] root
6715 /* 20587 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
6716 /* 20591 */ // MIs[0] add
6717 /* 20591 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6718 /* 20595 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
6719 /* 20599 */ // MIs[1] A
6720 /* 20599 */ // No operand predicates
6721 /* 20599 */ // MIs[1] Operand 2
6722 /* 20599 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 255,
6723 /* 20603 */ // MIs[0] Operand 2
6724 /* 20603 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
6725 /* 20607 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
6726 /* 20611 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6727 /* 20613 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6728 /* 20616 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
6729 /* 20626 */ // Combiner Rule #13: NotAPlusNegOne
6730 /* 20626 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
6731 /* 20629 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6732 /* 20631 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
6733 /* 20634 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
6734 /* 20638 */ GIR_EraseRootFromParent_Done,
6735 /* 20639 */ // Label 257: @20639
6736 /* 20639 */ GIM_Try, /*On fail goto*//*Label 258*/ GIMT_Encode4(20678), // Rule ID 123 //
6737 /* 20644 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
6738 /* 20647 */ // MIs[0] dst
6739 /* 20647 */ // No operand predicates
6740 /* 20647 */ // MIs[0] x
6741 /* 20647 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
6742 /* 20651 */ // MIs[0] x
6743 /* 20651 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6744 /* 20656 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6745 /* 20659 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
6746 /* 20669 */ // Combiner Rule #92: same_val_zero @ [__same_val_zero_match_0[1]]
6747 /* 20669 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
6748 /* 20672 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6749 /* 20674 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
6750 /* 20677 */ GIR_EraseRootFromParent_Done,
6751 /* 20678 */ // Label 258: @20678
6752 /* 20678 */ GIM_Try, /*On fail goto*//*Label 259*/ GIMT_Encode4(20701), // Rule ID 113 //
6753 /* 20683 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
6754 /* 20686 */ // MIs[0] dst
6755 /* 20686 */ // No operand predicates
6756 /* 20686 */ // MIs[0] lhs
6757 /* 20686 */ // No operand predicates
6758 /* 20686 */ // MIs[0] Operand 2
6759 /* 20686 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6760 /* 20690 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6761 /* 20695 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[3]]
6762 /* 20695 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6763 /* 20700 */ GIR_EraseRootFromParent_Done,
6764 /* 20701 */ // Label 259: @20701
6765 /* 20701 */ GIM_Reject,
6766 /* 20702 */ // Label 11: @20702
6767 /* 20702 */ GIM_Try, /*On fail goto*//*Label 260*/ GIMT_Encode4(20713), // Rule ID 151 //
6768 /* 20707 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
6769 /* 20710 */ // Combiner Rule #111: extend_through_phis; wip_match_opcode 'G_PHI'
6770 /* 20710 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
6771 /* 20713 */ // Label 260: @20713
6772 /* 20713 */ GIM_Reject,
6773 /* 20714 */ // Label 12: @20714
6774 /* 20714 */ GIM_Try, /*On fail goto*//*Label 261*/ GIMT_Encode4(20725), // Rule ID 403 //
6775 /* 20719 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule239Enabled),
6776 /* 20722 */ // Combiner Rule #239: unmerge_anyext_build_vector; wip_match_opcode 'G_UNMERGE_VALUES'
6777 /* 20722 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner143),
6778 /* 20725 */ // Label 261: @20725
6779 /* 20725 */ GIM_Try, /*On fail goto*//*Label 262*/ GIMT_Encode4(20736), // Rule ID 404 //
6780 /* 20730 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule240Enabled),
6781 /* 20733 */ // Combiner Rule #240: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
6782 /* 20733 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner144),
6783 /* 20736 */ // Label 262: @20736
6784 /* 20736 */ GIM_Try, /*On fail goto*//*Label 263*/ GIMT_Encode4(20747), // Rule ID 406 //
6785 /* 20741 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule242Enabled),
6786 /* 20744 */ // Combiner Rule #242: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
6787 /* 20744 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner146),
6788 /* 20747 */ // Label 263: @20747
6789 /* 20747 */ GIM_Try, /*On fail goto*//*Label 264*/ GIMT_Encode4(20758), // Rule ID 407 //
6790 /* 20752 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule243Enabled),
6791 /* 20755 */ // Combiner Rule #243: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
6792 /* 20755 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner147),
6793 /* 20758 */ // Label 264: @20758
6794 /* 20758 */ GIM_Try, /*On fail goto*//*Label 265*/ GIMT_Encode4(20769), // Rule ID 408 //
6795 /* 20763 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule244Enabled),
6796 /* 20766 */ // Combiner Rule #244: unmerge_dead_to_trunc; wip_match_opcode 'G_UNMERGE_VALUES'
6797 /* 20766 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner148),
6798 /* 20769 */ // Label 265: @20769
6799 /* 20769 */ GIM_Try, /*On fail goto*//*Label 266*/ GIMT_Encode4(20780), // Rule ID 409 //
6800 /* 20774 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule245Enabled),
6801 /* 20777 */ // Combiner Rule #245: unmerge_zext_to_zext; wip_match_opcode 'G_UNMERGE_VALUES'
6802 /* 20777 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner149),
6803 /* 20780 */ // Label 266: @20780
6804 /* 20780 */ GIM_Reject,
6805 /* 20781 */ // Label 13: @20781
6806 /* 20781 */ GIM_Try, /*On fail goto*//*Label 267*/ GIMT_Encode4(20795), // Rule ID 405 //
6807 /* 20786 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule241Enabled),
6808 /* 20789 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
6809 /* 20792 */ // MIs[0] dst
6810 /* 20792 */ // No operand predicates
6811 /* 20792 */ // MIs[0] merge_srcs
6812 /* 20792 */ // No operand predicates
6813 /* 20792 */ // Combiner Rule #241: merge_unmerge
6814 /* 20792 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner145),
6815 /* 20795 */ // Label 267: @20795
6816 /* 20795 */ GIM_Try, /*On fail goto*//*Label 268*/ GIMT_Encode4(20857),
6817 /* 20800 */ GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
6818 /* 20803 */ GIM_Try, /*On fail goto*//*Label 269*/ GIMT_Encode4(20824), // Rule ID 410 //
6819 /* 20808 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule246Enabled),
6820 /* 20811 */ // MIs[0] root
6821 /* 20811 */ // No operand predicates
6822 /* 20811 */ // MIs[0] x
6823 /* 20811 */ // No operand predicates
6824 /* 20811 */ // MIs[0] undef
6825 /* 20811 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6826 /* 20815 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6827 /* 20819 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6828 /* 20821 */ // Combiner Rule #246: merge_of_x_and_undef
6829 /* 20821 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner150),
6830 /* 20824 */ // Label 269: @20824
6831 /* 20824 */ GIM_Try, /*On fail goto*//*Label 270*/ GIMT_Encode4(20856), // Rule ID 411 //
6832 /* 20829 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule247Enabled),
6833 /* 20832 */ // MIs[0] root
6834 /* 20832 */ // No operand predicates
6835 /* 20832 */ // MIs[0] x
6836 /* 20832 */ // No operand predicates
6837 /* 20832 */ // MIs[0] zero
6838 /* 20832 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6839 /* 20836 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6840 /* 20840 */ // MIs[1] Operand 1
6841 /* 20840 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
6842 /* 20851 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6843 /* 20853 */ // Combiner Rule #247: merge_of_x_and_zero
6844 /* 20853 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner151),
6845 /* 20856 */ // Label 270: @20856
6846 /* 20856 */ GIM_Reject,
6847 /* 20857 */ // Label 268: @20857
6848 /* 20857 */ GIM_Reject,
6849 /* 20858 */ // Label 14: @20858
6850 /* 20858 */ GIM_Try, /*On fail goto*//*Label 271*/ GIMT_Encode4(20869), // Rule ID 75 //
6851 /* 20863 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
6852 /* 20866 */ // Combiner Rule #73: extract_all_elts_from_build_vector; wip_match_opcode 'G_BUILD_VECTOR'
6853 /* 20866 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
6854 /* 20869 */ // Label 271: @20869
6855 /* 20869 */ GIM_Try, /*On fail goto*//*Label 272*/ GIMT_Encode4(20880), // Rule ID 104 //
6856 /* 20874 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
6857 /* 20877 */ // Combiner Rule #85: propagate_undef_all_ops; wip_match_opcode 'G_BUILD_VECTOR'
6858 /* 20877 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
6859 /* 20880 */ // Label 272: @20880
6860 /* 20880 */ GIM_Try, /*On fail goto*//*Label 273*/ GIMT_Encode4(20891), // Rule ID 142 //
6861 /* 20885 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
6862 /* 20888 */ // Combiner Rule #102: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR'
6863 /* 20888 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
6864 /* 20891 */ // Label 273: @20891
6865 /* 20891 */ GIM_Try, /*On fail goto*//*Label 274*/ GIMT_Encode4(20922),
6866 /* 20896 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
6867 /* 20899 */ GIM_Try, /*On fail goto*//*Label 275*/ GIMT_Encode4(20910), // Rule ID 402 //
6868 /* 20904 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule238Enabled),
6869 /* 20907 */ // MIs[0] dst
6870 /* 20907 */ // No operand predicates
6871 /* 20907 */ // MIs[0] unused
6872 /* 20907 */ // No operand predicates
6873 /* 20907 */ // Combiner Rule #238: combine_use_vector_truncate
6874 /* 20907 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner142),
6875 /* 20910 */ // Label 275: @20910
6876 /* 20910 */ GIM_Try, /*On fail goto*//*Label 276*/ GIMT_Encode4(20921), // Rule ID 412 //
6877 /* 20915 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule248Enabled),
6878 /* 20918 */ // MIs[0] dst
6879 /* 20918 */ // No operand predicates
6880 /* 20918 */ // MIs[0] unused
6881 /* 20918 */ // No operand predicates
6882 /* 20918 */ // Combiner Rule #248: combine_build_unmerge
6883 /* 20918 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner152),
6884 /* 20921 */ // Label 276: @20921
6885 /* 20921 */ GIM_Reject,
6886 /* 20922 */ // Label 274: @20922
6887 /* 20922 */ GIM_Reject,
6888 /* 20923 */ // Label 15: @20923
6889 /* 20923 */ GIM_Try, /*On fail goto*//*Label 277*/ GIMT_Encode4(20934), // Rule ID 141 //
6890 /* 20928 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
6891 /* 20931 */ // Combiner Rule #102: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR_TRUNC'
6892 /* 20931 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
6893 /* 20934 */ // Label 277: @20934
6894 /* 20934 */ GIM_Reject,
6895 /* 20935 */ // Label 16: @20935
6896 /* 20935 */ GIM_Try, /*On fail goto*//*Label 278*/ GIMT_Encode4(20946), // Rule ID 395 //
6897 /* 20940 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule231Enabled),
6898 /* 20943 */ // Combiner Rule #231: combine_concat_vector; wip_match_opcode 'G_CONCAT_VECTORS'
6899 /* 20943 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner135),
6900 /* 20946 */ // Label 278: @20946
6901 /* 20946 */ GIM_Reject,
6902 /* 20947 */ // Label 17: @20947
6903 /* 20947 */ GIM_Try, /*On fail goto*//*Label 279*/ GIMT_Encode4(20968), // Rule ID 134 //
6904 /* 20952 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule96Enabled),
6905 /* 20955 */ // MIs[0] dst
6906 /* 20955 */ // No operand predicates
6907 /* 20955 */ // MIs[0] t
6908 /* 20955 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6909 /* 20959 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
6910 /* 20963 */ // MIs[1] ptr
6911 /* 20963 */ // No operand predicates
6912 /* 20963 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6913 /* 20965 */ // Combiner Rule #96: i2p_to_p2i
6914 /* 20965 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
6915 /* 20968 */ // Label 279: @20968
6916 /* 20968 */ GIM_Try, /*On fail goto*//*Label 280*/ GIMT_Encode4(20989), // Rule ID 96 //
6917 /* 20973 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6918 /* 20976 */ // MIs[0] dst
6919 /* 20976 */ // No operand predicates
6920 /* 20976 */ // MIs[0] __unary_undef_to_undef_match_0.x
6921 /* 20976 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6922 /* 20980 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6923 /* 20984 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6924 /* 20986 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[3]]
6925 /* 20986 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6926 /* 20989 */ // Label 280: @20989
6927 /* 20989 */ GIM_Reject,
6928 /* 20990 */ // Label 18: @20990
6929 /* 20990 */ GIM_Try, /*On fail goto*//*Label 281*/ GIMT_Encode4(21001), // Rule ID 133 //
6930 /* 20995 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
6931 /* 20998 */ // Combiner Rule #95: p2i_to_i2p; wip_match_opcode 'G_INTTOPTR'
6932 /* 20998 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
6933 /* 21001 */ // Label 281: @21001
6934 /* 21001 */ GIM_Try, /*On fail goto*//*Label 282*/ GIMT_Encode4(21022), // Rule ID 97 //
6935 /* 21006 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6936 /* 21009 */ // MIs[0] dst
6937 /* 21009 */ // No operand predicates
6938 /* 21009 */ // MIs[0] __unary_undef_to_undef_match_0.x
6939 /* 21009 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6940 /* 21013 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6941 /* 21017 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6942 /* 21019 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[4]]
6943 /* 21019 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6944 /* 21022 */ // Label 282: @21022
6945 /* 21022 */ GIM_Reject,
6946 /* 21023 */ // Label 19: @21023
6947 /* 21023 */ GIM_Try, /*On fail goto*//*Label 283*/ GIMT_Encode4(21055), // Rule ID 146 //
6948 /* 21028 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
6949 /* 21031 */ // MIs[0] dst
6950 /* 21031 */ // No operand predicates
6951 /* 21031 */ // MIs[0] src1
6952 /* 21031 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6953 /* 21035 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
6954 /* 21039 */ // MIs[1] src0
6955 /* 21039 */ // No operand predicates
6956 /* 21039 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner5),
6957 /* 21043 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6958 /* 21045 */ // Combiner Rule #106: bitcast_bitcast_to_bitcast
6959 /* 21045 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_BITCAST),
6960 /* 21048 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6961 /* 21050 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src0
6962 /* 21054 */ GIR_EraseRootFromParent_Done,
6963 /* 21055 */ // Label 283: @21055
6964 /* 21055 */ GIM_Try, /*On fail goto*//*Label 284*/ GIMT_Encode4(21076), // Rule ID 145 //
6965 /* 21060 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
6966 /* 21063 */ // MIs[0] dst
6967 /* 21063 */ // No operand predicates
6968 /* 21063 */ // MIs[0] src1
6969 /* 21063 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6970 /* 21067 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
6971 /* 21071 */ // MIs[1] src0
6972 /* 21071 */ // No operand predicates
6973 /* 21071 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6974 /* 21073 */ // Combiner Rule #105: bitcast_bitcast_fold
6975 /* 21073 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
6976 /* 21076 */ // Label 284: @21076
6977 /* 21076 */ GIM_Try, /*On fail goto*//*Label 285*/ GIMT_Encode4(21097), // Rule ID 94 //
6978 /* 21081 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6979 /* 21084 */ // MIs[0] dst
6980 /* 21084 */ // No operand predicates
6981 /* 21084 */ // MIs[0] __unary_undef_to_undef_match_0.x
6982 /* 21084 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6983 /* 21088 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6984 /* 21092 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6985 /* 21094 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[1]]
6986 /* 21094 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6987 /* 21097 */ // Label 285: @21097
6988 /* 21097 */ GIM_Reject,
6989 /* 21098 */ // Label 20: @21098
6990 /* 21098 */ GIM_Try, /*On fail goto*//*Label 286*/ GIMT_Encode4(21127), // Rule ID 24 //
6991 /* 21103 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
6992 /* 21106 */ // MIs[0] dst
6993 /* 21106 */ // No operand predicates
6994 /* 21106 */ // MIs[0] src
6995 /* 21106 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6996 /* 21110 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREEZE),
6997 /* 21114 */ // MIs[1] __idempotent_prop_match_0.x
6998 /* 21114 */ // No operand predicates
6999 /* 21114 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7000 /* 21119 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7001 /* 21121 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[0]]
7002 /* 21121 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7003 /* 21126 */ GIR_EraseRootFromParent_Done,
7004 /* 21127 */ // Label 286: @21127
7005 /* 21127 */ GIM_Try, /*On fail goto*//*Label 287*/ GIMT_Encode4(21150), // Rule ID 49 //
7006 /* 21132 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
7007 /* 21135 */ // MIs[0] root
7008 /* 21135 */ // No operand predicates
7009 /* 21135 */ // MIs[0] src
7010 /* 21135 */ // No operand predicates
7011 /* 21135 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
7012 /* 21139 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7013 /* 21144 */ // Combiner Rule #47: freeze_of_non_undef_non_poison
7014 /* 21144 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7015 /* 21149 */ GIR_EraseRootFromParent_Done,
7016 /* 21150 */ // Label 287: @21150
7017 /* 21150 */ GIM_Try, /*On fail goto*//*Label 288*/ GIMT_Encode4(21161), // Rule ID 50 //
7018 /* 21155 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
7019 /* 21158 */ // MIs[0] dst
7020 /* 21158 */ // No operand predicates
7021 /* 21158 */ // MIs[0] src
7022 /* 21158 */ // No operand predicates
7023 /* 21158 */ // Combiner Rule #48: push_freeze_to_prevent_poison_from_propagating
7024 /* 21158 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
7025 /* 21161 */ // Label 288: @21161
7026 /* 21161 */ GIM_Reject,
7027 /* 21162 */ // Label 21: @21162
7028 /* 21162 */ GIM_Try, /*On fail goto*//*Label 289*/ GIMT_Encode4(21183), // Rule ID 201 //
7029 /* 21167 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
7030 /* 21170 */ // MIs[0] dst
7031 /* 21170 */ // No operand predicates
7032 /* 21170 */ // MIs[0] src0
7033 /* 21170 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7034 /* 21174 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7035 /* 21178 */ // MIs[1] cst
7036 /* 21178 */ // No operand predicates
7037 /* 21178 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7038 /* 21180 */ // Combiner Rule #157: constant_fold_intrinsic_trunc
7039 /* 21180 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
7040 /* 21183 */ // Label 289: @21183
7041 /* 21183 */ GIM_Reject,
7042 /* 21184 */ // Label 22: @21184
7043 /* 21184 */ GIM_Try, /*On fail goto*//*Label 290*/ GIMT_Encode4(21205), // Rule ID 202 //
7044 /* 21189 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
7045 /* 21192 */ // MIs[0] dst
7046 /* 21192 */ // No operand predicates
7047 /* 21192 */ // MIs[0] src0
7048 /* 21192 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7049 /* 21196 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7050 /* 21200 */ // MIs[1] cst
7051 /* 21200 */ // No operand predicates
7052 /* 21200 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7053 /* 21202 */ // Combiner Rule #158: constant_fold_intrinsic_round
7054 /* 21202 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
7055 /* 21205 */ // Label 290: @21205
7056 /* 21205 */ GIM_Reject,
7057 /* 21206 */ // Label 23: @21206
7058 /* 21206 */ GIM_Try, /*On fail goto*//*Label 291*/ GIMT_Encode4(21227), // Rule ID 203 //
7059 /* 21211 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
7060 /* 21214 */ // MIs[0] dst
7061 /* 21214 */ // No operand predicates
7062 /* 21214 */ // MIs[0] src0
7063 /* 21214 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7064 /* 21218 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7065 /* 21222 */ // MIs[1] cst
7066 /* 21222 */ // No operand predicates
7067 /* 21222 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7068 /* 21224 */ // Combiner Rule #159: constant_fold_intrinsic_roundeven
7069 /* 21224 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
7070 /* 21227 */ // Label 291: @21227
7071 /* 21227 */ GIM_Reject,
7072 /* 21228 */ // Label 24: @21228
7073 /* 21228 */ GIM_Try, /*On fail goto*//*Label 292*/ GIMT_Encode4(21239), // Rule ID 76 //
7074 /* 21233 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
7075 /* 21236 */ // Combiner Rule #74: extending_loads; wip_match_opcode 'G_LOAD'
7076 /* 21236 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
7077 /* 21239 */ // Label 292: @21239
7078 /* 21239 */ GIM_Reject,
7079 /* 21240 */ // Label 25: @21240
7080 /* 21240 */ GIM_Try, /*On fail goto*//*Label 293*/ GIMT_Encode4(21251), // Rule ID 77 //
7081 /* 21245 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
7082 /* 21248 */ // Combiner Rule #74: extending_loads; wip_match_opcode 'G_SEXTLOAD'
7083 /* 21248 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
7084 /* 21251 */ // Label 293: @21251
7085 /* 21251 */ GIM_Reject,
7086 /* 21252 */ // Label 26: @21252
7087 /* 21252 */ GIM_Try, /*On fail goto*//*Label 294*/ GIMT_Encode4(21263), // Rule ID 78 //
7088 /* 21257 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
7089 /* 21260 */ // Combiner Rule #74: extending_loads; wip_match_opcode 'G_ZEXTLOAD'
7090 /* 21260 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
7091 /* 21263 */ // Label 294: @21263
7092 /* 21263 */ GIM_Reject,
7093 /* 21264 */ // Label 27: @21264
7094 /* 21264 */ GIM_Try, /*On fail goto*//*Label 295*/ GIMT_Encode4(21275), // Rule ID 106 //
7095 /* 21269 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
7096 /* 21272 */ // Combiner Rule #87: erase_undef_store; wip_match_opcode 'G_STORE'
7097 /* 21272 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner42),
7098 /* 21275 */ // Label 295: @21275
7099 /* 21275 */ GIM_Reject,
7100 /* 21276 */ // Label 28: @21276
7101 /* 21276 */ GIM_Try, /*On fail goto*//*Label 296*/ GIMT_Encode4(21287), // Rule ID 456 //
7102 /* 21281 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule280Enabled),
7103 /* 21284 */ // Combiner Rule #280: rcp_sqrt_to_rsq; wip_match_opcode 'G_INTRINSIC'
7104 /* 21284 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner169),
7105 /* 21287 */ // Label 296: @21287
7106 /* 21287 */ GIM_Reject,
7107 /* 21288 */ // Label 29: @21288
7108 /* 21288 */ GIM_Try, /*On fail goto*//*Label 297*/ GIMT_Encode4(21299), // Rule ID 135 //
7109 /* 21293 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled),
7110 /* 21296 */ // Combiner Rule #97: anyext_trunc_fold; wip_match_opcode 'G_ANYEXT'
7111 /* 21296 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
7112 /* 21299 */ // Label 297: @21299
7113 /* 21299 */ GIM_Try, /*On fail goto*//*Label 298*/ GIMT_Encode4(21310), // Rule ID 294 //
7114 /* 21304 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
7115 /* 21307 */ // Combiner Rule #194: constant_fold_cast_op; wip_match_opcode 'G_ANYEXT'
7116 /* 21307 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
7117 /* 21310 */ // Label 298: @21310
7118 /* 21310 */ GIM_Try, /*On fail goto*//*Label 299*/ GIMT_Encode4(21331), // Rule ID 63 //
7119 /* 21315 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule61Enabled),
7120 /* 21318 */ // MIs[0] root
7121 /* 21318 */ // No operand predicates
7122 /* 21318 */ // MIs[0] select
7123 /* 21318 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7124 /* 21322 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
7125 /* 21326 */ // MIs[1] cond
7126 /* 21326 */ // No operand predicates
7127 /* 21326 */ // MIs[1] true
7128 /* 21326 */ // No operand predicates
7129 /* 21326 */ // MIs[1] false
7130 /* 21326 */ // No operand predicates
7131 /* 21326 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7132 /* 21328 */ // Combiner Rule #61: select_of_anyext
7133 /* 21328 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
7134 /* 21331 */ // Label 299: @21331
7135 /* 21331 */ GIM_Try, /*On fail goto*//*Label 300*/ GIMT_Encode4(21352), // Rule ID 58 //
7136 /* 21336 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
7137 /* 21339 */ // MIs[0] root
7138 /* 21339 */ // No operand predicates
7139 /* 21339 */ // MIs[0] second
7140 /* 21339 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7141 /* 21343 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7142 /* 21347 */ // MIs[1] src
7143 /* 21347 */ // No operand predicates
7144 /* 21347 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7145 /* 21349 */ // Combiner Rule #56: anyext_of_anyext
7146 /* 21349 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
7147 /* 21352 */ // Label 300: @21352
7148 /* 21352 */ GIM_Try, /*On fail goto*//*Label 301*/ GIMT_Encode4(21373), // Rule ID 60 //
7149 /* 21357 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
7150 /* 21360 */ // MIs[0] root
7151 /* 21360 */ // No operand predicates
7152 /* 21360 */ // MIs[0] second
7153 /* 21360 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7154 /* 21364 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
7155 /* 21368 */ // MIs[1] src
7156 /* 21368 */ // No operand predicates
7157 /* 21368 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7158 /* 21370 */ // Combiner Rule #58: anyext_of_sext
7159 /* 21370 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
7160 /* 21373 */ // Label 301: @21373
7161 /* 21373 */ GIM_Try, /*On fail goto*//*Label 302*/ GIMT_Encode4(21394), // Rule ID 59 //
7162 /* 21378 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
7163 /* 21381 */ // MIs[0] root
7164 /* 21381 */ // No operand predicates
7165 /* 21381 */ // MIs[0] second
7166 /* 21381 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7167 /* 21385 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
7168 /* 21389 */ // MIs[1] src
7169 /* 21389 */ // No operand predicates
7170 /* 21389 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7171 /* 21391 */ // Combiner Rule #57: anyext_of_zext
7172 /* 21391 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
7173 /* 21394 */ // Label 302: @21394
7174 /* 21394 */ GIM_Try, /*On fail goto*//*Label 303*/ GIMT_Encode4(21415), // Rule ID 95 //
7175 /* 21399 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
7176 /* 21402 */ // MIs[0] dst
7177 /* 21402 */ // No operand predicates
7178 /* 21402 */ // MIs[0] __unary_undef_to_undef_match_0.x
7179 /* 21402 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7180 /* 21406 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7181 /* 21410 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7182 /* 21412 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[2]]
7183 /* 21412 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
7184 /* 21415 */ // Label 303: @21415
7185 /* 21415 */ GIM_Reject,
7186 /* 21416 */ // Label 30: @21416
7187 /* 21416 */ GIM_Try, /*On fail goto*//*Label 304*/ GIMT_Encode4(21427), // Rule ID 143 //
7188 /* 21421 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
7189 /* 21424 */ // Combiner Rule #103: trunc_buildvector_fold; wip_match_opcode 'G_TRUNC'
7190 /* 21424 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
7191 /* 21427 */ // Label 304: @21427
7192 /* 21427 */ GIM_Try, /*On fail goto*//*Label 305*/ GIMT_Encode4(21438), // Rule ID 144 //
7193 /* 21432 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
7194 /* 21435 */ // Combiner Rule #104: trunc_lshr_buildvector_fold; wip_match_opcode 'G_TRUNC'
7195 /* 21435 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner50),
7196 /* 21438 */ // Label 305: @21438
7197 /* 21438 */ GIM_Try, /*On fail goto*//*Label 306*/ GIMT_Encode4(21449), // Rule ID 190 //
7198 /* 21443 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
7199 /* 21446 */ // Combiner Rule #146: trunc_shift; wip_match_opcode 'G_TRUNC'
7200 /* 21446 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
7201 /* 21449 */ // Label 306: @21449
7202 /* 21449 */ GIM_Try, /*On fail goto*//*Label 307*/ GIMT_Encode4(21470), // Rule ID 64 //
7203 /* 21454 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled),
7204 /* 21457 */ // MIs[0] root
7205 /* 21457 */ // No operand predicates
7206 /* 21457 */ // MIs[0] select
7207 /* 21457 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7208 /* 21461 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
7209 /* 21465 */ // MIs[1] cond
7210 /* 21465 */ // No operand predicates
7211 /* 21465 */ // MIs[1] true
7212 /* 21465 */ // No operand predicates
7213 /* 21465 */ // MIs[1] false
7214 /* 21465 */ // No operand predicates
7215 /* 21465 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7216 /* 21467 */ // Combiner Rule #62: select_of_truncate
7217 /* 21467 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
7218 /* 21470 */ // Label 307: @21470
7219 /* 21470 */ GIM_Try, /*On fail goto*//*Label 308*/ GIMT_Encode4(21499), // Rule ID 66 //
7220 /* 21475 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
7221 /* 21478 */ // MIs[0] root
7222 /* 21478 */ // No operand predicates
7223 /* 21478 */ // MIs[0] binop
7224 /* 21478 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7225 /* 21482 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
7226 /* 21486 */ // MIs[1] x
7227 /* 21486 */ // No operand predicates
7228 /* 21486 */ // MIs[1] const
7229 /* 21486 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7230 /* 21490 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7231 /* 21494 */ // MIs[2] imm
7232 /* 21494 */ // No operand predicates
7233 /* 21494 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7234 /* 21496 */ // Combiner Rule #64: narrow_binop_add
7235 /* 21496 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
7236 /* 21499 */ // Label 308: @21499
7237 /* 21499 */ GIM_Try, /*On fail goto*//*Label 309*/ GIMT_Encode4(21528), // Rule ID 69 //
7238 /* 21504 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule67Enabled),
7239 /* 21507 */ // MIs[0] root
7240 /* 21507 */ // No operand predicates
7241 /* 21507 */ // MIs[0] binop
7242 /* 21507 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7243 /* 21511 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
7244 /* 21515 */ // MIs[1] x
7245 /* 21515 */ // No operand predicates
7246 /* 21515 */ // MIs[1] const
7247 /* 21515 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7248 /* 21519 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7249 /* 21523 */ // MIs[2] imm
7250 /* 21523 */ // No operand predicates
7251 /* 21523 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7252 /* 21525 */ // Combiner Rule #67: narrow_binop_and
7253 /* 21525 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
7254 /* 21528 */ // Label 309: @21528
7255 /* 21528 */ GIM_Try, /*On fail goto*//*Label 310*/ GIMT_Encode4(21557), // Rule ID 68 //
7256 /* 21533 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule66Enabled),
7257 /* 21536 */ // MIs[0] root
7258 /* 21536 */ // No operand predicates
7259 /* 21536 */ // MIs[0] binop
7260 /* 21536 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7261 /* 21540 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
7262 /* 21544 */ // MIs[1] x
7263 /* 21544 */ // No operand predicates
7264 /* 21544 */ // MIs[1] const
7265 /* 21544 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7266 /* 21548 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7267 /* 21552 */ // MIs[2] imm
7268 /* 21552 */ // No operand predicates
7269 /* 21552 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7270 /* 21554 */ // Combiner Rule #66: narrow_binop_mul
7271 /* 21554 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
7272 /* 21557 */ // Label 310: @21557
7273 /* 21557 */ GIM_Try, /*On fail goto*//*Label 311*/ GIMT_Encode4(21586), // Rule ID 70 //
7274 /* 21562 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
7275 /* 21565 */ // MIs[0] root
7276 /* 21565 */ // No operand predicates
7277 /* 21565 */ // MIs[0] binop
7278 /* 21565 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7279 /* 21569 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
7280 /* 21573 */ // MIs[1] x
7281 /* 21573 */ // No operand predicates
7282 /* 21573 */ // MIs[1] const
7283 /* 21573 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7284 /* 21577 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7285 /* 21581 */ // MIs[2] imm
7286 /* 21581 */ // No operand predicates
7287 /* 21581 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7288 /* 21583 */ // Combiner Rule #68: narrow_binop_or
7289 /* 21583 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
7290 /* 21586 */ // Label 311: @21586
7291 /* 21586 */ GIM_Try, /*On fail goto*//*Label 312*/ GIMT_Encode4(21615), // Rule ID 67 //
7292 /* 21591 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
7293 /* 21594 */ // MIs[0] root
7294 /* 21594 */ // No operand predicates
7295 /* 21594 */ // MIs[0] binop
7296 /* 21594 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7297 /* 21598 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
7298 /* 21602 */ // MIs[1] x
7299 /* 21602 */ // No operand predicates
7300 /* 21602 */ // MIs[1] const
7301 /* 21602 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7302 /* 21606 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7303 /* 21610 */ // MIs[2] imm
7304 /* 21610 */ // No operand predicates
7305 /* 21610 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7306 /* 21612 */ // Combiner Rule #65: narrow_binop_sub
7307 /* 21612 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
7308 /* 21615 */ // Label 312: @21615
7309 /* 21615 */ GIM_Try, /*On fail goto*//*Label 313*/ GIMT_Encode4(21647), // Rule ID 419 //
7310 /* 21620 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule253Enabled),
7311 /* 21623 */ // MIs[0] dst
7312 /* 21623 */ // No operand predicates
7313 /* 21623 */ // MIs[0] min
7314 /* 21623 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7315 /* 21627 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMIN),
7316 /* 21631 */ // MIs[1] x
7317 /* 21631 */ // No operand predicates
7318 /* 21631 */ // MIs[1] y
7319 /* 21631 */ // No operand predicates
7320 /* 21631 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner16),
7321 /* 21635 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7322 /* 21637 */ // Combiner Rule #253: trunc_usatu
7323 /* 21637 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_TRUNC_USAT_U),
7324 /* 21640 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7325 /* 21642 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7326 /* 21646 */ GIR_EraseRootFromParent_Done,
7327 /* 21647 */ // Label 313: @21647
7328 /* 21647 */ GIM_Try, /*On fail goto*//*Label 314*/ GIMT_Encode4(21676), // Rule ID 71 //
7329 /* 21652 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled),
7330 /* 21655 */ // MIs[0] root
7331 /* 21655 */ // No operand predicates
7332 /* 21655 */ // MIs[0] binop
7333 /* 21655 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7334 /* 21659 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
7335 /* 21663 */ // MIs[1] x
7336 /* 21663 */ // No operand predicates
7337 /* 21663 */ // MIs[1] const
7338 /* 21663 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7339 /* 21667 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7340 /* 21671 */ // MIs[2] imm
7341 /* 21671 */ // No operand predicates
7342 /* 21671 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7343 /* 21673 */ // Combiner Rule #69: narrow_binop_xor
7344 /* 21673 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
7345 /* 21676 */ // Label 314: @21676
7346 /* 21676 */ GIM_Try, /*On fail goto*//*Label 315*/ GIMT_Encode4(21697), // Rule ID 53 //
7347 /* 21681 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
7348 /* 21684 */ // MIs[0] root
7349 /* 21684 */ // No operand predicates
7350 /* 21684 */ // MIs[0] ext
7351 /* 21684 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7352 /* 21688 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7353 /* 21692 */ // MIs[1] src
7354 /* 21692 */ // No operand predicates
7355 /* 21692 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7356 /* 21694 */ // Combiner Rule #51: truncate_of_anyext
7357 /* 21694 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7358 /* 21697 */ // Label 315: @21697
7359 /* 21697 */ GIM_Try, /*On fail goto*//*Label 316*/ GIMT_Encode4(21721), // Rule ID 65 //
7360 /* 21702 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled),
7361 /* 21705 */ // MIs[0] root
7362 /* 21705 */ // No operand predicates
7363 /* 21705 */ // MIs[0] bv
7364 /* 21705 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7365 /* 21709 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
7366 /* 21713 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
7367 /* 21716 */ // MIs[1] unused
7368 /* 21716 */ // No operand predicates
7369 /* 21716 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7370 /* 21718 */ // Combiner Rule #63: buildvector_of_truncate
7371 /* 21718 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
7372 /* 21721 */ // Label 316: @21721
7373 /* 21721 */ GIM_Try, /*On fail goto*//*Label 317*/ GIMT_Encode4(21742), // Rule ID 52 //
7374 /* 21726 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
7375 /* 21729 */ // MIs[0] root
7376 /* 21729 */ // No operand predicates
7377 /* 21729 */ // MIs[0] ext
7378 /* 21729 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7379 /* 21733 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
7380 /* 21737 */ // MIs[1] src
7381 /* 21737 */ // No operand predicates
7382 /* 21737 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7383 /* 21739 */ // Combiner Rule #50: truncate_of_sext
7384 /* 21739 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7385 /* 21742 */ // Label 317: @21742
7386 /* 21742 */ GIM_Try, /*On fail goto*//*Label 318*/ GIMT_Encode4(21763), // Rule ID 51 //
7387 /* 21747 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
7388 /* 21750 */ // MIs[0] root
7389 /* 21750 */ // No operand predicates
7390 /* 21750 */ // MIs[0] ext
7391 /* 21750 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7392 /* 21754 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
7393 /* 21758 */ // MIs[1] src
7394 /* 21758 */ // No operand predicates
7395 /* 21758 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7396 /* 21760 */ // Combiner Rule #49: truncate_of_zext
7397 /* 21760 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
7398 /* 21763 */ // Label 318: @21763
7399 /* 21763 */ GIM_Try, /*On fail goto*//*Label 319*/ GIMT_Encode4(21784), // Rule ID 93 //
7400 /* 21768 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
7401 /* 21771 */ // MIs[0] dst
7402 /* 21771 */ // No operand predicates
7403 /* 21771 */ // MIs[0] __unary_undef_to_undef_match_0.x
7404 /* 21771 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7405 /* 21775 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7406 /* 21779 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7407 /* 21781 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[0]]
7408 /* 21781 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
7409 /* 21784 */ // Label 319: @21784
7410 /* 21784 */ GIM_Try, /*On fail goto*//*Label 320*/ GIMT_Encode4(21805), // Rule ID 72 //
7411 /* 21789 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
7412 /* 21792 */ // MIs[0] root
7413 /* 21792 */ // No operand predicates
7414 /* 21792 */ // MIs[0] int
7415 /* 21792 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7416 /* 21796 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7417 /* 21800 */ // MIs[1] imm
7418 /* 21800 */ // No operand predicates
7419 /* 21800 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7420 /* 21802 */ // Combiner Rule #70: integer_of_truncate
7421 /* 21802 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner26),
7422 /* 21805 */ // Label 320: @21805
7423 /* 21805 */ GIM_Try, /*On fail goto*//*Label 321*/ GIMT_Encode4(21816), // Rule ID 417 //
7424 /* 21810 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule251Enabled),
7425 /* 21813 */ // MIs[0] dst
7426 /* 21813 */ // No operand predicates
7427 /* 21813 */ // MIs[0] src
7428 /* 21813 */ // No operand predicates
7429 /* 21813 */ // Combiner Rule #251: trunc_ssats
7430 /* 21813 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner155),
7431 /* 21816 */ // Label 321: @21816
7432 /* 21816 */ GIM_Try, /*On fail goto*//*Label 322*/ GIMT_Encode4(21827), // Rule ID 418 //
7433 /* 21821 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule252Enabled),
7434 /* 21824 */ // MIs[0] dst
7435 /* 21824 */ // No operand predicates
7436 /* 21824 */ // MIs[0] src
7437 /* 21824 */ // No operand predicates
7438 /* 21824 */ // Combiner Rule #252: trunc_ssatu
7439 /* 21824 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner156),
7440 /* 21827 */ // Label 322: @21827
7441 /* 21827 */ GIM_Reject,
7442 /* 21828 */ // Label 31: @21828
7443 /* 21828 */ GIM_Try, /*On fail goto*//*Label 323*/ GIMT_Encode4(21860), // Rule ID 420 //
7444 /* 21833 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule254Enabled),
7445 /* 21836 */ // MIs[0] dst
7446 /* 21836 */ // No operand predicates
7447 /* 21836 */ // MIs[0] src
7448 /* 21836 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7449 /* 21840 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPTOUI),
7450 /* 21844 */ // MIs[1] x
7451 /* 21844 */ // No operand predicates
7452 /* 21844 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner17),
7453 /* 21848 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7454 /* 21850 */ // Combiner Rule #254: truncusatu_to_fptouisat
7455 /* 21850 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FPTOUI_SAT),
7456 /* 21853 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7457 /* 21855 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7458 /* 21859 */ GIR_EraseRootFromParent_Done,
7459 /* 21860 */ // Label 323: @21860
7460 /* 21860 */ GIM_Reject,
7461 /* 21861 */ // Label 32: @21861
7462 /* 21861 */ GIM_Try, /*On fail goto*//*Label 324*/ GIMT_Encode4(21872), // Rule ID 293 //
7463 /* 21866 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
7464 /* 21869 */ // Combiner Rule #194: constant_fold_cast_op; wip_match_opcode 'G_SEXT'
7465 /* 21869 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
7466 /* 21872 */ // Label 324: @21872
7467 /* 21872 */ GIM_Try, /*On fail goto*//*Label 325*/ GIMT_Encode4(21893), // Rule ID 57 //
7468 /* 21877 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
7469 /* 21880 */ // MIs[0] root
7470 /* 21880 */ // No operand predicates
7471 /* 21880 */ // MIs[0] second
7472 /* 21880 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7473 /* 21884 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7474 /* 21888 */ // MIs[1] src
7475 /* 21888 */ // No operand predicates
7476 /* 21888 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7477 /* 21890 */ // Combiner Rule #55: sext_of_anyext
7478 /* 21890 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
7479 /* 21893 */ // Label 325: @21893
7480 /* 21893 */ GIM_Try, /*On fail goto*//*Label 326*/ GIMT_Encode4(21914), // Rule ID 56 //
7481 /* 21898 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
7482 /* 21901 */ // MIs[0] root
7483 /* 21901 */ // No operand predicates
7484 /* 21901 */ // MIs[0] second
7485 /* 21901 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7486 /* 21905 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
7487 /* 21909 */ // MIs[1] src
7488 /* 21909 */ // No operand predicates
7489 /* 21909 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7490 /* 21911 */ // Combiner Rule #54: sext_of_sext
7491 /* 21911 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
7492 /* 21914 */ // Label 326: @21914
7493 /* 21914 */ GIM_Try, /*On fail goto*//*Label 327*/ GIMT_Encode4(21935), // Rule ID 396 //
7494 /* 21919 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule232Enabled),
7495 /* 21922 */ // MIs[0] root
7496 /* 21922 */ // No operand predicates
7497 /* 21922 */ // MIs[0] src
7498 /* 21922 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7499 /* 21926 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
7500 /* 21930 */ // MIs[1] x
7501 /* 21930 */ // No operand predicates
7502 /* 21930 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7503 /* 21932 */ // Combiner Rule #232: sext_trunc
7504 /* 21932 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner136),
7505 /* 21935 */ // Label 327: @21935
7506 /* 21935 */ GIM_Reject,
7507 /* 21936 */ // Label 33: @21936
7508 /* 21936 */ GIM_Try, /*On fail goto*//*Label 328*/ GIMT_Encode4(21947), // Rule ID 171 //
7509 /* 21941 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule127Enabled),
7510 /* 21944 */ // Combiner Rule #127: sext_inreg_of_load; wip_match_opcode 'G_SEXT_INREG'
7511 /* 21944 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner65),
7512 /* 21947 */ // Label 328: @21947
7513 /* 21947 */ GIM_Try, /*On fail goto*//*Label 329*/ GIMT_Encode4(21958), // Rule ID 180 //
7514 /* 21952 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled),
7515 /* 21955 */ // Combiner Rule #136: redundant_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
7516 /* 21955 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner71),
7517 /* 21958 */ // Label 329: @21958
7518 /* 21958 */ GIM_Try, /*On fail goto*//*Label 330*/ GIMT_Encode4(21969), // Rule ID 254 //
7519 /* 21963 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
7520 /* 21966 */ // Combiner Rule #187: bitfield_extract_from_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
7521 /* 21966 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner100),
7522 /* 21969 */ // Label 330: @21969
7523 /* 21969 */ GIM_Try, /*On fail goto*//*Label 331*/ GIMT_Encode4(21980), // Rule ID 459 //
7524 /* 21974 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule282Enabled),
7525 /* 21977 */ // Combiner Rule #282: sign_extension_in_reg; wip_match_opcode 'G_SEXT_INREG'
7526 /* 21977 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner171),
7527 /* 21980 */ // Label 331: @21980
7528 /* 21980 */ GIM_Try, /*On fail goto*//*Label 332*/ GIMT_Encode4(22001), // Rule ID 61 //
7529 /* 21985 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled),
7530 /* 21988 */ // MIs[0] dst
7531 /* 21988 */ // No operand predicates
7532 /* 21988 */ // MIs[0] x
7533 /* 21988 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7534 /* 21992 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
7535 /* 21996 */ // MIs[1] src
7536 /* 21996 */ // No operand predicates
7537 /* 21996 */ // MIs[1] a
7538 /* 21996 */ // No operand predicates
7539 /* 21996 */ // MIs[0] b
7540 /* 21996 */ // No operand predicates
7541 /* 21996 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7542 /* 21998 */ // Combiner Rule #59: sext_inreg_of_sext_inreg
7543 /* 21998 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
7544 /* 22001 */ // Label 332: @22001
7545 /* 22001 */ GIM_Try, /*On fail goto*//*Label 333*/ GIMT_Encode4(22041), // Rule ID 184 //
7546 /* 22006 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule140Enabled),
7547 /* 22009 */ // MIs[0] dst
7548 /* 22009 */ // No operand predicates
7549 /* 22009 */ // MIs[0] tmp4
7550 /* 22009 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7551 /* 22013 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7552 /* 22017 */ // MIs[1] tmp2
7553 /* 22017 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7554 /* 22021 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
7555 /* 22025 */ GIM_CheckNumOperands, /*MI*/2, /*Expected*/3,
7556 /* 22028 */ // MIs[2] tmp3
7557 /* 22028 */ // No operand predicates
7558 /* 22028 */ // MIs[2] tmp1
7559 /* 22028 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
7560 /* 22032 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7561 /* 22036 */ // MIs[3] src
7562 /* 22036 */ // No operand predicates
7563 /* 22036 */ // MIs[0] amt
7564 /* 22036 */ // No operand predicates
7565 /* 22036 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
7566 /* 22038 */ // Combiner Rule #140: redundant_aext_unmerge_sext_inreg
7567 /* 22038 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
7568 /* 22041 */ // Label 333: @22041
7569 /* 22041 */ GIM_Try, /*On fail goto*//*Label 334*/ GIMT_Encode4(22073), // Rule ID 182 //
7570 /* 22046 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule138Enabled),
7571 /* 22049 */ // MIs[0] dst
7572 /* 22049 */ // No operand predicates
7573 /* 22049 */ // MIs[0] tmp
7574 /* 22049 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7575 /* 22053 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7576 /* 22057 */ // MIs[1] src
7577 /* 22057 */ // No operand predicates
7578 /* 22057 */ // MIs[0] amt
7579 /* 22057 */ // No operand predicates
7580 /* 22057 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
7581 /* 22061 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7582 /* 22063 */ // Combiner Rule #138: redundant_aext_sext_inreg
7583 /* 22063 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
7584 /* 22066 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7585 /* 22068 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
7586 /* 22072 */ GIR_EraseRootFromParent_Done,
7587 /* 22073 */ // Label 334: @22073
7588 /* 22073 */ GIM_Try, /*On fail goto*//*Label 335*/ GIMT_Encode4(22113), // Rule ID 183 //
7589 /* 22078 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule139Enabled),
7590 /* 22081 */ // MIs[0] dst
7591 /* 22081 */ // No operand predicates
7592 /* 22081 */ // MIs[0] tmp4
7593 /* 22081 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7594 /* 22085 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
7595 /* 22089 */ // MIs[1] tmp2
7596 /* 22089 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7597 /* 22093 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
7598 /* 22097 */ GIM_CheckNumOperands, /*MI*/2, /*Expected*/3,
7599 /* 22100 */ // MIs[2] tmp3
7600 /* 22100 */ // No operand predicates
7601 /* 22100 */ // MIs[2] tmp1
7602 /* 22100 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
7603 /* 22104 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
7604 /* 22108 */ // MIs[3] src
7605 /* 22108 */ // No operand predicates
7606 /* 22108 */ // MIs[0] amt
7607 /* 22108 */ // No operand predicates
7608 /* 22108 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
7609 /* 22110 */ // Combiner Rule #139: redundant_zext_unmerge_sext_inreg
7610 /* 22110 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
7611 /* 22113 */ // Label 335: @22113
7612 /* 22113 */ GIM_Try, /*On fail goto*//*Label 336*/ GIMT_Encode4(22145), // Rule ID 181 //
7613 /* 22118 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled),
7614 /* 22121 */ // MIs[0] dst
7615 /* 22121 */ // No operand predicates
7616 /* 22121 */ // MIs[0] tmp
7617 /* 22121 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7618 /* 22125 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
7619 /* 22129 */ // MIs[1] src
7620 /* 22129 */ // No operand predicates
7621 /* 22129 */ // MIs[0] amt
7622 /* 22129 */ // No operand predicates
7623 /* 22129 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
7624 /* 22133 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7625 /* 22135 */ // Combiner Rule #137: redundant_zext_sext_inreg
7626 /* 22135 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
7627 /* 22138 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7628 /* 22140 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
7629 /* 22144 */ GIR_EraseRootFromParent_Done,
7630 /* 22145 */ // Label 336: @22145
7631 /* 22145 */ GIM_Try, /*On fail goto*//*Label 337*/ GIMT_Encode4(22156), // Rule ID 189 //
7632 /* 22150 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
7633 /* 22153 */ // MIs[0] dst
7634 /* 22153 */ // No operand predicates
7635 /* 22153 */ // MIs[0] src
7636 /* 22153 */ // No operand predicates
7637 /* 22153 */ // MIs[0] imm
7638 /* 22153 */ // No operand predicates
7639 /* 22153 */ // Combiner Rule #145: sext_inreg_to_zext_inreg
7640 /* 22153 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
7641 /* 22156 */ // Label 337: @22156
7642 /* 22156 */ GIM_Reject,
7643 /* 22157 */ // Label 34: @22157
7644 /* 22157 */ GIM_Try, /*On fail goto*//*Label 338*/ GIMT_Encode4(22168), // Rule ID 188 //
7645 /* 22162 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule144Enabled),
7646 /* 22165 */ // Combiner Rule #144: zext_trunc_fold; wip_match_opcode 'G_ZEXT'
7647 /* 22165 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76),
7648 /* 22168 */ // Label 338: @22168
7649 /* 22168 */ GIM_Try, /*On fail goto*//*Label 339*/ GIMT_Encode4(22179), // Rule ID 292 //
7650 /* 22173 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
7651 /* 22176 */ // Combiner Rule #194: constant_fold_cast_op; wip_match_opcode 'G_ZEXT'
7652 /* 22176 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
7653 /* 22179 */ // Label 339: @22179
7654 /* 22179 */ GIM_Try, /*On fail goto*//*Label 340*/ GIMT_Encode4(22200), // Rule ID 62 //
7655 /* 22184 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled),
7656 /* 22187 */ // MIs[0] root
7657 /* 22187 */ // No operand predicates
7658 /* 22187 */ // MIs[0] select
7659 /* 22187 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7660 /* 22191 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
7661 /* 22195 */ // MIs[1] cond
7662 /* 22195 */ // No operand predicates
7663 /* 22195 */ // MIs[1] true
7664 /* 22195 */ // No operand predicates
7665 /* 22195 */ // MIs[1] false
7666 /* 22195 */ // No operand predicates
7667 /* 22195 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7668 /* 22197 */ // Combiner Rule #60: select_of_zext
7669 /* 22197 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
7670 /* 22200 */ // Label 340: @22200
7671 /* 22200 */ GIM_Try, /*On fail goto*//*Label 341*/ GIMT_Encode4(22221), // Rule ID 55 //
7672 /* 22205 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
7673 /* 22208 */ // MIs[0] root
7674 /* 22208 */ // No operand predicates
7675 /* 22208 */ // MIs[0] second
7676 /* 22208 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7677 /* 22212 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
7678 /* 22216 */ // MIs[1] src
7679 /* 22216 */ // No operand predicates
7680 /* 22216 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7681 /* 22218 */ // Combiner Rule #53: zext_of_anyext
7682 /* 22218 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
7683 /* 22221 */ // Label 341: @22221
7684 /* 22221 */ GIM_Try, /*On fail goto*//*Label 342*/ GIMT_Encode4(22248), // Rule ID 397 //
7685 /* 22226 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
7686 /* 22229 */ // MIs[0] root
7687 /* 22229 */ // No operand predicates
7688 /* 22229 */ // MIs[0] src
7689 /* 22229 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7690 /* 22233 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
7691 /* 22237 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::NoUWrap),
7692 /* 22243 */ // MIs[1] x
7693 /* 22243 */ // No operand predicates
7694 /* 22243 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7695 /* 22245 */ // Combiner Rule #233: zext_trunc
7696 /* 22245 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner137),
7697 /* 22248 */ // Label 342: @22248
7698 /* 22248 */ GIM_Try, /*On fail goto*//*Label 343*/ GIMT_Encode4(22269), // Rule ID 54 //
7699 /* 22253 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
7700 /* 22256 */ // MIs[0] root
7701 /* 22256 */ // No operand predicates
7702 /* 22256 */ // MIs[0] second
7703 /* 22256 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7704 /* 22260 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
7705 /* 22264 */ // MIs[1] src
7706 /* 22264 */ // No operand predicates
7707 /* 22264 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7708 /* 22266 */ // Combiner Rule #52: zext_of_zext
7709 /* 22266 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
7710 /* 22269 */ // Label 343: @22269
7711 /* 22269 */ GIM_Try, /*On fail goto*//*Label 344*/ GIMT_Encode4(22286), // Rule ID 398 //
7712 /* 22274 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
7713 /* 22277 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NonNeg),
7714 /* 22283 */ // MIs[0] root
7715 /* 22283 */ // No operand predicates
7716 /* 22283 */ // MIs[0] x
7717 /* 22283 */ // No operand predicates
7718 /* 22283 */ // Combiner Rule #234: nneg_zext
7719 /* 22283 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner138),
7720 /* 22286 */ // Label 344: @22286
7721 /* 22286 */ GIM_Reject,
7722 /* 22287 */ // Label 35: @22287
7723 /* 22287 */ GIM_Try, /*On fail goto*//*Label 345*/ GIMT_Encode4(22298), // Rule ID 86 //
7724 /* 22292 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
7725 /* 22295 */ // Combiner Rule #80: binop_left_undef_to_zero; wip_match_opcode 'G_SHL'
7726 /* 22295 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
7727 /* 22298 */ // Label 345: @22298
7728 /* 22298 */ GIM_Try, /*On fail goto*//*Label 346*/ GIMT_Encode4(22309), // Rule ID 89 //
7729 /* 22303 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
7730 /* 22306 */ // Combiner Rule #81: binop_right_undef_to_undef; wip_match_opcode 'G_SHL'
7731 /* 22306 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
7732 /* 22309 */ // Label 346: @22309
7733 /* 22309 */ GIM_Try, /*On fail goto*//*Label 347*/ GIMT_Encode4(22320), // Rule ID 225 //
7734 /* 22314 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
7735 /* 22317 */ // Combiner Rule #173: shift_immed_chain; wip_match_opcode 'G_SHL'
7736 /* 22317 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
7737 /* 22320 */ // Label 347: @22320
7738 /* 22320 */ GIM_Try, /*On fail goto*//*Label 348*/ GIMT_Encode4(22331), // Rule ID 230 //
7739 /* 22325 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
7740 /* 22328 */ // Combiner Rule #174: shift_of_shifted_logic_chain; wip_match_opcode 'G_SHL'
7741 /* 22328 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
7742 /* 22331 */ // Label 348: @22331
7743 /* 22331 */ GIM_Try, /*On fail goto*//*Label 349*/ GIMT_Encode4(22342), // Rule ID 253 //
7744 /* 22336 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
7745 /* 22339 */ // Combiner Rule #186: commute_shift; wip_match_opcode 'G_SHL'
7746 /* 22339 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner99),
7747 /* 22342 */ // Label 349: @22342
7748 /* 22342 */ GIM_Try, /*On fail goto*//*Label 350*/ GIMT_Encode4(22353), // Rule ID 267 //
7749 /* 22347 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
7750 /* 22350 */ // Combiner Rule #191: constant_fold_binop; wip_match_opcode 'G_SHL'
7751 /* 22350 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
7752 /* 22353 */ // Label 350: @22353
7753 /* 22353 */ GIM_Try, /*On fail goto*//*Label 351*/ GIMT_Encode4(22364), // Rule ID 332 //
7754 /* 22358 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
7755 /* 22361 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_SHL'
7756 /* 22361 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
7757 /* 22364 */ // Label 351: @22364
7758 /* 22364 */ GIM_Try, /*On fail goto*//*Label 352*/ GIMT_Encode4(22399), // Rule ID 47 //
7759 /* 22369 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
7760 /* 22372 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
7761 /* 22378 */ // MIs[0] root
7762 /* 22378 */ // No operand predicates
7763 /* 22378 */ // MIs[0] left
7764 /* 22378 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7765 /* 22382 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
7766 /* 22386 */ // MIs[1] imm
7767 /* 22386 */ // No operand predicates
7768 /* 22386 */ // MIs[0] x
7769 /* 22386 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7770 /* 22390 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7771 /* 22394 */ // MIs[2] imm1
7772 /* 22394 */ // No operand predicates
7773 /* 22394 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7774 /* 22396 */ // Combiner Rule #45: shl_of_vscale
7775 /* 22396 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
7776 /* 22399 */ // Label 352: @22399
7777 /* 22399 */ GIM_Try, /*On fail goto*//*Label 353*/ GIMT_Encode4(22439), // Rule ID 124 //
7778 /* 22404 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
7779 /* 22407 */ // MIs[0] dst
7780 /* 22407 */ // No operand predicates
7781 /* 22407 */ // MIs[0] zero
7782 /* 22407 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7783 /* 22411 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7784 /* 22415 */ // MIs[1] Operand 1
7785 /* 22415 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
7786 /* 22426 */ // MIs[0] rhs
7787 /* 22426 */ // No operand predicates
7788 /* 22426 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7789 /* 22431 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7790 /* 22433 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[0]]
7791 /* 22433 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7792 /* 22438 */ GIR_EraseRootFromParent_Done,
7793 /* 22439 */ // Label 353: @22439
7794 /* 22439 */ GIM_Try, /*On fail goto*//*Label 354*/ GIMT_Encode4(22462), // Rule ID 114 //
7795 /* 22444 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
7796 /* 22447 */ // MIs[0] dst
7797 /* 22447 */ // No operand predicates
7798 /* 22447 */ // MIs[0] lhs
7799 /* 22447 */ // No operand predicates
7800 /* 22447 */ // MIs[0] Operand 2
7801 /* 22447 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7802 /* 22451 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7803 /* 22456 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[4]]
7804 /* 22456 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7805 /* 22461 */ GIR_EraseRootFromParent_Done,
7806 /* 22462 */ // Label 354: @22462
7807 /* 22462 */ GIM_Try, /*On fail goto*//*Label 355*/ GIMT_Encode4(22473), // Rule ID 156 //
7808 /* 22467 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
7809 /* 22470 */ // MIs[0] root
7810 /* 22470 */ // No operand predicates
7811 /* 22470 */ // MIs[0] mi.shifted
7812 /* 22470 */ // No operand predicates
7813 /* 22470 */ // MIs[0] mi.amt
7814 /* 22470 */ // No operand predicates
7815 /* 22470 */ // Combiner Rule #114: shifts_too_big @ [mi[0]]
7816 /* 22470 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
7817 /* 22473 */ // Label 355: @22473
7818 /* 22473 */ GIM_Try, /*On fail goto*//*Label 356*/ GIMT_Encode4(22484), // Rule ID 172 //
7819 /* 22478 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule128Enabled),
7820 /* 22481 */ // MIs[0] dst
7821 /* 22481 */ // No operand predicates
7822 /* 22481 */ // MIs[0] src0
7823 /* 22481 */ // No operand predicates
7824 /* 22481 */ // MIs[0] src1
7825 /* 22481 */ // No operand predicates
7826 /* 22481 */ // Combiner Rule #128: reduce_shl_of_extend
7827 /* 22481 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner66),
7828 /* 22484 */ // Label 356: @22484
7829 /* 22484 */ GIM_Reject,
7830 /* 22485 */ // Label 36: @22485
7831 /* 22485 */ GIM_Try, /*On fail goto*//*Label 357*/ GIMT_Encode4(22496), // Rule ID 91 //
7832 /* 22490 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
7833 /* 22493 */ // Combiner Rule #81: binop_right_undef_to_undef; wip_match_opcode 'G_LSHR'
7834 /* 22493 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
7835 /* 22496 */ // Label 357: @22496
7836 /* 22496 */ GIM_Try, /*On fail goto*//*Label 358*/ GIMT_Encode4(22507), // Rule ID 227 //
7837 /* 22501 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
7838 /* 22504 */ // Combiner Rule #173: shift_immed_chain; wip_match_opcode 'G_LSHR'
7839 /* 22504 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
7840 /* 22507 */ // Label 358: @22507
7841 /* 22507 */ GIM_Try, /*On fail goto*//*Label 359*/ GIMT_Encode4(22518), // Rule ID 232 //
7842 /* 22512 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
7843 /* 22515 */ // Combiner Rule #174: shift_of_shifted_logic_chain; wip_match_opcode 'G_LSHR'
7844 /* 22515 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
7845 /* 22518 */ // Label 359: @22518
7846 /* 22518 */ GIM_Try, /*On fail goto*//*Label 360*/ GIMT_Encode4(22529), // Rule ID 257 //
7847 /* 22523 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule189Enabled),
7848 /* 22526 */ // Combiner Rule #189: bitfield_extract_from_shr; wip_match_opcode 'G_LSHR'
7849 /* 22526 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
7850 /* 22529 */ // Label 360: @22529
7851 /* 22529 */ GIM_Try, /*On fail goto*//*Label 361*/ GIMT_Encode4(22540), // Rule ID 259 //
7852 /* 22534 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
7853 /* 22537 */ // Combiner Rule #190: bitfield_extract_from_shr_and; wip_match_opcode 'G_LSHR'
7854 /* 22537 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7855 /* 22540 */ // Label 361: @22540
7856 /* 22540 */ GIM_Try, /*On fail goto*//*Label 362*/ GIMT_Encode4(22551), // Rule ID 264 //
7857 /* 22545 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
7858 /* 22548 */ // Combiner Rule #191: constant_fold_binop; wip_match_opcode 'G_LSHR'
7859 /* 22548 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
7860 /* 22551 */ // Label 362: @22551
7861 /* 22551 */ GIM_Try, /*On fail goto*//*Label 363*/ GIMT_Encode4(22562), // Rule ID 330 //
7862 /* 22556 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
7863 /* 22559 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_LSHR'
7864 /* 22559 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
7865 /* 22562 */ // Label 363: @22562
7866 /* 22562 */ GIM_Try, /*On fail goto*//*Label 364*/ GIMT_Encode4(22651), // Rule ID 438 //
7867 /* 22567 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule269Enabled),
7868 /* 22570 */ // MIs[0] dst
7869 /* 22570 */ // No operand predicates
7870 /* 22570 */ // MIs[0] sum
7871 /* 22570 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7872 /* 22574 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
7873 /* 22578 */ // MIs[1] inner
7874 /* 22578 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7875 /* 22582 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
7876 /* 22586 */ // MIs[2] ext1
7877 /* 22586 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
7878 /* 22590 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
7879 /* 22594 */ // MIs[3] x
7880 /* 22594 */ GIM_RecordRegType, /*MI*/3, /*Op*/1, /*TempTypeIdx*/255,
7881 /* 22598 */ // MIs[2] ext2
7882 /* 22598 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/4, /*MI*/2, /*OpIdx*/2, // MIs[4]
7883 /* 22602 */ GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_ZEXT),
7884 /* 22606 */ // MIs[4] y
7885 /* 22606 */ // No operand predicates
7886 /* 22606 */ // MIs[1] Operand 2
7887 /* 22606 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
7888 /* 22610 */ // MIs[0] Operand 2
7889 /* 22610 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
7890 /* 22614 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner23),
7891 /* 22618 */ GIM_CheckIsSafeToFold, /*NumInsns*/4,
7892 /* 22620 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7893 /* 22623 */ // Combiner Rule #269: avgceil_u_match
7894 /* 22623 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UAVGCEIL),
7895 /* 22626 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7896 /* 22631 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // x
7897 /* 22635 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // y
7898 /* 22639 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
7899 /* 22643 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
7900 /* 22647 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7901 /* 22650 */ GIR_EraseRootFromParent_Done,
7902 /* 22651 */ // Label 364: @22651
7903 /* 22651 */ GIM_Try, /*On fail goto*//*Label 365*/ GIMT_Encode4(22728), // Rule ID 436 //
7904 /* 22656 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule267Enabled),
7905 /* 22659 */ // MIs[0] dst
7906 /* 22659 */ // No operand predicates
7907 /* 22659 */ // MIs[0] sum
7908 /* 22659 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7909 /* 22663 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
7910 /* 22667 */ // MIs[1] ext1
7911 /* 22667 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7912 /* 22671 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
7913 /* 22675 */ // MIs[2] x
7914 /* 22675 */ GIM_RecordRegType, /*MI*/2, /*Op*/1, /*TempTypeIdx*/255,
7915 /* 22679 */ // MIs[1] ext2
7916 /* 22679 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
7917 /* 22683 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
7918 /* 22687 */ // MIs[3] y
7919 /* 22687 */ // No operand predicates
7920 /* 22687 */ // MIs[0] Operand 2
7921 /* 22687 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
7922 /* 22691 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner21),
7923 /* 22695 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
7924 /* 22697 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7925 /* 22700 */ // Combiner Rule #267: avgfloor_u_match
7926 /* 22700 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UAVGFLOOR),
7927 /* 22703 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7928 /* 22708 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // x
7929 /* 22712 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // y
7930 /* 22716 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
7931 /* 22720 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
7932 /* 22724 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7933 /* 22727 */ GIR_EraseRootFromParent_Done,
7934 /* 22728 */ // Label 365: @22728
7935 /* 22728 */ GIM_Try, /*On fail goto*//*Label 366*/ GIMT_Encode4(22757), // Rule ID 421 //
7936 /* 22733 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule255Enabled),
7937 /* 22736 */ // MIs[0] dst
7938 /* 22736 */ // No operand predicates
7939 /* 22736 */ // MIs[0] d2
7940 /* 22736 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7941 /* 22740 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
7942 /* 22744 */ // MIs[1] d1
7943 /* 22744 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7944 /* 22748 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
7945 /* 22752 */ // MIs[2] x
7946 /* 22752 */ // No operand predicates
7947 /* 22752 */ // MIs[2] y
7948 /* 22752 */ // No operand predicates
7949 /* 22752 */ // MIs[0] z
7950 /* 22752 */ // No operand predicates
7951 /* 22752 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7952 /* 22754 */ // Combiner Rule #255: lshr_of_trunc_of_lshr
7953 /* 22754 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner157),
7954 /* 22757 */ // Label 366: @22757
7955 /* 22757 */ GIM_Try, /*On fail goto*//*Label 367*/ GIMT_Encode4(22797), // Rule ID 125 //
7956 /* 22762 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
7957 /* 22765 */ // MIs[0] dst
7958 /* 22765 */ // No operand predicates
7959 /* 22765 */ // MIs[0] zero
7960 /* 22765 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7961 /* 22769 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7962 /* 22773 */ // MIs[1] Operand 1
7963 /* 22773 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
7964 /* 22784 */ // MIs[0] rhs
7965 /* 22784 */ // No operand predicates
7966 /* 22784 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7967 /* 22789 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7968 /* 22791 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[1]]
7969 /* 22791 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7970 /* 22796 */ GIR_EraseRootFromParent_Done,
7971 /* 22797 */ // Label 367: @22797
7972 /* 22797 */ GIM_Try, /*On fail goto*//*Label 368*/ GIMT_Encode4(22820), // Rule ID 116 //
7973 /* 22802 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
7974 /* 22805 */ // MIs[0] dst
7975 /* 22805 */ // No operand predicates
7976 /* 22805 */ // MIs[0] lhs
7977 /* 22805 */ // No operand predicates
7978 /* 22805 */ // MIs[0] Operand 2
7979 /* 22805 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7980 /* 22809 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7981 /* 22814 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[6]]
7982 /* 22814 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7983 /* 22819 */ GIR_EraseRootFromParent_Done,
7984 /* 22820 */ // Label 368: @22820
7985 /* 22820 */ GIM_Try, /*On fail goto*//*Label 369*/ GIMT_Encode4(22831), // Rule ID 158 //
7986 /* 22825 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
7987 /* 22828 */ // MIs[0] root
7988 /* 22828 */ // No operand predicates
7989 /* 22828 */ // MIs[0] mi.shifted
7990 /* 22828 */ // No operand predicates
7991 /* 22828 */ // MIs[0] mi.amt
7992 /* 22828 */ // No operand predicates
7993 /* 22828 */ // Combiner Rule #114: shifts_too_big @ [mi[2]]
7994 /* 22828 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
7995 /* 22831 */ // Label 369: @22831
7996 /* 22831 */ GIM_Reject,
7997 /* 22832 */ // Label 37: @22832
7998 /* 22832 */ GIM_Try, /*On fail goto*//*Label 370*/ GIMT_Encode4(22843), // Rule ID 90 //
7999 /* 22837 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
8000 /* 22840 */ // Combiner Rule #81: binop_right_undef_to_undef; wip_match_opcode 'G_ASHR'
8001 /* 22840 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
8002 /* 22843 */ // Label 370: @22843
8003 /* 22843 */ GIM_Try, /*On fail goto*//*Label 371*/ GIMT_Encode4(22854), // Rule ID 169 //
8004 /* 22848 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule125Enabled),
8005 /* 22851 */ // Combiner Rule #125: shl_ashr_to_sext_inreg; wip_match_opcode 'G_ASHR'
8006 /* 22851 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner64),
8007 /* 22854 */ // Label 371: @22854
8008 /* 22854 */ GIM_Try, /*On fail goto*//*Label 372*/ GIMT_Encode4(22865), // Rule ID 226 //
8009 /* 22859 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
8010 /* 22862 */ // Combiner Rule #173: shift_immed_chain; wip_match_opcode 'G_ASHR'
8011 /* 22862 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
8012 /* 22865 */ // Label 372: @22865
8013 /* 22865 */ GIM_Try, /*On fail goto*//*Label 373*/ GIMT_Encode4(22876), // Rule ID 231 //
8014 /* 22870 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
8015 /* 22873 */ // Combiner Rule #174: shift_of_shifted_logic_chain; wip_match_opcode 'G_ASHR'
8016 /* 22873 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
8017 /* 22876 */ // Label 373: @22876
8018 /* 22876 */ GIM_Try, /*On fail goto*//*Label 374*/ GIMT_Encode4(22887), // Rule ID 256 //
8019 /* 22881 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule189Enabled),
8020 /* 22884 */ // Combiner Rule #189: bitfield_extract_from_shr; wip_match_opcode 'G_ASHR'
8021 /* 22884 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
8022 /* 22887 */ // Label 374: @22887
8023 /* 22887 */ GIM_Try, /*On fail goto*//*Label 375*/ GIMT_Encode4(22898), // Rule ID 258 //
8024 /* 22892 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
8025 /* 22895 */ // Combiner Rule #190: bitfield_extract_from_shr_and; wip_match_opcode 'G_ASHR'
8026 /* 22895 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
8027 /* 22898 */ // Label 375: @22898
8028 /* 22898 */ GIM_Try, /*On fail goto*//*Label 376*/ GIMT_Encode4(22909), // Rule ID 263 //
8029 /* 22903 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
8030 /* 22906 */ // Combiner Rule #191: constant_fold_binop; wip_match_opcode 'G_ASHR'
8031 /* 22906 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
8032 /* 22909 */ // Label 376: @22909
8033 /* 22909 */ GIM_Try, /*On fail goto*//*Label 377*/ GIMT_Encode4(22920), // Rule ID 331 //
8034 /* 22914 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
8035 /* 22917 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_ASHR'
8036 /* 22917 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
8037 /* 22920 */ // Label 377: @22920
8038 /* 22920 */ GIM_Try, /*On fail goto*//*Label 378*/ GIMT_Encode4(23009), // Rule ID 439 //
8039 /* 22925 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule270Enabled),
8040 /* 22928 */ // MIs[0] dst
8041 /* 22928 */ // No operand predicates
8042 /* 22928 */ // MIs[0] sum
8043 /* 22928 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8044 /* 22932 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
8045 /* 22936 */ // MIs[1] inner
8046 /* 22936 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8047 /* 22940 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
8048 /* 22944 */ // MIs[2] ext1
8049 /* 22944 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
8050 /* 22948 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_SEXT),
8051 /* 22952 */ // MIs[3] x
8052 /* 22952 */ GIM_RecordRegType, /*MI*/3, /*Op*/1, /*TempTypeIdx*/255,
8053 /* 22956 */ // MIs[2] ext2
8054 /* 22956 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/4, /*MI*/2, /*OpIdx*/2, // MIs[4]
8055 /* 22960 */ GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_SEXT),
8056 /* 22964 */ // MIs[4] y
8057 /* 22964 */ // No operand predicates
8058 /* 22964 */ // MIs[1] Operand 2
8059 /* 22964 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
8060 /* 22968 */ // MIs[0] Operand 2
8061 /* 22968 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
8062 /* 22972 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner24),
8063 /* 22976 */ GIM_CheckIsSafeToFold, /*NumInsns*/4,
8064 /* 22978 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8065 /* 22981 */ // Combiner Rule #270: avgceil_s_match
8066 /* 22981 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SAVGCEIL),
8067 /* 22984 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8068 /* 22989 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // x
8069 /* 22993 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // y
8070 /* 22997 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
8071 /* 23001 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
8072 /* 23005 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
8073 /* 23008 */ GIR_EraseRootFromParent_Done,
8074 /* 23009 */ // Label 378: @23009
8075 /* 23009 */ GIM_Try, /*On fail goto*//*Label 379*/ GIMT_Encode4(23086), // Rule ID 437 //
8076 /* 23014 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule268Enabled),
8077 /* 23017 */ // MIs[0] dst
8078 /* 23017 */ // No operand predicates
8079 /* 23017 */ // MIs[0] sum
8080 /* 23017 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8081 /* 23021 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
8082 /* 23025 */ // MIs[1] ext1
8083 /* 23025 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8084 /* 23029 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
8085 /* 23033 */ // MIs[2] x
8086 /* 23033 */ GIM_RecordRegType, /*MI*/2, /*Op*/1, /*TempTypeIdx*/255,
8087 /* 23037 */ // MIs[1] ext2
8088 /* 23037 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
8089 /* 23041 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_SEXT),
8090 /* 23045 */ // MIs[3] y
8091 /* 23045 */ // No operand predicates
8092 /* 23045 */ // MIs[0] Operand 2
8093 /* 23045 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
8094 /* 23049 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner22),
8095 /* 23053 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
8096 /* 23055 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8097 /* 23058 */ // Combiner Rule #268: avgfloor_s_match
8098 /* 23058 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SAVGFLOOR),
8099 /* 23061 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8100 /* 23066 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // x
8101 /* 23070 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // y
8102 /* 23074 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
8103 /* 23078 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
8104 /* 23082 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
8105 /* 23085 */ GIR_EraseRootFromParent_Done,
8106 /* 23086 */ // Label 379: @23086
8107 /* 23086 */ GIM_Try, /*On fail goto*//*Label 380*/ GIMT_Encode4(23126), // Rule ID 126 //
8108 /* 23091 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
8109 /* 23094 */ // MIs[0] dst
8110 /* 23094 */ // No operand predicates
8111 /* 23094 */ // MIs[0] zero
8112 /* 23094 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8113 /* 23098 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8114 /* 23102 */ // MIs[1] Operand 1
8115 /* 23102 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
8116 /* 23113 */ // MIs[0] rhs
8117 /* 23113 */ // No operand predicates
8118 /* 23113 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8119 /* 23118 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8120 /* 23120 */ // Combiner Rule #93: binop_left_to_zero @ [__binop_left_to_zero_match_0[2]]
8121 /* 23120 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8122 /* 23125 */ GIR_EraseRootFromParent_Done,
8123 /* 23126 */ // Label 380: @23126
8124 /* 23126 */ GIM_Try, /*On fail goto*//*Label 381*/ GIMT_Encode4(23149), // Rule ID 115 //
8125 /* 23131 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
8126 /* 23134 */ // MIs[0] dst
8127 /* 23134 */ // No operand predicates
8128 /* 23134 */ // MIs[0] lhs
8129 /* 23134 */ // No operand predicates
8130 /* 23134 */ // MIs[0] Operand 2
8131 /* 23134 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
8132 /* 23138 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8133 /* 23143 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[5]]
8134 /* 23143 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8135 /* 23148 */ GIR_EraseRootFromParent_Done,
8136 /* 23149 */ // Label 381: @23149
8137 /* 23149 */ GIM_Try, /*On fail goto*//*Label 382*/ GIMT_Encode4(23160), // Rule ID 157 //
8138 /* 23154 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
8139 /* 23157 */ // MIs[0] root
8140 /* 23157 */ // No operand predicates
8141 /* 23157 */ // MIs[0] mi.shifted
8142 /* 23157 */ // No operand predicates
8143 /* 23157 */ // MIs[0] mi.amt
8144 /* 23157 */ // No operand predicates
8145 /* 23157 */ // Combiner Rule #114: shifts_too_big @ [mi[1]]
8146 /* 23157 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
8147 /* 23160 */ // Label 382: @23160
8148 /* 23160 */ GIM_Reject,
8149 /* 23161 */ // Label 38: @23161
8150 /* 23161 */ GIM_Try, /*On fail goto*//*Label 383*/ GIMT_Encode4(23172), // Rule ID 241 //
8151 /* 23166 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
8152 /* 23169 */ // Combiner Rule #178: funnel_shift_to_rotate; wip_match_opcode 'G_FSHL'
8153 /* 23169 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
8154 /* 23172 */ // Label 383: @23172
8155 /* 23172 */ GIM_Try, /*On fail goto*//*Label 384*/ GIMT_Encode4(23183), // Rule ID 245 //
8156 /* 23177 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
8157 /* 23180 */ // Combiner Rule #181: funnel_shift_overshift; wip_match_opcode 'G_FSHL'
8158 /* 23180 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
8159 /* 23183 */ // Label 384: @23183
8160 /* 23183 */ GIM_Try, /*On fail goto*//*Label 385*/ GIMT_Encode4(23203), // Rule ID 244 //
8161 /* 23188 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
8162 /* 23191 */ // MIs[0] x
8163 /* 23191 */ // No operand predicates
8164 /* 23191 */ // MIs[0] y
8165 /* 23191 */ // No operand predicates
8166 /* 23191 */ // MIs[0] z
8167 /* 23191 */ // No operand predicates
8168 /* 23191 */ // MIs[0] Operand 3
8169 /* 23191 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
8170 /* 23195 */ // Combiner Rule #180: funnel_shift_left_zero
8171 /* 23195 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8172 /* 23198 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
8173 /* 23200 */ GIR_RootToRootCopy, /*OpIdx*/1, // y
8174 /* 23202 */ GIR_EraseRootFromParent_Done,
8175 /* 23203 */ // Label 385: @23203
8176 /* 23203 */ GIM_Reject,
8177 /* 23204 */ // Label 39: @23204
8178 /* 23204 */ GIM_Try, /*On fail goto*//*Label 386*/ GIMT_Encode4(23215), // Rule ID 242 //
8179 /* 23209 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
8180 /* 23212 */ // Combiner Rule #178: funnel_shift_to_rotate; wip_match_opcode 'G_FSHR'
8181 /* 23212 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
8182 /* 23215 */ // Label 386: @23215
8183 /* 23215 */ GIM_Try, /*On fail goto*//*Label 387*/ GIMT_Encode4(23226), // Rule ID 246 //
8184 /* 23220 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
8185 /* 23223 */ // Combiner Rule #181: funnel_shift_overshift; wip_match_opcode 'G_FSHR'
8186 /* 23223 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
8187 /* 23226 */ // Label 387: @23226
8188 /* 23226 */ GIM_Try, /*On fail goto*//*Label 388*/ GIMT_Encode4(23246), // Rule ID 243 //
8189 /* 23231 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
8190 /* 23234 */ // MIs[0] x
8191 /* 23234 */ // No operand predicates
8192 /* 23234 */ // MIs[0] y
8193 /* 23234 */ // No operand predicates
8194 /* 23234 */ // MIs[0] z
8195 /* 23234 */ // No operand predicates
8196 /* 23234 */ // MIs[0] Operand 3
8197 /* 23234 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
8198 /* 23238 */ // Combiner Rule #179: funnel_shift_right_zero
8199 /* 23238 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
8200 /* 23241 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
8201 /* 23243 */ GIR_RootToRootCopy, /*OpIdx*/2, // z
8202 /* 23245 */ GIR_EraseRootFromParent_Done,
8203 /* 23246 */ // Label 388: @23246
8204 /* 23246 */ GIM_Reject,
8205 /* 23247 */ // Label 40: @23247
8206 /* 23247 */ GIM_Try, /*On fail goto*//*Label 389*/ GIMT_Encode4(23270), // Rule ID 119 //
8207 /* 23252 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
8208 /* 23255 */ // MIs[0] dst
8209 /* 23255 */ // No operand predicates
8210 /* 23255 */ // MIs[0] lhs
8211 /* 23255 */ // No operand predicates
8212 /* 23255 */ // MIs[0] Operand 2
8213 /* 23255 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
8214 /* 23259 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8215 /* 23264 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[9]]
8216 /* 23264 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8217 /* 23269 */ GIR_EraseRootFromParent_Done,
8218 /* 23270 */ // Label 389: @23270
8219 /* 23270 */ GIM_Reject,
8220 /* 23271 */ // Label 41: @23271
8221 /* 23271 */ GIM_Try, /*On fail goto*//*Label 390*/ GIMT_Encode4(23294), // Rule ID 118 //
8222 /* 23276 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
8223 /* 23279 */ // MIs[0] dst
8224 /* 23279 */ // No operand predicates
8225 /* 23279 */ // MIs[0] lhs
8226 /* 23279 */ // No operand predicates
8227 /* 23279 */ // MIs[0] Operand 2
8228 /* 23279 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
8229 /* 23283 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8230 /* 23288 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[8]]
8231 /* 23288 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8232 /* 23293 */ GIR_EraseRootFromParent_Done,
8233 /* 23294 */ // Label 390: @23294
8234 /* 23294 */ GIM_Reject,
8235 /* 23295 */ // Label 42: @23295
8236 /* 23295 */ GIM_Try, /*On fail goto*//*Label 391*/ GIMT_Encode4(23306), // Rule ID 164 //
8237 /* 23300 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule120Enabled),
8238 /* 23303 */ // Combiner Rule #120: icmp_to_true_false_known_bits; wip_match_opcode 'G_ICMP'
8239 /* 23303 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner61),
8240 /* 23306 */ // Label 391: @23306
8241 /* 23306 */ GIM_Try, /*On fail goto*//*Label 392*/ GIMT_Encode4(23317), // Rule ID 165 //
8242 /* 23311 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
8243 /* 23314 */ // Combiner Rule #121: icmp_to_lhs_known_bits; wip_match_opcode 'G_ICMP'
8244 /* 23314 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner62),
8245 /* 23317 */ // Label 392: @23317
8246 /* 23317 */ GIM_Try, /*On fail goto*//*Label 393*/ GIMT_Encode4(23328), // Rule ID 168 //
8247 /* 23322 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule124Enabled),
8248 /* 23325 */ // Combiner Rule #124: redundant_binop_in_equality; wip_match_opcode 'G_ICMP'
8249 /* 23325 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
8250 /* 23328 */ // Label 393: @23328
8251 /* 23328 */ GIM_Try, /*On fail goto*//*Label 394*/ GIMT_Encode4(23339), // Rule ID 162 //
8252 /* 23333 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
8253 /* 23336 */ // MIs[0] root
8254 /* 23336 */ // No operand predicates
8255 /* 23336 */ // MIs[0] pred
8256 /* 23336 */ // No operand predicates
8257 /* 23336 */ // MIs[0] lhs
8258 /* 23336 */ // No operand predicates
8259 /* 23336 */ // MIs[0] rhs
8260 /* 23336 */ // No operand predicates
8261 /* 23336 */ // Combiner Rule #118: canonicalize_icmp
8262 /* 23336 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner59),
8263 /* 23339 */ // Label 394: @23339
8264 /* 23339 */ GIM_Reject,
8265 /* 23340 */ // Label 43: @23340
8266 /* 23340 */ GIM_Try, /*On fail goto*//*Label 395*/ GIMT_Encode4(23351), // Rule ID 163 //
8267 /* 23345 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
8268 /* 23348 */ // MIs[0] root
8269 /* 23348 */ // No operand predicates
8270 /* 23348 */ // MIs[0] pred
8271 /* 23348 */ // No operand predicates
8272 /* 23348 */ // MIs[0] lhs
8273 /* 23348 */ // No operand predicates
8274 /* 23348 */ // MIs[0] rhs
8275 /* 23348 */ // No operand predicates
8276 /* 23348 */ // Combiner Rule #119: canonicalize_fcmp
8277 /* 23348 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner60),
8278 /* 23351 */ // Label 395: @23351
8279 /* 23351 */ GIM_Reject,
8280 /* 23352 */ // Label 44: @23352
8281 /* 23352 */ GIM_Try, /*On fail goto*//*Label 396*/ GIMT_Encode4(23363), // Rule ID 109 //
8282 /* 23357 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
8283 /* 23360 */ // Combiner Rule #89: select_same_val; wip_match_opcode 'G_SELECT'
8284 /* 23360 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner44),
8285 /* 23363 */ // Label 396: @23363
8286 /* 23363 */ GIM_Try, /*On fail goto*//*Label 397*/ GIMT_Encode4(23374), // Rule ID 175 //
8287 /* 23368 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled),
8288 /* 23371 */ // Combiner Rule #131: select_constant_cmp; wip_match_opcode 'G_SELECT'
8289 /* 23371 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner68),
8290 /* 23374 */ // Label 397: @23374
8291 /* 23374 */ GIM_Try, /*On fail goto*//*Label 398*/ GIMT_Encode4(23385), // Rule ID 177 //
8292 /* 23379 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule133Enabled),
8293 /* 23382 */ // Combiner Rule #133: match_selects; wip_match_opcode 'G_SELECT'
8294 /* 23382 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
8295 /* 23385 */ // Label 398: @23385
8296 /* 23385 */ GIM_Try, /*On fail goto*//*Label 399*/ GIMT_Encode4(23396), // Rule ID 355 //
8297 /* 23390 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule218Enabled),
8298 /* 23393 */ // Combiner Rule #218: select_to_minmax; wip_match_opcode 'G_SELECT'
8299 /* 23393 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
8300 /* 23396 */ // Label 399: @23396
8301 /* 23396 */ GIM_Try_CheckFeatures, /*On fail goto*//*Label 400*/ GIMT_Encode4(23422), GIMT_Encode2(GIFBS_HasFminFmaxLegacy), // Rule ID 444 //
8302 /* 23403 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule272Enabled),
8303 /* 23406 */ GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_f32,
8304 /* 23409 */ // MIs[0] cond
8305 /* 23409 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8306 /* 23413 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCMP),
8307 /* 23417 */ // MIs[1] pred
8308 /* 23417 */ // No operand predicates
8309 /* 23417 */ // MIs[1] lhs
8310 /* 23417 */ // No operand predicates
8311 /* 23417 */ // MIs[1] rhs
8312 /* 23417 */ // No operand predicates
8313 /* 23417 */ // MIs[0] true
8314 /* 23417 */ // No operand predicates
8315 /* 23417 */ // MIs[0] false
8316 /* 23417 */ // No operand predicates
8317 /* 23417 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8318 /* 23419 */ // Combiner Rule #272: fcmp_select_to_fmin_fmax_legacy
8319 /* 23419 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner161),
8320 /* 23422 */ // Label 400: @23422
8321 /* 23422 */ GIM_Try, /*On fail goto*//*Label 401*/ GIMT_Encode4(23471), // Rule ID 178 //
8322 /* 23427 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule134Enabled),
8323 /* 23430 */ // MIs[0] dst
8324 /* 23430 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
8325 /* 23434 */ // MIs[0] c
8326 /* 23434 */ // No operand predicates
8327 /* 23434 */ // MIs[0] x
8328 /* 23434 */ // No operand predicates
8329 /* 23434 */ // MIs[0] Operand 3
8330 /* 23434 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
8331 /* 23438 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
8332 /* 23442 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8333 /* 23445 */ // Combiner Rule #134: select_zero_false
8334 /* 23445 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FREEZE),
8335 /* 23448 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8336 /* 23453 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
8337 /* 23455 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
8338 /* 23459 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
8339 /* 23463 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // c
8340 /* 23467 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
8341 /* 23470 */ GIR_EraseRootFromParent_Done,
8342 /* 23471 */ // Label 401: @23471
8343 /* 23471 */ GIM_Try, /*On fail goto*//*Label 402*/ GIMT_Encode4(23492), // Rule ID 176 //
8344 /* 23476 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled),
8345 /* 23479 */ // MIs[0] root
8346 /* 23479 */ // No operand predicates
8347 /* 23479 */ // MIs[0] tst
8348 /* 23479 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8349 /* 23483 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
8350 /* 23487 */ // MIs[1] tst1
8351 /* 23487 */ // No operand predicates
8352 /* 23487 */ // MIs[1] a
8353 /* 23487 */ // No operand predicates
8354 /* 23487 */ // MIs[1] b
8355 /* 23487 */ // No operand predicates
8356 /* 23487 */ // MIs[0] x
8357 /* 23487 */ // No operand predicates
8358 /* 23487 */ // MIs[0] y
8359 /* 23487 */ // No operand predicates
8360 /* 23487 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8361 /* 23489 */ // Combiner Rule #132: select_to_iminmax
8362 /* 23489 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
8363 /* 23492 */ // Label 402: @23492
8364 /* 23492 */ GIM_Try, /*On fail goto*//*Label 403*/ GIMT_Encode4(23528), // Rule ID 179 //
8365 /* 23497 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule135Enabled),
8366 /* 23500 */ // MIs[0] dst
8367 /* 23500 */ // No operand predicates
8368 /* 23500 */ // MIs[0] c
8369 /* 23500 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8370 /* 23504 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
8371 /* 23508 */ // MIs[1] src
8372 /* 23508 */ // No operand predicates
8373 /* 23508 */ // MIs[1] Operand 2
8374 /* 23508 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 255,
8375 /* 23512 */ // MIs[0] x
8376 /* 23512 */ // No operand predicates
8377 /* 23512 */ // MIs[0] y
8378 /* 23512 */ // No operand predicates
8379 /* 23512 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8380 /* 23514 */ // Combiner Rule #135: select_not
8381 /* 23514 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SELECT),
8382 /* 23517 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8383 /* 23519 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
8384 /* 23523 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
8385 /* 23525 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
8386 /* 23527 */ GIR_EraseRootFromParent_Done,
8387 /* 23528 */ // Label 403: @23528
8388 /* 23528 */ GIM_Try, /*On fail goto*//*Label 404*/ GIMT_Encode4(23557), // Rule ID 174 //
8389 /* 23533 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule130Enabled),
8390 /* 23536 */ // MIs[0] dst
8391 /* 23536 */ // No operand predicates
8392 /* 23536 */ // MIs[0] undef
8393 /* 23536 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8394 /* 23540 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8395 /* 23544 */ // MIs[0] x
8396 /* 23544 */ // No operand predicates
8397 /* 23544 */ // MIs[0] y
8398 /* 23544 */ // No operand predicates
8399 /* 23544 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
8400 /* 23549 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8401 /* 23551 */ // Combiner Rule #130: select_undef_cmp
8402 /* 23551 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
8403 /* 23556 */ GIR_EraseRootFromParent_Done,
8404 /* 23557 */ // Label 404: @23557
8405 /* 23557 */ GIM_Reject,
8406 /* 23558 */ // Label 45: @23558
8407 /* 23558 */ GIM_Try, /*On fail goto*//*Label 405*/ GIMT_Encode4(23569), // Rule ID 366 //
8408 /* 23563 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
8409 /* 23566 */ // Combiner Rule #220: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDO'
8410 /* 23566 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8411 /* 23569 */ // Label 405: @23569
8412 /* 23569 */ GIM_Try, /*On fail goto*//*Label 406*/ GIMT_Encode4(23580), // Rule ID 414 //
8413 /* 23574 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule249Enabled),
8414 /* 23577 */ // Combiner Rule #249: match_addos; wip_match_opcode 'G_UADDO'
8415 /* 23577 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
8416 /* 23580 */ // Label 406: @23580
8417 /* 23580 */ GIM_Reject,
8418 /* 23581 */ // Label 46: @23581
8419 /* 23581 */ GIM_Try, /*On fail goto*//*Label 407*/ GIMT_Encode4(23592), // Rule ID 214 //
8420 /* 23586 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
8421 /* 23589 */ // Combiner Rule #168: adde_to_addo; wip_match_opcode 'G_UADDE'
8422 /* 23589 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
8423 /* 23592 */ // Label 407: @23592
8424 /* 23592 */ GIM_Reject,
8425 /* 23593 */ // Label 47: @23593
8426 /* 23593 */ GIM_Try, /*On fail goto*//*Label 408*/ GIMT_Encode4(23604), // Rule ID 416 //
8427 /* 23598 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule250Enabled),
8428 /* 23601 */ // Combiner Rule #250: match_subo_no_overflow; wip_match_opcode 'G_USUBO'
8429 /* 23601 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner154),
8430 /* 23604 */ // Label 408: @23604
8431 /* 23604 */ GIM_Reject,
8432 /* 23605 */ // Label 48: @23605
8433 /* 23605 */ GIM_Try, /*On fail goto*//*Label 409*/ GIMT_Encode4(23616), // Rule ID 216 //
8434 /* 23610 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
8435 /* 23613 */ // Combiner Rule #168: adde_to_addo; wip_match_opcode 'G_USUBE'
8436 /* 23613 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
8437 /* 23616 */ // Label 409: @23616
8438 /* 23616 */ GIM_Reject,
8439 /* 23617 */ // Label 49: @23617
8440 /* 23617 */ GIM_Try, /*On fail goto*//*Label 410*/ GIMT_Encode4(23628), // Rule ID 367 //
8441 /* 23622 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
8442 /* 23625 */ // Combiner Rule #220: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDO'
8443 /* 23625 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8444 /* 23628 */ // Label 410: @23628
8445 /* 23628 */ GIM_Try, /*On fail goto*//*Label 411*/ GIMT_Encode4(23639), // Rule ID 413 //
8446 /* 23633 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule249Enabled),
8447 /* 23636 */ // Combiner Rule #249: match_addos; wip_match_opcode 'G_SADDO'
8448 /* 23636 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
8449 /* 23639 */ // Label 411: @23639
8450 /* 23639 */ GIM_Reject,
8451 /* 23640 */ // Label 50: @23640
8452 /* 23640 */ GIM_Try, /*On fail goto*//*Label 412*/ GIMT_Encode4(23651), // Rule ID 215 //
8453 /* 23645 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
8454 /* 23648 */ // Combiner Rule #168: adde_to_addo; wip_match_opcode 'G_SADDE'
8455 /* 23648 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
8456 /* 23651 */ // Label 412: @23651
8457 /* 23651 */ GIM_Reject,
8458 /* 23652 */ // Label 51: @23652
8459 /* 23652 */ GIM_Try, /*On fail goto*//*Label 413*/ GIMT_Encode4(23663), // Rule ID 415 //
8460 /* 23657 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule250Enabled),
8461 /* 23660 */ // Combiner Rule #250: match_subo_no_overflow; wip_match_opcode 'G_SSUBO'
8462 /* 23660 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner154),
8463 /* 23663 */ // Label 413: @23663
8464 /* 23663 */ GIM_Reject,
8465 /* 23664 */ // Label 52: @23664
8466 /* 23664 */ GIM_Try, /*On fail goto*//*Label 414*/ GIMT_Encode4(23675), // Rule ID 217 //
8467 /* 23669 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
8468 /* 23672 */ // Combiner Rule #168: adde_to_addo; wip_match_opcode 'G_SSUBE'
8469 /* 23672 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
8470 /* 23675 */ // Label 414: @23675
8471 /* 23675 */ GIM_Reject,
8472 /* 23676 */ // Label 53: @23676
8473 /* 23676 */ GIM_Try, /*On fail goto*//*Label 415*/ GIMT_Encode4(23687), // Rule ID 210 //
8474 /* 23681 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
8475 /* 23684 */ // Combiner Rule #166: mulo_by_2; wip_match_opcode 'G_UMULO'
8476 /* 23684 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
8477 /* 23687 */ // Label 415: @23687
8478 /* 23687 */ GIM_Try, /*On fail goto*//*Label 416*/ GIMT_Encode4(23698), // Rule ID 212 //
8479 /* 23692 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
8480 /* 23695 */ // Combiner Rule #167: mulo_by_0; wip_match_opcode 'G_UMULO'
8481 /* 23695 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
8482 /* 23698 */ // Label 416: @23698
8483 /* 23698 */ GIM_Try, /*On fail goto*//*Label 417*/ GIMT_Encode4(23709), // Rule ID 368 //
8484 /* 23703 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
8485 /* 23706 */ // Combiner Rule #220: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULO'
8486 /* 23706 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8487 /* 23709 */ // Label 417: @23709
8488 /* 23709 */ GIM_Reject,
8489 /* 23710 */ // Label 54: @23710
8490 /* 23710 */ GIM_Try, /*On fail goto*//*Label 418*/ GIMT_Encode4(23721), // Rule ID 211 //
8491 /* 23715 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
8492 /* 23718 */ // Combiner Rule #166: mulo_by_2; wip_match_opcode 'G_SMULO'
8493 /* 23718 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
8494 /* 23721 */ // Label 418: @23721
8495 /* 23721 */ GIM_Try, /*On fail goto*//*Label 419*/ GIMT_Encode4(23732), // Rule ID 213 //
8496 /* 23726 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
8497 /* 23729 */ // Combiner Rule #167: mulo_by_0; wip_match_opcode 'G_SMULO'
8498 /* 23729 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
8499 /* 23732 */ // Label 419: @23732
8500 /* 23732 */ GIM_Try, /*On fail goto*//*Label 420*/ GIMT_Encode4(23743), // Rule ID 369 //
8501 /* 23737 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
8502 /* 23740 */ // Combiner Rule #220: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULO'
8503 /* 23740 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8504 /* 23743 */ // Label 420: @23743
8505 /* 23743 */ GIM_Reject,
8506 /* 23744 */ // Label 55: @23744
8507 /* 23744 */ GIM_Try, /*On fail goto*//*Label 421*/ GIMT_Encode4(23755), // Rule ID 304 //
8508 /* 23749 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
8509 /* 23752 */ // Combiner Rule #197: mulh_to_lshr; wip_match_opcode 'G_UMULH'
8510 /* 23752 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
8511 /* 23755 */ // Label 421: @23755
8512 /* 23755 */ GIM_Try, /*On fail goto*//*Label 422*/ GIMT_Encode4(23766), // Rule ID 370 //
8513 /* 23760 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
8514 /* 23763 */ // Combiner Rule #220: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULH'
8515 /* 23763 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8516 /* 23766 */ // Label 422: @23766
8517 /* 23766 */ GIM_Reject,
8518 /* 23767 */ // Label 56: @23767
8519 /* 23767 */ GIM_Try, /*On fail goto*//*Label 423*/ GIMT_Encode4(23778), // Rule ID 371 //
8520 /* 23772 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
8521 /* 23775 */ // Combiner Rule #220: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULH'
8522 /* 23775 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8523 /* 23778 */ // Label 423: @23778
8524 /* 23778 */ GIM_Reject,
8525 /* 23779 */ // Label 57: @23779
8526 /* 23779 */ GIM_Try, /*On fail goto*//*Label 424*/ GIMT_Encode4(23790), // Rule ID 372 //
8527 /* 23784 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
8528 /* 23787 */ // Combiner Rule #220: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDSAT'
8529 /* 23787 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8530 /* 23790 */ // Label 424: @23790
8531 /* 23790 */ GIM_Reject,
8532 /* 23791 */ // Label 58: @23791
8533 /* 23791 */ GIM_Try, /*On fail goto*//*Label 425*/ GIMT_Encode4(23802), // Rule ID 373 //
8534 /* 23796 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
8535 /* 23799 */ // Combiner Rule #220: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDSAT'
8536 /* 23799 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8537 /* 23802 */ // Label 425: @23802
8538 /* 23802 */ GIM_Reject,
8539 /* 23803 */ // Label 59: @23803
8540 /* 23803 */ GIM_Try, /*On fail goto*//*Label 426*/ GIMT_Encode4(23814), // Rule ID 229 //
8541 /* 23808 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
8542 /* 23811 */ // Combiner Rule #173: shift_immed_chain; wip_match_opcode 'G_USHLSAT'
8543 /* 23811 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
8544 /* 23814 */ // Label 426: @23814
8545 /* 23814 */ GIM_Try, /*On fail goto*//*Label 427*/ GIMT_Encode4(23825), // Rule ID 233 //
8546 /* 23819 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
8547 /* 23822 */ // Combiner Rule #174: shift_of_shifted_logic_chain; wip_match_opcode 'G_USHLSAT'
8548 /* 23822 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
8549 /* 23825 */ // Label 427: @23825
8550 /* 23825 */ GIM_Reject,
8551 /* 23826 */ // Label 60: @23826
8552 /* 23826 */ GIM_Try, /*On fail goto*//*Label 428*/ GIMT_Encode4(23837), // Rule ID 228 //
8553 /* 23831 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
8554 /* 23834 */ // Combiner Rule #173: shift_immed_chain; wip_match_opcode 'G_SSHLSAT'
8555 /* 23834 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
8556 /* 23837 */ // Label 428: @23837
8557 /* 23837 */ GIM_Try, /*On fail goto*//*Label 429*/ GIMT_Encode4(23848), // Rule ID 234 //
8558 /* 23842 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
8559 /* 23845 */ // Combiner Rule #174: shift_of_shifted_logic_chain; wip_match_opcode 'G_SSHLSAT'
8560 /* 23845 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
8561 /* 23848 */ // Label 429: @23848
8562 /* 23848 */ GIM_Reject,
8563 /* 23849 */ // Label 61: @23849
8564 /* 23849 */ GIM_Try, /*On fail goto*//*Label 430*/ GIMT_Encode4(23860), // Rule ID 374 //
8565 /* 23854 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
8566 /* 23857 */ // Combiner Rule #220: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIX'
8567 /* 23857 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8568 /* 23860 */ // Label 430: @23860
8569 /* 23860 */ GIM_Reject,
8570 /* 23861 */ // Label 62: @23861
8571 /* 23861 */ GIM_Try, /*On fail goto*//*Label 431*/ GIMT_Encode4(23872), // Rule ID 375 //
8572 /* 23866 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
8573 /* 23869 */ // Combiner Rule #220: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIX'
8574 /* 23869 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8575 /* 23872 */ // Label 431: @23872
8576 /* 23872 */ GIM_Reject,
8577 /* 23873 */ // Label 63: @23873
8578 /* 23873 */ GIM_Try, /*On fail goto*//*Label 432*/ GIMT_Encode4(23884), // Rule ID 376 //
8579 /* 23878 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
8580 /* 23881 */ // Combiner Rule #220: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIXSAT'
8581 /* 23881 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8582 /* 23884 */ // Label 432: @23884
8583 /* 23884 */ GIM_Reject,
8584 /* 23885 */ // Label 64: @23885
8585 /* 23885 */ GIM_Try, /*On fail goto*//*Label 433*/ GIMT_Encode4(23896), // Rule ID 377 //
8586 /* 23890 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
8587 /* 23893 */ // Combiner Rule #220: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIXSAT'
8588 /* 23893 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
8589 /* 23896 */ // Label 433: @23896
8590 /* 23896 */ GIM_Reject,
8591 /* 23897 */ // Label 65: @23897
8592 /* 23897 */ GIM_Try, /*On fail goto*//*Label 434*/ GIMT_Encode4(23908), // Rule ID 305 //
8593 /* 23902 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
8594 /* 23905 */ // Combiner Rule #198: redundant_neg_operands; wip_match_opcode 'G_FADD'
8595 /* 23905 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
8596 /* 23908 */ // Label 434: @23908
8597 /* 23908 */ GIM_Try, /*On fail goto*//*Label 435*/ GIMT_Encode4(23919), // Rule ID 312 //
8598 /* 23913 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
8599 /* 23916 */ // Combiner Rule #200: combine_fadd_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
8600 /* 23916 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner112),
8601 /* 23919 */ // Label 435: @23919
8602 /* 23919 */ GIM_Try, /*On fail goto*//*Label 436*/ GIMT_Encode4(23930), // Rule ID 313 //
8603 /* 23924 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
8604 /* 23927 */ // Combiner Rule #201: combine_fadd_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
8605 /* 23927 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
8606 /* 23930 */ // Label 436: @23930
8607 /* 23930 */ GIM_Try, /*On fail goto*//*Label 437*/ GIMT_Encode4(23941), // Rule ID 314 //
8608 /* 23935 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule202Enabled),
8609 /* 23938 */ // Combiner Rule #202: combine_fadd_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
8610 /* 23938 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114),
8611 /* 23941 */ // Label 437: @23941
8612 /* 23941 */ GIM_Try, /*On fail goto*//*Label 438*/ GIMT_Encode4(23952), // Rule ID 315 //
8613 /* 23946 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule203Enabled),
8614 /* 23949 */ // Combiner Rule #203: combine_fadd_fpext_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
8615 /* 23949 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner115),
8616 /* 23952 */ // Label 438: @23952
8617 /* 23952 */ GIM_Try, /*On fail goto*//*Label 439*/ GIMT_Encode4(23963), // Rule ID 338 //
8618 /* 23957 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
8619 /* 23960 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_FADD'
8620 /* 23960 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
8621 /* 23963 */ // Label 439: @23963
8622 /* 23963 */ GIM_Try, /*On fail goto*//*Label 440*/ GIMT_Encode4(23974), // Rule ID 378 //
8623 /* 23968 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
8624 /* 23971 */ // Combiner Rule #221: commute_fp_constant_to_rhs; wip_match_opcode 'G_FADD'
8625 /* 23971 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
8626 /* 23974 */ // Label 440: @23974
8627 /* 23974 */ GIM_Try, /*On fail goto*//*Label 441*/ GIMT_Encode4(23997), // Rule ID 148 //
8628 /* 23979 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
8629 /* 23982 */ // MIs[0] dst
8630 /* 23982 */ // No operand predicates
8631 /* 23982 */ // MIs[0] x
8632 /* 23982 */ // No operand predicates
8633 /* 23982 */ // MIs[0] y
8634 /* 23982 */ // No operand predicates
8635 /* 23982 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
8636 /* 23986 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8637 /* 23991 */ // Combiner Rule #108: right_identity_neg_zero_fp
8638 /* 23991 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8639 /* 23996 */ GIR_EraseRootFromParent_Done,
8640 /* 23997 */ // Label 441: @23997
8641 /* 23997 */ GIM_Try, /*On fail goto*//*Label 442*/ GIMT_Encode4(24026), // Rule ID 149 //
8642 /* 24002 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule109Enabled),
8643 /* 24005 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmNsz),
8644 /* 24011 */ // MIs[0] dst
8645 /* 24011 */ // No operand predicates
8646 /* 24011 */ // MIs[0] x
8647 /* 24011 */ // No operand predicates
8648 /* 24011 */ // MIs[0] y
8649 /* 24011 */ // No operand predicates
8650 /* 24011 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
8651 /* 24015 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8652 /* 24020 */ // Combiner Rule #109: right_identity_neg_zero_fp_nsz
8653 /* 24020 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8654 /* 24025 */ GIR_EraseRootFromParent_Done,
8655 /* 24026 */ // Label 442: @24026
8656 /* 24026 */ GIM_Try, /*On fail goto*//*Label 443*/ GIMT_Encode4(24037), // Rule ID 278 //
8657 /* 24031 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
8658 /* 24034 */ // MIs[0] d
8659 /* 24034 */ // No operand predicates
8660 /* 24034 */ // MIs[0] mi.src0
8661 /* 24034 */ // No operand predicates
8662 /* 24034 */ // MIs[0] mi.src1
8663 /* 24034 */ // No operand predicates
8664 /* 24034 */ // Combiner Rule #192: constant_fold_fp_binop @ [mi[0]]
8665 /* 24034 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
8666 /* 24037 */ // Label 443: @24037
8667 /* 24037 */ GIM_Reject,
8668 /* 24038 */ // Label 66: @24038
8669 /* 24038 */ GIM_Try, /*On fail goto*//*Label 444*/ GIMT_Encode4(24049), // Rule ID 306 //
8670 /* 24043 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
8671 /* 24046 */ // Combiner Rule #198: redundant_neg_operands; wip_match_opcode 'G_FSUB'
8672 /* 24046 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
8673 /* 24049 */ // Label 444: @24049
8674 /* 24049 */ GIM_Try, /*On fail goto*//*Label 445*/ GIMT_Encode4(24060), // Rule ID 316 //
8675 /* 24054 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
8676 /* 24057 */ // Combiner Rule #204: combine_fsub_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
8677 /* 24057 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner116),
8678 /* 24060 */ // Label 445: @24060
8679 /* 24060 */ GIM_Try, /*On fail goto*//*Label 446*/ GIMT_Encode4(24071), // Rule ID 317 //
8680 /* 24065 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule205Enabled),
8681 /* 24068 */ // Combiner Rule #205: combine_fsub_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
8682 /* 24068 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner117),
8683 /* 24071 */ // Label 446: @24071
8684 /* 24071 */ GIM_Try, /*On fail goto*//*Label 447*/ GIMT_Encode4(24082), // Rule ID 318 //
8685 /* 24076 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
8686 /* 24079 */ // Combiner Rule #206: combine_fsub_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
8687 /* 24079 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
8688 /* 24082 */ // Label 447: @24082
8689 /* 24082 */ GIM_Try, /*On fail goto*//*Label 448*/ GIMT_Encode4(24093), // Rule ID 319 //
8690 /* 24087 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
8691 /* 24090 */ // Combiner Rule #207: combine_fsub_fpext_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
8692 /* 24090 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
8693 /* 24093 */ // Label 448: @24093
8694 /* 24093 */ GIM_Try, /*On fail goto*//*Label 449*/ GIMT_Encode4(24104), // Rule ID 339 //
8695 /* 24098 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
8696 /* 24101 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_FSUB'
8697 /* 24101 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
8698 /* 24104 */ // Label 449: @24104
8699 /* 24104 */ GIM_Try, /*On fail goto*//*Label 450*/ GIMT_Encode4(24115), // Rule ID 356 //
8700 /* 24109 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule219Enabled),
8701 /* 24112 */ // Combiner Rule #219: fsub_to_fneg; wip_match_opcode 'G_FSUB'
8702 /* 24112 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8703 /* 24115 */ // Label 450: @24115
8704 /* 24115 */ GIM_Try, /*On fail goto*//*Label 451*/ GIMT_Encode4(24126), // Rule ID 279 //
8705 /* 24120 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
8706 /* 24123 */ // MIs[0] d
8707 /* 24123 */ // No operand predicates
8708 /* 24123 */ // MIs[0] mi.src0
8709 /* 24123 */ // No operand predicates
8710 /* 24123 */ // MIs[0] mi.src1
8711 /* 24123 */ // No operand predicates
8712 /* 24123 */ // Combiner Rule #192: constant_fold_fp_binop @ [mi[1]]
8713 /* 24123 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
8714 /* 24126 */ // Label 451: @24126
8715 /* 24126 */ GIM_Reject,
8716 /* 24127 */ // Label 67: @24127
8717 /* 24127 */ GIM_Try, /*On fail goto*//*Label 452*/ GIMT_Encode4(24138), // Rule ID 307 //
8718 /* 24132 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
8719 /* 24135 */ // Combiner Rule #198: redundant_neg_operands; wip_match_opcode 'G_FMUL'
8720 /* 24135 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
8721 /* 24138 */ // Label 452: @24138
8722 /* 24138 */ GIM_Try, /*On fail goto*//*Label 453*/ GIMT_Encode4(24149), // Rule ID 337 //
8723 /* 24143 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
8724 /* 24146 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_FMUL'
8725 /* 24146 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
8726 /* 24149 */ // Label 453: @24149
8727 /* 24149 */ GIM_Try, /*On fail goto*//*Label 454*/ GIMT_Encode4(24160), // Rule ID 379 //
8728 /* 24154 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
8729 /* 24157 */ // Combiner Rule #221: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMUL'
8730 /* 24157 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
8731 /* 24160 */ // Label 454: @24160
8732 /* 24160 */ GIM_Try, /*On fail goto*//*Label 455*/ GIMT_Encode4(24181), // Rule ID 446 //
8733 /* 24165 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule274Enabled),
8734 /* 24168 */ // MIs[0] dst
8735 /* 24168 */ // No operand predicates
8736 /* 24168 */ // MIs[0] x
8737 /* 24168 */ // No operand predicates
8738 /* 24168 */ // MIs[0] select
8739 /* 24168 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8740 /* 24172 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
8741 /* 24176 */ // MIs[1] y
8742 /* 24176 */ // No operand predicates
8743 /* 24176 */ // MIs[1] A
8744 /* 24176 */ // No operand predicates
8745 /* 24176 */ // MIs[1] B
8746 /* 24176 */ // No operand predicates
8747 /* 24176 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8748 /* 24178 */ // Combiner Rule #274: combine_fmul_with_select_to_fldexp
8749 /* 24178 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner163),
8750 /* 24181 */ // Label 455: @24181
8751 /* 24181 */ GIM_Try, /*On fail goto*//*Label 456*/ GIMT_Encode4(24204), // Rule ID 138 //
8752 /* 24186 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule100Enabled),
8753 /* 24189 */ // MIs[0] dst
8754 /* 24189 */ // No operand predicates
8755 /* 24189 */ // MIs[0] x
8756 /* 24189 */ // No operand predicates
8757 /* 24189 */ // MIs[0] y
8758 /* 24189 */ // No operand predicates
8759 /* 24189 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
8760 /* 24193 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8761 /* 24198 */ // Combiner Rule #100: right_identity_one_fp
8762 /* 24198 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8763 /* 24203 */ GIR_EraseRootFromParent_Done,
8764 /* 24204 */ // Label 456: @24204
8765 /* 24204 */ GIM_Try, /*On fail goto*//*Label 457*/ GIMT_Encode4(24224), // Rule ID 150 //
8766 /* 24209 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled),
8767 /* 24212 */ // MIs[0] dst
8768 /* 24212 */ // No operand predicates
8769 /* 24212 */ // MIs[0] x
8770 /* 24212 */ // No operand predicates
8771 /* 24212 */ // MIs[0] y
8772 /* 24212 */ // No operand predicates
8773 /* 24212 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner8),
8774 /* 24216 */ // Combiner Rule #110: right_identity_neg_one_fp
8775 /* 24216 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
8776 /* 24219 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8777 /* 24221 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
8778 /* 24223 */ GIR_EraseRootFromParent_Done,
8779 /* 24224 */ // Label 457: @24224
8780 /* 24224 */ GIM_Try, /*On fail goto*//*Label 458*/ GIMT_Encode4(24235), // Rule ID 280 //
8781 /* 24229 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
8782 /* 24232 */ // MIs[0] d
8783 /* 24232 */ // No operand predicates
8784 /* 24232 */ // MIs[0] mi.src0
8785 /* 24232 */ // No operand predicates
8786 /* 24232 */ // MIs[0] mi.src1
8787 /* 24232 */ // No operand predicates
8788 /* 24232 */ // Combiner Rule #192: constant_fold_fp_binop @ [mi[2]]
8789 /* 24232 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
8790 /* 24235 */ // Label 458: @24235
8791 /* 24235 */ GIM_Reject,
8792 /* 24236 */ // Label 68: @24236
8793 /* 24236 */ GIM_Try, /*On fail goto*//*Label 459*/ GIMT_Encode4(24247), // Rule ID 291 //
8794 /* 24241 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
8795 /* 24244 */ // Combiner Rule #193: constant_fold_fma; wip_match_opcode 'G_FMA'
8796 /* 24244 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
8797 /* 24247 */ // Label 459: @24247
8798 /* 24247 */ GIM_Try, /*On fail goto*//*Label 460*/ GIMT_Encode4(24258), // Rule ID 310 //
8799 /* 24252 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
8800 /* 24255 */ // Combiner Rule #198: redundant_neg_operands; wip_match_opcode 'G_FMA'
8801 /* 24255 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
8802 /* 24258 */ // Label 460: @24258
8803 /* 24258 */ GIM_Reject,
8804 /* 24259 */ // Label 69: @24259
8805 /* 24259 */ GIM_Try, /*On fail goto*//*Label 461*/ GIMT_Encode4(24270), // Rule ID 290 //
8806 /* 24264 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
8807 /* 24267 */ // Combiner Rule #193: constant_fold_fma; wip_match_opcode 'G_FMAD'
8808 /* 24267 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
8809 /* 24270 */ // Label 461: @24270
8810 /* 24270 */ GIM_Try, /*On fail goto*//*Label 462*/ GIMT_Encode4(24281), // Rule ID 309 //
8811 /* 24275 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
8812 /* 24278 */ // Combiner Rule #198: redundant_neg_operands; wip_match_opcode 'G_FMAD'
8813 /* 24278 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
8814 /* 24281 */ // Label 462: @24281
8815 /* 24281 */ GIM_Reject,
8816 /* 24282 */ // Label 70: @24282
8817 /* 24282 */ GIM_Try, /*On fail goto*//*Label 463*/ GIMT_Encode4(24293), // Rule ID 308 //
8818 /* 24287 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
8819 /* 24290 */ // Combiner Rule #198: redundant_neg_operands; wip_match_opcode 'G_FDIV'
8820 /* 24290 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
8821 /* 24293 */ // Label 463: @24293
8822 /* 24293 */ GIM_Try, /*On fail goto*//*Label 464*/ GIMT_Encode4(24304), // Rule ID 340 //
8823 /* 24298 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
8824 /* 24301 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_FDIV'
8825 /* 24301 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
8826 /* 24304 */ // Label 464: @24304
8827 /* 24304 */ GIM_Try, /*On fail goto*//*Label 465*/ GIMT_Encode4(24343), // Rule ID 458 //
8828 /* 24309 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule281Enabled),
8829 /* 24312 */ GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_f16,
8830 /* 24315 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_f16,
8831 /* 24318 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmContract),
8832 /* 24324 */ // MIs[0] y
8833 /* 24324 */ // No operand predicates
8834 /* 24324 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8835 /* 24328 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSQRT),
8836 /* 24332 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::FmContract),
8837 /* 24338 */ // MIs[1] x
8838 /* 24338 */ // No operand predicates
8839 /* 24338 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8840 /* 24340 */ // Combiner Rule #281: fdiv_by_sqrt_to_rsq_f16
8841 /* 24340 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner170),
8842 /* 24343 */ // Label 465: @24343
8843 /* 24343 */ GIM_Try, /*On fail goto*//*Label 466*/ GIMT_Encode4(24354), // Rule ID 281 //
8844 /* 24348 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
8845 /* 24351 */ // MIs[0] d
8846 /* 24351 */ // No operand predicates
8847 /* 24351 */ // MIs[0] mi.src0
8848 /* 24351 */ // No operand predicates
8849 /* 24351 */ // MIs[0] mi.src1
8850 /* 24351 */ // No operand predicates
8851 /* 24351 */ // Combiner Rule #192: constant_fold_fp_binop @ [mi[3]]
8852 /* 24351 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
8853 /* 24354 */ // Label 466: @24354
8854 /* 24354 */ GIM_Try, /*On fail goto*//*Label 467*/ GIMT_Encode4(24365), // Rule ID 353 //
8855 /* 24359 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8856 /* 24362 */ // MIs[0] dst
8857 /* 24362 */ // No operand predicates
8858 /* 24362 */ // MIs[0] src1
8859 /* 24362 */ // No operand predicates
8860 /* 24362 */ // MIs[0] src2
8861 /* 24362 */ // No operand predicates
8862 /* 24362 */ // Combiner Rule #216: fdiv_repeated_divison
8863 /* 24362 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner126),
8864 /* 24365 */ // Label 467: @24365
8865 /* 24365 */ GIM_Reject,
8866 /* 24366 */ // Label 71: @24366
8867 /* 24366 */ GIM_Try, /*On fail goto*//*Label 468*/ GIMT_Encode4(24377), // Rule ID 341 //
8868 /* 24371 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
8869 /* 24374 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_FREM'
8870 /* 24374 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
8871 /* 24377 */ // Label 468: @24377
8872 /* 24377 */ GIM_Try, /*On fail goto*//*Label 469*/ GIMT_Encode4(24388), // Rule ID 282 //
8873 /* 24382 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
8874 /* 24385 */ // MIs[0] d
8875 /* 24385 */ // No operand predicates
8876 /* 24385 */ // MIs[0] mi.src0
8877 /* 24385 */ // No operand predicates
8878 /* 24385 */ // MIs[0] mi.src1
8879 /* 24385 */ // No operand predicates
8880 /* 24385 */ // Combiner Rule #192: constant_fold_fp_binop @ [mi[4]]
8881 /* 24385 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
8882 /* 24388 */ // Label 469: @24388
8883 /* 24388 */ GIM_Reject,
8884 /* 24389 */ // Label 72: @24389
8885 /* 24389 */ GIM_Try, /*On fail goto*//*Label 470*/ GIMT_Encode4(24410), // Rule ID 222 //
8886 /* 24394 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
8887 /* 24397 */ // MIs[0] dst
8888 /* 24397 */ // No operand predicates
8889 /* 24397 */ // MIs[0] float
8890 /* 24397 */ // No operand predicates
8891 /* 24397 */ // MIs[0] int
8892 /* 24397 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8893 /* 24401 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8894 /* 24405 */ // MIs[1] imm
8895 /* 24405 */ // No operand predicates
8896 /* 24405 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8897 /* 24407 */ // Combiner Rule #170: expand_const_fpowi
8898 /* 24407 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner89),
8899 /* 24410 */ // Label 470: @24410
8900 /* 24410 */ GIM_Reject,
8901 /* 24411 */ // Label 73: @24411
8902 /* 24411 */ GIM_Try, /*On fail goto*//*Label 471*/ GIMT_Encode4(24432), // Rule ID 196 //
8903 /* 24416 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
8904 /* 24419 */ // MIs[0] dst
8905 /* 24419 */ // No operand predicates
8906 /* 24419 */ // MIs[0] src0
8907 /* 24419 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8908 /* 24423 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8909 /* 24427 */ // MIs[1] cst
8910 /* 24427 */ // No operand predicates
8911 /* 24427 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8912 /* 24429 */ // Combiner Rule #152: constant_fold_flog2
8913 /* 24429 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
8914 /* 24432 */ // Label 471: @24432
8915 /* 24432 */ GIM_Reject,
8916 /* 24433 */ // Label 74: @24433
8917 /* 24433 */ GIM_Try, /*On fail goto*//*Label 472*/ GIMT_Encode4(24444), // Rule ID 454 //
8918 /* 24438 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule278Enabled),
8919 /* 24441 */ // Combiner Rule #278: foldable_fneg; wip_match_opcode 'G_FNEG'
8920 /* 24441 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner167),
8921 /* 24444 */ // Label 472: @24444
8922 /* 24444 */ GIM_Try, /*On fail goto*//*Label 473*/ GIMT_Encode4(24465), // Rule ID 193 //
8923 /* 24449 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule149Enabled),
8924 /* 24452 */ // MIs[0] dst
8925 /* 24452 */ // No operand predicates
8926 /* 24452 */ // MIs[0] src0
8927 /* 24452 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8928 /* 24456 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8929 /* 24460 */ // MIs[1] cst
8930 /* 24460 */ // No operand predicates
8931 /* 24460 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8932 /* 24462 */ // Combiner Rule #149: constant_fold_fneg
8933 /* 24462 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
8934 /* 24465 */ // Label 473: @24465
8935 /* 24465 */ GIM_Try, /*On fail goto*//*Label 474*/ GIMT_Encode4(24494), // Rule ID 136 //
8936 /* 24470 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule98Enabled),
8937 /* 24473 */ // MIs[0] dst
8938 /* 24473 */ // No operand predicates
8939 /* 24473 */ // MIs[0] t
8940 /* 24473 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8941 /* 24477 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
8942 /* 24481 */ // MIs[1] src
8943 /* 24481 */ // No operand predicates
8944 /* 24481 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
8945 /* 24486 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8946 /* 24488 */ // Combiner Rule #98: fneg_fneg_fold
8947 /* 24488 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
8948 /* 24493 */ GIR_EraseRootFromParent_Done,
8949 /* 24494 */ // Label 474: @24494
8950 /* 24494 */ GIM_Reject,
8951 /* 24495 */ // Label 75: @24495
8952 /* 24495 */ GIM_Try, /*On fail goto*//*Label 475*/ GIMT_Encode4(24516), // Rule ID 198 //
8953 /* 24500 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule154Enabled),
8954 /* 24503 */ // MIs[0] dst
8955 /* 24503 */ // No operand predicates
8956 /* 24503 */ // MIs[0] src0
8957 /* 24503 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8958 /* 24507 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8959 /* 24511 */ // MIs[1] cst
8960 /* 24511 */ // No operand predicates
8961 /* 24511 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8962 /* 24513 */ // Combiner Rule #154: constant_fold_fpext
8963 /* 24513 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
8964 /* 24516 */ // Label 475: @24516
8965 /* 24516 */ GIM_Reject,
8966 /* 24517 */ // Label 76: @24517
8967 /* 24517 */ GIM_Try_CheckFeatures, /*On fail goto*//*Label 476*/ GIMT_Encode4(24540), GIMT_Encode2(GIFBS_Has16BitInsts_NotHasMed3_16), // Rule ID 445 //
8968 /* 24524 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule273Enabled),
8969 /* 24527 */ // MIs[0] fptrunc_dst
8970 /* 24527 */ // No operand predicates
8971 /* 24527 */ // MIs[0] fmed3_dst
8972 /* 24527 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8973 /* 24531 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(AMDGPU::G_AMDGPU_FMED3),
8974 /* 24535 */ // MIs[1] src0
8975 /* 24535 */ // No operand predicates
8976 /* 24535 */ // MIs[1] src1
8977 /* 24535 */ // No operand predicates
8978 /* 24535 */ // MIs[1] src2
8979 /* 24535 */ // No operand predicates
8980 /* 24535 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8981 /* 24537 */ // Combiner Rule #273: expand_promoted_fmed3
8982 /* 24537 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner162),
8983 /* 24540 */ // Label 476: @24540
8984 /* 24540 */ GIM_Try, /*On fail goto*//*Label 477*/ GIMT_Encode4(24561), // Rule ID 197 //
8985 /* 24545 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
8986 /* 24548 */ // MIs[0] dst
8987 /* 24548 */ // No operand predicates
8988 /* 24548 */ // MIs[0] src0
8989 /* 24548 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8990 /* 24552 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8991 /* 24556 */ // MIs[1] cst
8992 /* 24556 */ // No operand predicates
8993 /* 24556 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8994 /* 24558 */ // Combiner Rule #153: constant_fold_fptrunc
8995 /* 24558 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
8996 /* 24561 */ // Label 477: @24561
8997 /* 24561 */ GIM_Try, /*On fail goto*//*Label 478*/ GIMT_Encode4(24582), // Rule ID 147 //
8998 /* 24566 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
8999 /* 24569 */ // MIs[0] dst
9000 /* 24569 */ // No operand predicates
9001 /* 24569 */ // MIs[0] src1
9002 /* 24569 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9003 /* 24573 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
9004 /* 24577 */ // MIs[1] src0
9005 /* 24577 */ // No operand predicates
9006 /* 24577 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9007 /* 24579 */ // Combiner Rule #107: fptrunc_fpext_fold
9008 /* 24579 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
9009 /* 24582 */ // Label 478: @24582
9010 /* 24582 */ GIM_Reject,
9011 /* 24583 */ // Label 77: @24583
9012 /* 24583 */ GIM_Try, /*On fail goto*//*Label 479*/ GIMT_Encode4(24604), // Rule ID 98 //
9013 /* 24588 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
9014 /* 24591 */ // MIs[0] dst
9015 /* 24591 */ // No operand predicates
9016 /* 24591 */ // MIs[0] __unary_undef_to_undef_match_0.x
9017 /* 24591 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9018 /* 24595 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9019 /* 24599 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9020 /* 24601 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[5]]
9021 /* 24601 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
9022 /* 24604 */ // Label 479: @24604
9023 /* 24604 */ GIM_Reject,
9024 /* 24605 */ // Label 78: @24605
9025 /* 24605 */ GIM_Try, /*On fail goto*//*Label 480*/ GIMT_Encode4(24626), // Rule ID 99 //
9026 /* 24610 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
9027 /* 24613 */ // MIs[0] dst
9028 /* 24613 */ // No operand predicates
9029 /* 24613 */ // MIs[0] __unary_undef_to_undef_match_0.x
9030 /* 24613 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9031 /* 24617 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9032 /* 24621 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9033 /* 24623 */ // Combiner Rule #83: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[6]]
9034 /* 24623 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
9035 /* 24626 */ // Label 480: @24626
9036 /* 24626 */ GIM_Reject,
9037 /* 24627 */ // Label 79: @24627
9038 /* 24627 */ GIM_Try, /*On fail goto*//*Label 481*/ GIMT_Encode4(24638), // Rule ID 82 //
9039 /* 24632 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
9040 /* 24635 */ // Combiner Rule #77: undef_to_fp_zero; wip_match_opcode 'G_SITOFP'
9041 /* 24635 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
9042 /* 24638 */ // Label 481: @24638
9043 /* 24638 */ GIM_Try, /*On fail goto*//*Label 482*/ GIMT_Encode4(24649), // Rule ID 448 //
9044 /* 24643 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule275Enabled),
9045 /* 24646 */ // Combiner Rule #275: uchar_to_float; wip_match_opcode 'G_SITOFP'
9046 /* 24646 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner164),
9047 /* 24649 */ // Label 482: @24649
9048 /* 24649 */ GIM_Try, /*On fail goto*//*Label 483*/ GIMT_Encode4(24664), // Rule ID 206 //
9049 /* 24654 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
9050 /* 24657 */ // MIs[0] dst
9051 /* 24657 */ // No operand predicates
9052 /* 24657 */ // MIs[0] Operand 1
9053 /* 24657 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
9054 /* 24661 */ // Combiner Rule #162: itof_const_zero_fold_si
9055 /* 24661 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
9056 /* 24664 */ // Label 483: @24664
9057 /* 24664 */ GIM_Reject,
9058 /* 24665 */ // Label 80: @24665
9059 /* 24665 */ GIM_Try, /*On fail goto*//*Label 484*/ GIMT_Encode4(24676), // Rule ID 81 //
9060 /* 24670 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
9061 /* 24673 */ // Combiner Rule #77: undef_to_fp_zero; wip_match_opcode 'G_UITOFP'
9062 /* 24673 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
9063 /* 24676 */ // Label 484: @24676
9064 /* 24676 */ GIM_Try, /*On fail goto*//*Label 485*/ GIMT_Encode4(24687), // Rule ID 447 //
9065 /* 24681 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule275Enabled),
9066 /* 24684 */ // Combiner Rule #275: uchar_to_float; wip_match_opcode 'G_UITOFP'
9067 /* 24684 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner164),
9068 /* 24687 */ // Label 485: @24687
9069 /* 24687 */ GIM_Try, /*On fail goto*//*Label 486*/ GIMT_Encode4(24702), // Rule ID 207 //
9070 /* 24692 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
9071 /* 24695 */ // MIs[0] dst
9072 /* 24695 */ // No operand predicates
9073 /* 24695 */ // MIs[0] Operand 1
9074 /* 24695 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
9075 /* 24699 */ // Combiner Rule #163: itof_const_zero_fold_ui
9076 /* 24699 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
9077 /* 24702 */ // Label 486: @24702
9078 /* 24702 */ GIM_Reject,
9079 /* 24703 */ // Label 81: @24703
9080 /* 24703 */ GIM_Try, /*On fail goto*//*Label 487*/ GIMT_Encode4(24732), // Rule ID 25 //
9081 /* 24708 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
9082 /* 24711 */ // MIs[0] dst
9083 /* 24711 */ // No operand predicates
9084 /* 24711 */ // MIs[0] src
9085 /* 24711 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9086 /* 24715 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
9087 /* 24719 */ // MIs[1] __idempotent_prop_match_0.x
9088 /* 24719 */ // No operand predicates
9089 /* 24719 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9090 /* 24724 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9091 /* 24726 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[1]]
9092 /* 24726 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9093 /* 24731 */ GIR_EraseRootFromParent_Done,
9094 /* 24732 */ // Label 487: @24732
9095 /* 24732 */ GIM_Try, /*On fail goto*//*Label 488*/ GIMT_Encode4(24753), // Rule ID 194 //
9096 /* 24737 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
9097 /* 24740 */ // MIs[0] dst
9098 /* 24740 */ // No operand predicates
9099 /* 24740 */ // MIs[0] src0
9100 /* 24740 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9101 /* 24744 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
9102 /* 24748 */ // MIs[1] cst
9103 /* 24748 */ // No operand predicates
9104 /* 24748 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9105 /* 24750 */ // Combiner Rule #150: constant_fold_fabs
9106 /* 24750 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
9107 /* 24753 */ // Label 488: @24753
9108 /* 24753 */ GIM_Try, /*On fail goto*//*Label 489*/ GIMT_Encode4(24781), // Rule ID 303 //
9109 /* 24758 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule196Enabled),
9110 /* 24761 */ // MIs[0] dst
9111 /* 24761 */ // No operand predicates
9112 /* 24761 */ // MIs[0] tmp
9113 /* 24761 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9114 /* 24765 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
9115 /* 24769 */ // MIs[1] x
9116 /* 24769 */ // No operand predicates
9117 /* 24769 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9118 /* 24771 */ // Combiner Rule #196: fabs_fneg_fold
9119 /* 24771 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FABS),
9120 /* 24774 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9121 /* 24776 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
9122 /* 24780 */ GIR_EraseRootFromParent_Done,
9123 /* 24781 */ // Label 489: @24781
9124 /* 24781 */ GIM_Try, /*On fail goto*//*Label 490*/ GIMT_Encode4(24802), // Rule ID 455 //
9125 /* 24786 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule279Enabled),
9126 /* 24789 */ // MIs[0] dst
9127 /* 24789 */ // No operand predicates
9128 /* 24789 */ // MIs[0] round
9129 /* 24789 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9130 /* 24793 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPTRUNC),
9131 /* 24797 */ // MIs[1] src
9132 /* 24797 */ // No operand predicates
9133 /* 24797 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9134 /* 24799 */ // Combiner Rule #279: fold_fabs_fptrunc
9135 /* 24799 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner168),
9136 /* 24802 */ // Label 490: @24802
9137 /* 24802 */ GIM_Reject,
9138 /* 24803 */ // Label 82: @24803
9139 /* 24803 */ GIM_Try, /*On fail goto*//*Label 491*/ GIMT_Encode4(24814), // Rule ID 283 //
9140 /* 24808 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
9141 /* 24811 */ // MIs[0] d
9142 /* 24811 */ // No operand predicates
9143 /* 24811 */ // MIs[0] mi.src0
9144 /* 24811 */ // No operand predicates
9145 /* 24811 */ // MIs[0] mi.src1
9146 /* 24811 */ // No operand predicates
9147 /* 24811 */ // Combiner Rule #192: constant_fold_fp_binop @ [mi[5]]
9148 /* 24811 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
9149 /* 24814 */ // Label 491: @24814
9150 /* 24814 */ GIM_Reject,
9151 /* 24815 */ // Label 83: @24815
9152 /* 24815 */ GIM_Try, /*On fail goto*//*Label 492*/ GIMT_Encode4(24826), // Rule ID 453 //
9153 /* 24820 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule277Enabled),
9154 /* 24823 */ // Combiner Rule #277: remove_fcanonicalize; wip_match_opcode 'G_FCANONICALIZE'
9155 /* 24823 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner166),
9156 /* 24826 */ // Label 492: @24826
9157 /* 24826 */ GIM_Try, /*On fail goto*//*Label 493*/ GIMT_Encode4(24855), // Rule ID 26 //
9158 /* 24831 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
9159 /* 24834 */ // MIs[0] dst
9160 /* 24834 */ // No operand predicates
9161 /* 24834 */ // MIs[0] src
9162 /* 24834 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9163 /* 24838 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCANONICALIZE),
9164 /* 24842 */ // MIs[1] __idempotent_prop_match_0.x
9165 /* 24842 */ // No operand predicates
9166 /* 24842 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9167 /* 24847 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9168 /* 24849 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[2]]
9169 /* 24849 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9170 /* 24854 */ GIR_EraseRootFromParent_Done,
9171 /* 24855 */ // Label 493: @24855
9172 /* 24855 */ GIM_Reject,
9173 /* 24856 */ // Label 84: @24856
9174 /* 24856 */ GIM_Try, /*On fail goto*//*Label 494*/ GIMT_Encode4(24867), // Rule ID 218 //
9175 /* 24861 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
9176 /* 24864 */ // Combiner Rule #169: combine_minmax_nan; wip_match_opcode 'G_FMINNUM'
9177 /* 24864 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
9178 /* 24867 */ // Label 494: @24867
9179 /* 24867 */ GIM_Try, /*On fail goto*//*Label 495*/ GIMT_Encode4(24878), // Rule ID 342 //
9180 /* 24872 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
9181 /* 24875 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_FMINNUM'
9182 /* 24875 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
9183 /* 24878 */ // Label 495: @24878
9184 /* 24878 */ GIM_Try, /*On fail goto*//*Label 496*/ GIMT_Encode4(24889), // Rule ID 380 //
9185 /* 24883 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
9186 /* 24886 */ // Combiner Rule #221: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM'
9187 /* 24886 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
9188 /* 24889 */ // Label 496: @24889
9189 /* 24889 */ GIM_Try, /*On fail goto*//*Label 497*/ GIMT_Encode4(24900), // Rule ID 284 //
9190 /* 24894 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
9191 /* 24897 */ // MIs[0] d
9192 /* 24897 */ // No operand predicates
9193 /* 24897 */ // MIs[0] mi.src0
9194 /* 24897 */ // No operand predicates
9195 /* 24897 */ // MIs[0] mi.src1
9196 /* 24897 */ // No operand predicates
9197 /* 24897 */ // Combiner Rule #192: constant_fold_fp_binop @ [mi[6]]
9198 /* 24897 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
9199 /* 24900 */ // Label 497: @24900
9200 /* 24900 */ GIM_Reject,
9201 /* 24901 */ // Label 85: @24901
9202 /* 24901 */ GIM_Try, /*On fail goto*//*Label 498*/ GIMT_Encode4(24912), // Rule ID 219 //
9203 /* 24906 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
9204 /* 24909 */ // Combiner Rule #169: combine_minmax_nan; wip_match_opcode 'G_FMAXNUM'
9205 /* 24909 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
9206 /* 24912 */ // Label 498: @24912
9207 /* 24912 */ GIM_Try, /*On fail goto*//*Label 499*/ GIMT_Encode4(24923), // Rule ID 343 //
9208 /* 24917 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
9209 /* 24920 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_FMAXNUM'
9210 /* 24920 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
9211 /* 24923 */ // Label 499: @24923
9212 /* 24923 */ GIM_Try, /*On fail goto*//*Label 500*/ GIMT_Encode4(24934), // Rule ID 381 //
9213 /* 24928 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
9214 /* 24931 */ // Combiner Rule #221: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM'
9215 /* 24931 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
9216 /* 24934 */ // Label 500: @24934
9217 /* 24934 */ GIM_Try, /*On fail goto*//*Label 501*/ GIMT_Encode4(24945), // Rule ID 285 //
9218 /* 24939 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
9219 /* 24942 */ // MIs[0] d
9220 /* 24942 */ // No operand predicates
9221 /* 24942 */ // MIs[0] mi.src0
9222 /* 24942 */ // No operand predicates
9223 /* 24942 */ // MIs[0] mi.src1
9224 /* 24942 */ // No operand predicates
9225 /* 24942 */ // Combiner Rule #192: constant_fold_fp_binop @ [mi[7]]
9226 /* 24942 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
9227 /* 24945 */ // Label 501: @24945
9228 /* 24945 */ GIM_Reject,
9229 /* 24946 */ // Label 86: @24946
9230 /* 24946 */ GIM_Try, /*On fail goto*//*Label 502*/ GIMT_Encode4(24957), // Rule ID 382 //
9231 /* 24951 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
9232 /* 24954 */ // Combiner Rule #221: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM_IEEE'
9233 /* 24954 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
9234 /* 24957 */ // Label 502: @24957
9235 /* 24957 */ GIM_Reject,
9236 /* 24958 */ // Label 87: @24958
9237 /* 24958 */ GIM_Try, /*On fail goto*//*Label 503*/ GIMT_Encode4(24969), // Rule ID 383 //
9238 /* 24963 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
9239 /* 24966 */ // Combiner Rule #221: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM_IEEE'
9240 /* 24966 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
9241 /* 24969 */ // Label 503: @24969
9242 /* 24969 */ GIM_Reject,
9243 /* 24970 */ // Label 88: @24970
9244 /* 24970 */ GIM_Try, /*On fail goto*//*Label 504*/ GIMT_Encode4(24981), // Rule ID 220 //
9245 /* 24975 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
9246 /* 24978 */ // Combiner Rule #169: combine_minmax_nan; wip_match_opcode 'G_FMINIMUM'
9247 /* 24978 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
9248 /* 24981 */ // Label 504: @24981
9249 /* 24981 */ GIM_Try, /*On fail goto*//*Label 505*/ GIMT_Encode4(24992), // Rule ID 344 //
9250 /* 24986 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
9251 /* 24989 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_FMINIMUM'
9252 /* 24989 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
9253 /* 24992 */ // Label 505: @24992
9254 /* 24992 */ GIM_Try, /*On fail goto*//*Label 506*/ GIMT_Encode4(25003), // Rule ID 384 //
9255 /* 24997 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
9256 /* 25000 */ // Combiner Rule #221: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINIMUM'
9257 /* 25000 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
9258 /* 25003 */ // Label 506: @25003
9259 /* 25003 */ GIM_Try, /*On fail goto*//*Label 507*/ GIMT_Encode4(25014), // Rule ID 286 //
9260 /* 25008 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
9261 /* 25011 */ // MIs[0] d
9262 /* 25011 */ // No operand predicates
9263 /* 25011 */ // MIs[0] mi.src0
9264 /* 25011 */ // No operand predicates
9265 /* 25011 */ // MIs[0] mi.src1
9266 /* 25011 */ // No operand predicates
9267 /* 25011 */ // Combiner Rule #192: constant_fold_fp_binop @ [mi[8]]
9268 /* 25011 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
9269 /* 25014 */ // Label 507: @25014
9270 /* 25014 */ GIM_Reject,
9271 /* 25015 */ // Label 89: @25015
9272 /* 25015 */ GIM_Try, /*On fail goto*//*Label 508*/ GIMT_Encode4(25026), // Rule ID 221 //
9273 /* 25020 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
9274 /* 25023 */ // Combiner Rule #169: combine_minmax_nan; wip_match_opcode 'G_FMAXIMUM'
9275 /* 25023 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
9276 /* 25026 */ // Label 508: @25026
9277 /* 25026 */ GIM_Try, /*On fail goto*//*Label 509*/ GIMT_Encode4(25037), // Rule ID 345 //
9278 /* 25031 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
9279 /* 25034 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_FMAXIMUM'
9280 /* 25034 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
9281 /* 25037 */ // Label 509: @25037
9282 /* 25037 */ GIM_Try, /*On fail goto*//*Label 510*/ GIMT_Encode4(25048), // Rule ID 385 //
9283 /* 25042 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
9284 /* 25045 */ // Combiner Rule #221: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXIMUM'
9285 /* 25045 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
9286 /* 25048 */ // Label 510: @25048
9287 /* 25048 */ GIM_Try, /*On fail goto*//*Label 511*/ GIMT_Encode4(25059), // Rule ID 287 //
9288 /* 25053 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
9289 /* 25056 */ // MIs[0] d
9290 /* 25056 */ // No operand predicates
9291 /* 25056 */ // MIs[0] mi.src0
9292 /* 25056 */ // No operand predicates
9293 /* 25056 */ // MIs[0] mi.src1
9294 /* 25056 */ // No operand predicates
9295 /* 25056 */ // Combiner Rule #192: constant_fold_fp_binop @ [mi[9]]
9296 /* 25056 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
9297 /* 25059 */ // Label 511: @25059
9298 /* 25059 */ GIM_Reject,
9299 /* 25060 */ // Label 90: @25060
9300 /* 25060 */ GIM_Try, /*On fail goto*//*Label 512*/ GIMT_Encode4(25071), // Rule ID 288 //
9301 /* 25065 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
9302 /* 25068 */ // MIs[0] d
9303 /* 25068 */ // No operand predicates
9304 /* 25068 */ // MIs[0] mi.src0
9305 /* 25068 */ // No operand predicates
9306 /* 25068 */ // MIs[0] mi.src1
9307 /* 25068 */ // No operand predicates
9308 /* 25068 */ // Combiner Rule #192: constant_fold_fp_binop @ [mi[10]]
9309 /* 25068 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
9310 /* 25071 */ // Label 512: @25071
9311 /* 25071 */ GIM_Reject,
9312 /* 25072 */ // Label 91: @25072
9313 /* 25072 */ GIM_Try, /*On fail goto*//*Label 513*/ GIMT_Encode4(25083), // Rule ID 289 //
9314 /* 25077 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
9315 /* 25080 */ // MIs[0] d
9316 /* 25080 */ // No operand predicates
9317 /* 25080 */ // MIs[0] mi.src0
9318 /* 25080 */ // No operand predicates
9319 /* 25080 */ // MIs[0] mi.src1
9320 /* 25080 */ // No operand predicates
9321 /* 25080 */ // Combiner Rule #192: constant_fold_fp_binop @ [mi[11]]
9322 /* 25080 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
9323 /* 25083 */ // Label 513: @25083
9324 /* 25083 */ GIM_Reject,
9325 /* 25084 */ // Label 92: @25084
9326 /* 25084 */ GIM_Try, /*On fail goto*//*Label 514*/ GIMT_Encode4(25095), // Rule ID 159 //
9327 /* 25089 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule115Enabled),
9328 /* 25092 */ // Combiner Rule #115: reassoc_ptradd; wip_match_opcode 'G_PTR_ADD'
9329 /* 25092 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
9330 /* 25095 */ // Label 514: @25095
9331 /* 25095 */ GIM_Try, /*On fail goto*//*Label 515*/ GIMT_Encode4(25106), // Rule ID 161 //
9332 /* 25100 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled),
9333 /* 25103 */ // Combiner Rule #117: ptr_add_immed_chain; wip_match_opcode 'G_PTR_ADD'
9334 /* 25103 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner58),
9335 /* 25106 */ // Label 515: @25106
9336 /* 25106 */ GIM_Try, /*On fail goto*//*Label 516*/ GIMT_Encode4(25117), // Rule ID 208 //
9337 /* 25111 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
9338 /* 25114 */ // Combiner Rule #164: const_ptradd_to_i2p; wip_match_opcode 'G_PTR_ADD'
9339 /* 25114 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
9340 /* 25117 */ // Label 516: @25117
9341 /* 25117 */ GIM_Try, /*On fail goto*//*Label 517*/ GIMT_Encode4(25128), // Rule ID 224 //
9342 /* 25122 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
9343 /* 25125 */ // Combiner Rule #172: ptr_add_with_zero; wip_match_opcode 'G_PTR_ADD'
9344 /* 25125 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
9345 /* 25128 */ // Label 517: @25128
9346 /* 25128 */ GIM_Try, /*On fail goto*//*Label 518*/ GIMT_Encode4(25139), // Rule ID 261 //
9347 /* 25133 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9348 /* 25136 */ // Combiner Rule #191: constant_fold_binop; wip_match_opcode 'G_PTR_ADD'
9349 /* 25136 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
9350 /* 25139 */ // Label 518: @25139
9351 /* 25139 */ GIM_Try, /*On fail goto*//*Label 519*/ GIMT_Encode4(25150), // Rule ID 322 //
9352 /* 25144 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
9353 /* 25147 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_PTR_ADD'
9354 /* 25147 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
9355 /* 25150 */ // Label 519: @25150
9356 /* 25150 */ GIM_Try, /*On fail goto*//*Label 520*/ GIMT_Encode4(25173), // Rule ID 117 //
9357 /* 25155 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
9358 /* 25158 */ // MIs[0] dst
9359 /* 25158 */ // No operand predicates
9360 /* 25158 */ // MIs[0] lhs
9361 /* 25158 */ // No operand predicates
9362 /* 25158 */ // MIs[0] Operand 2
9363 /* 25158 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
9364 /* 25162 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9365 /* 25167 */ // Combiner Rule #90: right_identity_zero @ [__right_identity_zero_match_0[7]]
9366 /* 25167 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9367 /* 25172 */ GIR_EraseRootFromParent_Done,
9368 /* 25173 */ // Label 520: @25173
9369 /* 25173 */ GIM_Reject,
9370 /* 25174 */ // Label 93: @25174
9371 /* 25174 */ GIM_Try, /*On fail goto*//*Label 521*/ GIMT_Encode4(25185), // Rule ID 274 //
9372 /* 25179 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9373 /* 25182 */ // Combiner Rule #191: constant_fold_binop; wip_match_opcode 'G_SMIN'
9374 /* 25182 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
9375 /* 25185 */ // Label 521: @25185
9376 /* 25185 */ GIM_Try, /*On fail goto*//*Label 522*/ GIMT_Encode4(25196), // Rule ID 333 //
9377 /* 25190 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
9378 /* 25193 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_SMIN'
9379 /* 25193 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
9380 /* 25196 */ // Label 522: @25196
9381 /* 25196 */ GIM_Try, /*On fail goto*//*Label 523*/ GIMT_Encode4(25207), // Rule ID 362 //
9382 /* 25201 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
9383 /* 25204 */ // Combiner Rule #220: commute_int_constant_to_rhs; wip_match_opcode 'G_SMIN'
9384 /* 25204 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
9385 /* 25207 */ // Label 523: @25207
9386 /* 25207 */ GIM_Reject,
9387 /* 25208 */ // Label 94: @25208
9388 /* 25208 */ GIM_Try, /*On fail goto*//*Label 524*/ GIMT_Encode4(25219), // Rule ID 275 //
9389 /* 25213 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9390 /* 25216 */ // Combiner Rule #191: constant_fold_binop; wip_match_opcode 'G_SMAX'
9391 /* 25216 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
9392 /* 25219 */ // Label 524: @25219
9393 /* 25219 */ GIM_Try, /*On fail goto*//*Label 525*/ GIMT_Encode4(25230), // Rule ID 334 //
9394 /* 25224 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
9395 /* 25227 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_SMAX'
9396 /* 25227 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
9397 /* 25230 */ // Label 525: @25230
9398 /* 25230 */ GIM_Try, /*On fail goto*//*Label 526*/ GIMT_Encode4(25241), // Rule ID 363 //
9399 /* 25235 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
9400 /* 25238 */ // Combiner Rule #220: commute_int_constant_to_rhs; wip_match_opcode 'G_SMAX'
9401 /* 25238 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
9402 /* 25241 */ // Label 526: @25241
9403 /* 25241 */ GIM_Reject,
9404 /* 25242 */ // Label 95: @25242
9405 /* 25242 */ GIM_Try, /*On fail goto*//*Label 527*/ GIMT_Encode4(25253), // Rule ID 276 //
9406 /* 25247 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9407 /* 25250 */ // Combiner Rule #191: constant_fold_binop; wip_match_opcode 'G_UMIN'
9408 /* 25250 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
9409 /* 25253 */ // Label 527: @25253
9410 /* 25253 */ GIM_Try, /*On fail goto*//*Label 528*/ GIMT_Encode4(25264), // Rule ID 335 //
9411 /* 25258 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
9412 /* 25261 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_UMIN'
9413 /* 25261 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
9414 /* 25264 */ // Label 528: @25264
9415 /* 25264 */ GIM_Try, /*On fail goto*//*Label 529*/ GIMT_Encode4(25275), // Rule ID 364 //
9416 /* 25269 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
9417 /* 25272 */ // Combiner Rule #220: commute_int_constant_to_rhs; wip_match_opcode 'G_UMIN'
9418 /* 25272 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
9419 /* 25275 */ // Label 529: @25275
9420 /* 25275 */ GIM_Reject,
9421 /* 25276 */ // Label 96: @25276
9422 /* 25276 */ GIM_Try, /*On fail goto*//*Label 530*/ GIMT_Encode4(25287), // Rule ID 277 //
9423 /* 25281 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9424 /* 25284 */ // Combiner Rule #191: constant_fold_binop; wip_match_opcode 'G_UMAX'
9425 /* 25284 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
9426 /* 25287 */ // Label 530: @25287
9427 /* 25287 */ GIM_Try, /*On fail goto*//*Label 531*/ GIMT_Encode4(25298), // Rule ID 336 //
9428 /* 25292 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
9429 /* 25295 */ // Combiner Rule #208: fold_binop_into_select; wip_match_opcode 'G_UMAX'
9430 /* 25295 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
9431 /* 25298 */ // Label 531: @25298
9432 /* 25298 */ GIM_Try, /*On fail goto*//*Label 532*/ GIMT_Encode4(25309), // Rule ID 365 //
9433 /* 25303 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
9434 /* 25306 */ // Combiner Rule #220: commute_int_constant_to_rhs; wip_match_opcode 'G_UMAX'
9435 /* 25306 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
9436 /* 25309 */ // Label 532: @25309
9437 /* 25309 */ GIM_Reject,
9438 /* 25310 */ // Label 97: @25310
9439 /* 25310 */ GIM_Try, /*On fail goto*//*Label 533*/ GIMT_Encode4(25321), // Rule ID 92 //
9440 /* 25315 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
9441 /* 25318 */ // Combiner Rule #82: unary_undef_to_zero; wip_match_opcode 'G_ABS'
9442 /* 25318 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
9443 /* 25321 */ // Label 533: @25321
9444 /* 25321 */ GIM_Try, /*On fail goto*//*Label 534*/ GIMT_Encode4(25332), // Rule ID 300 //
9445 /* 25326 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9446 /* 25329 */ // MIs[0] dst
9447 /* 25329 */ // No operand predicates
9448 /* 25329 */ // MIs[0] mi.src
9449 /* 25329 */ // No operand predicates
9450 /* 25329 */ // Combiner Rule #195: constant_fold_unary_int_op @ [mi[5]]
9451 /* 25329 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9452 /* 25332 */ // Label 534: @25332
9453 /* 25332 */ GIM_Reject,
9454 /* 25333 */ // Label 98: @25333
9455 /* 25333 */ GIM_Try, /*On fail goto*//*Label 535*/ GIMT_Encode4(25344), // Rule ID 192 //
9456 /* 25338 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
9457 /* 25341 */ // Combiner Rule #148: opt_brcond_by_inverting_cond; wip_match_opcode 'G_BR'
9458 /* 25341 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
9459 /* 25344 */ // Label 535: @25344
9460 /* 25344 */ GIM_Reject,
9461 /* 25345 */ // Label 99: @25345
9462 /* 25345 */ GIM_Try, /*On fail goto*//*Label 536*/ GIMT_Encode4(25356), // Rule ID 32 //
9463 /* 25350 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
9464 /* 25353 */ // Combiner Rule #30: insert_vector_elt_oob; wip_match_opcode 'G_INSERT_VECTOR_ELT'
9465 /* 25353 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
9466 /* 25356 */ // Label 536: @25356
9467 /* 25356 */ GIM_Try, /*On fail goto*//*Label 537*/ GIMT_Encode4(25367), // Rule ID 73 //
9468 /* 25361 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
9469 /* 25364 */ // Combiner Rule #71: combine_insert_vec_elts_build_vector; wip_match_opcode 'G_INSERT_VECTOR_ELT'
9470 /* 25364 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
9471 /* 25367 */ // Label 537: @25367
9472 /* 25367 */ GIM_Try, /*On fail goto*//*Label 538*/ GIMT_Encode4(25378), // Rule ID 107 //
9473 /* 25372 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
9474 /* 25375 */ // Combiner Rule #88: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_INSERT_VECTOR_ELT'
9475 /* 25375 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
9476 /* 25378 */ // Label 538: @25378
9477 /* 25378 */ GIM_Try, /*On fail goto*//*Label 539*/ GIMT_Encode4(25417), // Rule ID 44 //
9478 /* 25383 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
9479 /* 25386 */ // MIs[0] root
9480 /* 25386 */ // No operand predicates
9481 /* 25386 */ // MIs[0] src
9482 /* 25386 */ // No operand predicates
9483 /* 25386 */ // MIs[0] elt
9484 /* 25386 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9485 /* 25390 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_EXTRACT_VECTOR_ELT),
9486 /* 25394 */ // MIs[1] src
9487 /* 25394 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
9488 /* 25399 */ // MIs[1] idx
9489 /* 25399 */ // No operand predicates
9490 /* 25399 */ // MIs[0] idx
9491 /* 25399 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
9492 /* 25404 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9493 /* 25409 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9494 /* 25411 */ // Combiner Rule #42: insert_vector_element_extract_vector_element
9495 /* 25411 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9496 /* 25416 */ GIR_EraseRootFromParent_Done,
9497 /* 25417 */ // Label 539: @25417
9498 /* 25417 */ GIM_Try, /*On fail goto*//*Label 540*/ GIMT_Encode4(25450), // Rule ID 30 //
9499 /* 25422 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
9500 /* 25425 */ // MIs[0] root
9501 /* 25425 */ // No operand predicates
9502 /* 25425 */ // MIs[0] src
9503 /* 25425 */ // No operand predicates
9504 /* 25425 */ // MIs[0] elt
9505 /* 25425 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9506 /* 25429 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9507 /* 25433 */ // MIs[0] idx
9508 /* 25433 */ // No operand predicates
9509 /* 25433 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
9510 /* 25437 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9511 /* 25442 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9512 /* 25444 */ // Combiner Rule #28: insert_vector_element_elt_undef
9513 /* 25444 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9514 /* 25449 */ GIR_EraseRootFromParent_Done,
9515 /* 25450 */ // Label 540: @25450
9516 /* 25450 */ GIM_Try, /*On fail goto*//*Label 541*/ GIMT_Encode4(25474), // Rule ID 29 //
9517 /* 25455 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
9518 /* 25458 */ // MIs[0] root
9519 /* 25458 */ // No operand predicates
9520 /* 25458 */ // MIs[0] src
9521 /* 25458 */ // No operand predicates
9522 /* 25458 */ // MIs[0] elt
9523 /* 25458 */ // No operand predicates
9524 /* 25458 */ // MIs[0] idx
9525 /* 25458 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
9526 /* 25462 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9527 /* 25466 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9528 /* 25468 */ // Combiner Rule #27: insert_vector_element_idx_undef
9529 /* 25468 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9530 /* 25471 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
9531 /* 25473 */ GIR_EraseRootFromParent_Done,
9532 /* 25474 */ // Label 541: @25474
9533 /* 25474 */ GIM_Reject,
9534 /* 25475 */ // Label 100: @25475
9535 /* 25475 */ GIM_Try, /*On fail goto*//*Label 542*/ GIMT_Encode4(25486), // Rule ID 31 //
9536 /* 25480 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
9537 /* 25483 */ // Combiner Rule #29: match_extract_of_element; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
9538 /* 25483 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
9539 /* 25486 */ // Label 542: @25486
9540 /* 25486 */ GIM_Try, /*On fail goto*//*Label 543*/ GIMT_Encode4(25497), // Rule ID 74 //
9541 /* 25491 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
9542 /* 25494 */ // Combiner Rule #72: extract_vec_elt_build_vec; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
9543 /* 25494 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner28),
9544 /* 25497 */ // Label 543: @25497
9545 /* 25497 */ GIM_Try, /*On fail goto*//*Label 544*/ GIMT_Encode4(25508), // Rule ID 80 //
9546 /* 25502 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
9547 /* 25505 */ // Combiner Rule #76: combine_extracted_vector_load; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
9548 /* 25505 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
9549 /* 25508 */ // Label 544: @25508
9550 /* 25508 */ GIM_Try, /*On fail goto*//*Label 545*/ GIMT_Encode4(25519), // Rule ID 108 //
9551 /* 25513 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
9552 /* 25516 */ // Combiner Rule #88: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
9553 /* 25516 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
9554 /* 25519 */ // Label 545: @25519
9555 /* 25519 */ GIM_Try, /*On fail goto*//*Label 546*/ GIMT_Encode4(25543), // Rule ID 42 //
9556 /* 25524 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
9557 /* 25527 */ // MIs[0] root
9558 /* 25527 */ // No operand predicates
9559 /* 25527 */ // MIs[0] src
9560 /* 25527 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9561 /* 25531 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9562 /* 25535 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/9,
9563 /* 25538 */ // MIs[1] x
9564 /* 25538 */ // No operand predicates
9565 /* 25538 */ // MIs[1] y
9566 /* 25538 */ // No operand predicates
9567 /* 25538 */ // MIs[1] z
9568 /* 25538 */ // No operand predicates
9569 /* 25538 */ // MIs[1] a
9570 /* 25538 */ // No operand predicates
9571 /* 25538 */ // MIs[1] b
9572 /* 25538 */ // No operand predicates
9573 /* 25538 */ // MIs[1] c
9574 /* 25538 */ // No operand predicates
9575 /* 25538 */ // MIs[1] d
9576 /* 25538 */ // No operand predicates
9577 /* 25538 */ // MIs[1] e
9578 /* 25538 */ // No operand predicates
9579 /* 25538 */ // MIs[0] idx
9580 /* 25538 */ // No operand predicates
9581 /* 25538 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9582 /* 25540 */ // Combiner Rule #40: extract_vector_element_build_vector_trunc8
9583 /* 25540 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
9584 /* 25543 */ // Label 546: @25543
9585 /* 25543 */ GIM_Try, /*On fail goto*//*Label 547*/ GIMT_Encode4(25567), // Rule ID 41 //
9586 /* 25548 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
9587 /* 25551 */ // MIs[0] root
9588 /* 25551 */ // No operand predicates
9589 /* 25551 */ // MIs[0] src
9590 /* 25551 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9591 /* 25555 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9592 /* 25559 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/8,
9593 /* 25562 */ // MIs[1] x
9594 /* 25562 */ // No operand predicates
9595 /* 25562 */ // MIs[1] y
9596 /* 25562 */ // No operand predicates
9597 /* 25562 */ // MIs[1] z
9598 /* 25562 */ // No operand predicates
9599 /* 25562 */ // MIs[1] a
9600 /* 25562 */ // No operand predicates
9601 /* 25562 */ // MIs[1] b
9602 /* 25562 */ // No operand predicates
9603 /* 25562 */ // MIs[1] c
9604 /* 25562 */ // No operand predicates
9605 /* 25562 */ // MIs[1] d
9606 /* 25562 */ // No operand predicates
9607 /* 25562 */ // MIs[0] idx
9608 /* 25562 */ // No operand predicates
9609 /* 25562 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9610 /* 25564 */ // Combiner Rule #39: extract_vector_element_build_vector_trunc7
9611 /* 25564 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
9612 /* 25567 */ // Label 547: @25567
9613 /* 25567 */ GIM_Try, /*On fail goto*//*Label 548*/ GIMT_Encode4(25591), // Rule ID 40 //
9614 /* 25572 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
9615 /* 25575 */ // MIs[0] root
9616 /* 25575 */ // No operand predicates
9617 /* 25575 */ // MIs[0] src
9618 /* 25575 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9619 /* 25579 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9620 /* 25583 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/7,
9621 /* 25586 */ // MIs[1] x
9622 /* 25586 */ // No operand predicates
9623 /* 25586 */ // MIs[1] y
9624 /* 25586 */ // No operand predicates
9625 /* 25586 */ // MIs[1] z
9626 /* 25586 */ // No operand predicates
9627 /* 25586 */ // MIs[1] a
9628 /* 25586 */ // No operand predicates
9629 /* 25586 */ // MIs[1] b
9630 /* 25586 */ // No operand predicates
9631 /* 25586 */ // MIs[1] c
9632 /* 25586 */ // No operand predicates
9633 /* 25586 */ // MIs[0] idx
9634 /* 25586 */ // No operand predicates
9635 /* 25586 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9636 /* 25588 */ // Combiner Rule #38: extract_vector_element_build_vector_trunc6
9637 /* 25588 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
9638 /* 25591 */ // Label 548: @25591
9639 /* 25591 */ GIM_Try, /*On fail goto*//*Label 549*/ GIMT_Encode4(25615), // Rule ID 39 //
9640 /* 25596 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
9641 /* 25599 */ // MIs[0] root
9642 /* 25599 */ // No operand predicates
9643 /* 25599 */ // MIs[0] src
9644 /* 25599 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9645 /* 25603 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9646 /* 25607 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/6,
9647 /* 25610 */ // MIs[1] x
9648 /* 25610 */ // No operand predicates
9649 /* 25610 */ // MIs[1] y
9650 /* 25610 */ // No operand predicates
9651 /* 25610 */ // MIs[1] z
9652 /* 25610 */ // No operand predicates
9653 /* 25610 */ // MIs[1] a
9654 /* 25610 */ // No operand predicates
9655 /* 25610 */ // MIs[1] b
9656 /* 25610 */ // No operand predicates
9657 /* 25610 */ // MIs[0] idx
9658 /* 25610 */ // No operand predicates
9659 /* 25610 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9660 /* 25612 */ // Combiner Rule #37: extract_vector_element_build_vector_trunc5
9661 /* 25612 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
9662 /* 25615 */ // Label 549: @25615
9663 /* 25615 */ GIM_Try, /*On fail goto*//*Label 550*/ GIMT_Encode4(25639), // Rule ID 38 //
9664 /* 25620 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
9665 /* 25623 */ // MIs[0] root
9666 /* 25623 */ // No operand predicates
9667 /* 25623 */ // MIs[0] src
9668 /* 25623 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9669 /* 25627 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9670 /* 25631 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/5,
9671 /* 25634 */ // MIs[1] x
9672 /* 25634 */ // No operand predicates
9673 /* 25634 */ // MIs[1] y
9674 /* 25634 */ // No operand predicates
9675 /* 25634 */ // MIs[1] z
9676 /* 25634 */ // No operand predicates
9677 /* 25634 */ // MIs[1] a
9678 /* 25634 */ // No operand predicates
9679 /* 25634 */ // MIs[0] idx
9680 /* 25634 */ // No operand predicates
9681 /* 25634 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9682 /* 25636 */ // Combiner Rule #36: extract_vector_element_build_vector_trunc4
9683 /* 25636 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
9684 /* 25639 */ // Label 550: @25639
9685 /* 25639 */ GIM_Try, /*On fail goto*//*Label 551*/ GIMT_Encode4(25663), // Rule ID 37 //
9686 /* 25644 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
9687 /* 25647 */ // MIs[0] root
9688 /* 25647 */ // No operand predicates
9689 /* 25647 */ // MIs[0] src
9690 /* 25647 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9691 /* 25651 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9692 /* 25655 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
9693 /* 25658 */ // MIs[1] x
9694 /* 25658 */ // No operand predicates
9695 /* 25658 */ // MIs[1] y
9696 /* 25658 */ // No operand predicates
9697 /* 25658 */ // MIs[1] z
9698 /* 25658 */ // No operand predicates
9699 /* 25658 */ // MIs[0] idx
9700 /* 25658 */ // No operand predicates
9701 /* 25658 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9702 /* 25660 */ // Combiner Rule #35: extract_vector_element_build_vector_trunc3
9703 /* 25660 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
9704 /* 25663 */ // Label 551: @25663
9705 /* 25663 */ GIM_Try, /*On fail goto*//*Label 552*/ GIMT_Encode4(25697), // Rule ID 33 //
9706 /* 25668 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
9707 /* 25671 */ // MIs[0] root
9708 /* 25671 */ // No operand predicates
9709 /* 25671 */ // MIs[0] src
9710 /* 25671 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9711 /* 25675 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
9712 /* 25679 */ // MIs[1] x
9713 /* 25679 */ // No operand predicates
9714 /* 25679 */ // MIs[1] value
9715 /* 25679 */ // No operand predicates
9716 /* 25679 */ // MIs[1] idx
9717 /* 25679 */ // No operand predicates
9718 /* 25679 */ // MIs[0] idx
9719 /* 25679 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
9720 /* 25684 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
9721 /* 25689 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9722 /* 25691 */ // Combiner Rule #31: extract_vector_element_not_const
9723 /* 25691 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
9724 /* 25696 */ GIR_EraseRootFromParent_Done,
9725 /* 25697 */ // Label 552: @25697
9726 /* 25697 */ GIM_Try, /*On fail goto*//*Label 553*/ GIMT_Encode4(25718), // Rule ID 34 //
9727 /* 25702 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
9728 /* 25705 */ // MIs[0] root
9729 /* 25705 */ // No operand predicates
9730 /* 25705 */ // MIs[0] src
9731 /* 25705 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9732 /* 25709 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
9733 /* 25713 */ // MIs[1] x
9734 /* 25713 */ // No operand predicates
9735 /* 25713 */ // MIs[1] value
9736 /* 25713 */ // No operand predicates
9737 /* 25713 */ // MIs[1] idx2
9738 /* 25713 */ // No operand predicates
9739 /* 25713 */ // MIs[0] idx1
9740 /* 25713 */ // No operand predicates
9741 /* 25713 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9742 /* 25715 */ // Combiner Rule #32: extract_vector_element_different_indices
9743 /* 25715 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
9744 /* 25718 */ // Label 553: @25718
9745 /* 25718 */ GIM_Try, /*On fail goto*//*Label 554*/ GIMT_Encode4(25747), // Rule ID 43 //
9746 /* 25723 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
9747 /* 25726 */ // MIs[0] root
9748 /* 25726 */ // No operand predicates
9749 /* 25726 */ // MIs[0] src
9750 /* 25726 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9751 /* 25730 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHUFFLE_VECTOR),
9752 /* 25734 */ // MIs[1] src1
9753 /* 25734 */ // No operand predicates
9754 /* 25734 */ // MIs[1] src2
9755 /* 25734 */ // No operand predicates
9756 /* 25734 */ // MIs[1] mask
9757 /* 25734 */ // No operand predicates
9758 /* 25734 */ // MIs[0] idx
9759 /* 25734 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
9760 /* 25738 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
9761 /* 25742 */ // MIs[2] imm
9762 /* 25742 */ // No operand predicates
9763 /* 25742 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9764 /* 25744 */ // Combiner Rule #41: extract_vector_element_shuffle_vector
9765 /* 25744 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
9766 /* 25747 */ // Label 554: @25747
9767 /* 25747 */ GIM_Try, /*On fail goto*//*Label 555*/ GIMT_Encode4(25771), // Rule ID 36 //
9768 /* 25752 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
9769 /* 25755 */ // MIs[0] root
9770 /* 25755 */ // No operand predicates
9771 /* 25755 */ // MIs[0] src
9772 /* 25755 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9773 /* 25759 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
9774 /* 25763 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
9775 /* 25766 */ // MIs[1] x
9776 /* 25766 */ // No operand predicates
9777 /* 25766 */ // MIs[1] y
9778 /* 25766 */ // No operand predicates
9779 /* 25766 */ // MIs[0] idx
9780 /* 25766 */ // No operand predicates
9781 /* 25766 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9782 /* 25768 */ // Combiner Rule #34: extract_vector_element_build_vector_trunc2
9783 /* 25768 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
9784 /* 25771 */ // Label 555: @25771
9785 /* 25771 */ GIM_Try, /*On fail goto*//*Label 556*/ GIMT_Encode4(25803), // Rule ID 35 //
9786 /* 25776 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
9787 /* 25779 */ // MIs[0] root
9788 /* 25779 */ // No operand predicates
9789 /* 25779 */ // MIs[0] src
9790 /* 25779 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9791 /* 25783 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
9792 /* 25787 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
9793 /* 25790 */ // MIs[1] unused
9794 /* 25790 */ // No operand predicates
9795 /* 25790 */ // MIs[0] idx
9796 /* 25790 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
9797 /* 25794 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
9798 /* 25798 */ // MIs[2] imm
9799 /* 25798 */ // No operand predicates
9800 /* 25798 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9801 /* 25800 */ // Combiner Rule #33: extract_vector_element_build_vector
9802 /* 25800 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
9803 /* 25803 */ // Label 556: @25803
9804 /* 25803 */ GIM_Try, /*On fail goto*//*Label 557*/ GIMT_Encode4(25827), // Rule ID 27 //
9805 /* 25808 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
9806 /* 25811 */ // MIs[0] root
9807 /* 25811 */ // No operand predicates
9808 /* 25811 */ // MIs[0] vector
9809 /* 25811 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9810 /* 25815 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9811 /* 25819 */ // MIs[0] idx
9812 /* 25819 */ // No operand predicates
9813 /* 25819 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9814 /* 25821 */ // Combiner Rule #25: match_extract_of_element_undef_vector
9815 /* 25821 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9816 /* 25824 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
9817 /* 25826 */ GIR_EraseRootFromParent_Done,
9818 /* 25827 */ // Label 557: @25827
9819 /* 25827 */ GIM_Try, /*On fail goto*//*Label 558*/ GIMT_Encode4(25851), // Rule ID 28 //
9820 /* 25832 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
9821 /* 25835 */ // MIs[0] root
9822 /* 25835 */ // No operand predicates
9823 /* 25835 */ // MIs[0] vector
9824 /* 25835 */ // No operand predicates
9825 /* 25835 */ // MIs[0] idx
9826 /* 25835 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9827 /* 25839 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9828 /* 25843 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9829 /* 25845 */ // Combiner Rule #26: match_extract_of_element_undef_index
9830 /* 25845 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9831 /* 25848 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
9832 /* 25850 */ GIR_EraseRootFromParent_Done,
9833 /* 25851 */ // Label 558: @25851
9834 /* 25851 */ GIM_Reject,
9835 /* 25852 */ // Label 101: @25852
9836 /* 25852 */ GIM_Try, /*On fail goto*//*Label 559*/ GIMT_Encode4(25863), // Rule ID 103 //
9837 /* 25857 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
9838 /* 25860 */ // Combiner Rule #85: propagate_undef_all_ops; wip_match_opcode 'G_SHUFFLE_VECTOR'
9839 /* 25860 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
9840 /* 25863 */ // Label 559: @25863
9841 /* 25863 */ GIM_Try, /*On fail goto*//*Label 560*/ GIMT_Encode4(25874), // Rule ID 105 //
9842 /* 25868 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
9843 /* 25871 */ // Combiner Rule #86: propagate_undef_shuffle_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
9844 /* 25871 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner41),
9845 /* 25874 */ // Label 560: @25874
9846 /* 25874 */ GIM_Try, /*On fail goto*//*Label 561*/ GIMT_Encode4(25885), // Rule ID 399 //
9847 /* 25879 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule235Enabled),
9848 /* 25882 */ // Combiner Rule #235: combine_shuffle_concat; wip_match_opcode 'G_SHUFFLE_VECTOR'
9849 /* 25882 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner139),
9850 /* 25885 */ // Label 561: @25885
9851 /* 25885 */ GIM_Try, /*On fail goto*//*Label 562*/ GIMT_Encode4(25896), // Rule ID 401 //
9852 /* 25890 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule237Enabled),
9853 /* 25893 */ // Combiner Rule #237: combine_shuffle_disjoint_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
9854 /* 25893 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner141),
9855 /* 25896 */ // Label 562: @25896
9856 /* 25896 */ GIM_Try, /*On fail goto*//*Label 563*/ GIMT_Encode4(25917), // Rule ID 400 //
9857 /* 25901 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule236Enabled),
9858 /* 25904 */ // MIs[0] root
9859 /* 25904 */ // No operand predicates
9860 /* 25904 */ // MIs[0] src1
9861 /* 25904 */ // No operand predicates
9862 /* 25904 */ // MIs[0] undef
9863 /* 25904 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9864 /* 25908 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9865 /* 25912 */ // MIs[0] mask
9866 /* 25912 */ // No operand predicates
9867 /* 25912 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9868 /* 25914 */ // Combiner Rule #236: combine_shuffle_undef_rhs
9869 /* 25914 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner140),
9870 /* 25917 */ // Label 563: @25917
9871 /* 25917 */ GIM_Reject,
9872 /* 25918 */ // Label 102: @25918
9873 /* 25918 */ GIM_Try, /*On fail goto*//*Label 564*/ GIMT_Encode4(25929), // Rule ID 297 //
9874 /* 25923 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9875 /* 25926 */ // MIs[0] dst
9876 /* 25926 */ // No operand predicates
9877 /* 25926 */ // MIs[0] mi.src
9878 /* 25926 */ // No operand predicates
9879 /* 25926 */ // Combiner Rule #195: constant_fold_unary_int_op @ [mi[2]]
9880 /* 25926 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9881 /* 25929 */ // Label 564: @25929
9882 /* 25929 */ GIM_Try, /*On fail goto*//*Label 565*/ GIMT_Encode4(25940), // Rule ID 425 //
9883 /* 25934 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule259Enabled),
9884 /* 25937 */ // MIs[0] dst
9885 /* 25937 */ // No operand predicates
9886 /* 25937 */ // MIs[0] src
9887 /* 25937 */ // No operand predicates
9888 /* 25937 */ // Combiner Rule #259: cttz_to_cttz_zero_poison
9889 /* 25937 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner159),
9890 /* 25940 */ // Label 565: @25940
9891 /* 25940 */ GIM_Reject,
9892 /* 25941 */ // Label 103: @25941
9893 /* 25941 */ GIM_Try, /*On fail goto*//*Label 566*/ GIMT_Encode4(25952), // Rule ID 298 //
9894 /* 25946 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9895 /* 25949 */ // MIs[0] dst
9896 /* 25949 */ // No operand predicates
9897 /* 25949 */ // MIs[0] mi.src
9898 /* 25949 */ // No operand predicates
9899 /* 25949 */ // Combiner Rule #195: constant_fold_unary_int_op @ [mi[3]]
9900 /* 25949 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9901 /* 25952 */ // Label 566: @25952
9902 /* 25952 */ GIM_Reject,
9903 /* 25953 */ // Label 104: @25953
9904 /* 25953 */ GIM_Try, /*On fail goto*//*Label 567*/ GIMT_Encode4(25964), // Rule ID 295 //
9905 /* 25958 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9906 /* 25961 */ // MIs[0] dst
9907 /* 25961 */ // No operand predicates
9908 /* 25961 */ // MIs[0] mi.src
9909 /* 25961 */ // No operand predicates
9910 /* 25961 */ // Combiner Rule #195: constant_fold_unary_int_op @ [mi[0]]
9911 /* 25961 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9912 /* 25964 */ // Label 567: @25964
9913 /* 25964 */ GIM_Try, /*On fail goto*//*Label 568*/ GIMT_Encode4(25975), // Rule ID 422 //
9914 /* 25969 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule256Enabled),
9915 /* 25972 */ // MIs[0] dst
9916 /* 25972 */ // No operand predicates
9917 /* 25972 */ // MIs[0] src
9918 /* 25972 */ // No operand predicates
9919 /* 25972 */ // Combiner Rule #256: ctlz_to_ctls
9920 /* 25972 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner158),
9921 /* 25975 */ // Label 568: @25975
9922 /* 25975 */ GIM_Try, /*On fail goto*//*Label 569*/ GIMT_Encode4(25986), // Rule ID 424 //
9923 /* 25980 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule258Enabled),
9924 /* 25983 */ // MIs[0] dst
9925 /* 25983 */ // No operand predicates
9926 /* 25983 */ // MIs[0] src
9927 /* 25983 */ // No operand predicates
9928 /* 25983 */ // Combiner Rule #258: ctlz_to_ctlz_zero_poison
9929 /* 25983 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner159),
9930 /* 25986 */ // Label 569: @25986
9931 /* 25986 */ GIM_Reject,
9932 /* 25987 */ // Label 105: @25987
9933 /* 25987 */ GIM_Try, /*On fail goto*//*Label 570*/ GIMT_Encode4(25998), // Rule ID 296 //
9934 /* 25992 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9935 /* 25995 */ // MIs[0] dst
9936 /* 25995 */ // No operand predicates
9937 /* 25995 */ // MIs[0] mi.src
9938 /* 25995 */ // No operand predicates
9939 /* 25995 */ // Combiner Rule #195: constant_fold_unary_int_op @ [mi[1]]
9940 /* 25995 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9941 /* 25998 */ // Label 570: @25998
9942 /* 25998 */ GIM_Try, /*On fail goto*//*Label 571*/ GIMT_Encode4(26009), // Rule ID 423 //
9943 /* 26003 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule257Enabled),
9944 /* 26006 */ // MIs[0] dst
9945 /* 26006 */ // No operand predicates
9946 /* 26006 */ // MIs[0] src
9947 /* 26006 */ // No operand predicates
9948 /* 26006 */ // Combiner Rule #257: ctlz_zero_poison_to_ctls
9949 /* 26006 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner158),
9950 /* 26009 */ // Label 571: @26009
9951 /* 26009 */ GIM_Reject,
9952 /* 26010 */ // Label 106: @26010
9953 /* 26010 */ GIM_Try, /*On fail goto*//*Label 572*/ GIMT_Encode4(26021), // Rule ID 299 //
9954 /* 26015 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9955 /* 26018 */ // MIs[0] dst
9956 /* 26018 */ // No operand predicates
9957 /* 26018 */ // MIs[0] mi.src
9958 /* 26018 */ // No operand predicates
9959 /* 26018 */ // Combiner Rule #195: constant_fold_unary_int_op @ [mi[4]]
9960 /* 26018 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9961 /* 26021 */ // Label 572: @26021
9962 /* 26021 */ GIM_Reject,
9963 /* 26022 */ // Label 107: @26022
9964 /* 26022 */ GIM_Try, /*On fail goto*//*Label 573*/ GIMT_Encode4(26033), // Rule ID 301 //
9965 /* 26027 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9966 /* 26030 */ // MIs[0] dst
9967 /* 26030 */ // No operand predicates
9968 /* 26030 */ // MIs[0] mi.src
9969 /* 26030 */ // No operand predicates
9970 /* 26030 */ // Combiner Rule #195: constant_fold_unary_int_op @ [mi[6]]
9971 /* 26030 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
9972 /* 26033 */ // Label 573: @26033
9973 /* 26033 */ GIM_Reject,
9974 /* 26034 */ // Label 108: @26034
9975 /* 26034 */ GIM_Try, /*On fail goto*//*Label 574*/ GIMT_Encode4(26078), // Rule ID 252 //
9976 /* 26039 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
9977 /* 26042 */ // MIs[0] d
9978 /* 26042 */ // No operand predicates
9979 /* 26042 */ // MIs[0] src
9980 /* 26042 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9981 /* 26046 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
9982 /* 26050 */ // MIs[1] rev
9983 /* 26050 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
9984 /* 26054 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
9985 /* 26058 */ // MIs[2] val
9986 /* 26058 */ // No operand predicates
9987 /* 26058 */ // MIs[1] amt
9988 /* 26058 */ // No operand predicates
9989 /* 26058 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner15),
9990 /* 26062 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9991 /* 26064 */ // Combiner Rule #185: bitreverse_lshr
9992 /* 26064 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
9993 /* 26067 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
9994 /* 26069 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
9995 /* 26073 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
9996 /* 26077 */ GIR_EraseRootFromParent_Done,
9997 /* 26078 */ // Label 574: @26078
9998 /* 26078 */ GIM_Try, /*On fail goto*//*Label 575*/ GIMT_Encode4(26122), // Rule ID 251 //
9999 /* 26083 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
10000 /* 26086 */ // MIs[0] d
10001 /* 26086 */ // No operand predicates
10002 /* 26086 */ // MIs[0] src
10003 /* 26086 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10004 /* 26090 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
10005 /* 26094 */ // MIs[1] rev
10006 /* 26094 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
10007 /* 26098 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
10008 /* 26102 */ // MIs[2] val
10009 /* 26102 */ // No operand predicates
10010 /* 26102 */ // MIs[1] amt
10011 /* 26102 */ // No operand predicates
10012 /* 26102 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner14),
10013 /* 26106 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
10014 /* 26108 */ // Combiner Rule #184: bitreverse_shl
10015 /* 26108 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_LSHR),
10016 /* 26111 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
10017 /* 26113 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
10018 /* 26117 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
10019 /* 26121 */ GIR_EraseRootFromParent_Done,
10020 /* 26122 */ // Label 575: @26122
10021 /* 26122 */ GIM_Try, /*On fail goto*//*Label 576*/ GIMT_Encode4(26133), // Rule ID 302 //
10022 /* 26127 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
10023 /* 26130 */ // MIs[0] dst
10024 /* 26130 */ // No operand predicates
10025 /* 26130 */ // MIs[0] mi.src
10026 /* 26130 */ // No operand predicates
10027 /* 26130 */ // Combiner Rule #195: constant_fold_unary_int_op @ [mi[7]]
10028 /* 26130 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
10029 /* 26133 */ // Label 576: @26133
10030 /* 26133 */ GIM_Reject,
10031 /* 26134 */ // Label 109: @26134
10032 /* 26134 */ GIM_Try, /*On fail goto*//*Label 577*/ GIMT_Encode4(26155), // Rule ID 199 //
10033 /* 26139 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
10034 /* 26142 */ // MIs[0] dst
10035 /* 26142 */ // No operand predicates
10036 /* 26142 */ // MIs[0] src0
10037 /* 26142 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10038 /* 26146 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
10039 /* 26150 */ // MIs[1] cst
10040 /* 26150 */ // No operand predicates
10041 /* 26150 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10042 /* 26152 */ // Combiner Rule #155: constant_fold_fceil
10043 /* 26152 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
10044 /* 26155 */ // Label 577: @26155
10045 /* 26155 */ GIM_Reject,
10046 /* 26156 */ // Label 110: @26156
10047 /* 26156 */ GIM_Try, /*On fail goto*//*Label 578*/ GIMT_Encode4(26167), // Rule ID 457 //
10048 /* 26161 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule280Enabled),
10049 /* 26164 */ // Combiner Rule #280: rcp_sqrt_to_rsq; wip_match_opcode 'G_FSQRT'
10050 /* 26164 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner169),
10051 /* 26167 */ // Label 578: @26167
10052 /* 26167 */ GIM_Try, /*On fail goto*//*Label 579*/ GIMT_Encode4(26188), // Rule ID 195 //
10053 /* 26172 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
10054 /* 26175 */ // MIs[0] dst
10055 /* 26175 */ // No operand predicates
10056 /* 26175 */ // MIs[0] src0
10057 /* 26175 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10058 /* 26179 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
10059 /* 26183 */ // MIs[1] cst
10060 /* 26183 */ // No operand predicates
10061 /* 26183 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10062 /* 26185 */ // Combiner Rule #151: constant_fold_fsqrt
10063 /* 26185 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
10064 /* 26188 */ // Label 579: @26188
10065 /* 26188 */ GIM_Reject,
10066 /* 26189 */ // Label 111: @26189
10067 /* 26189 */ GIM_Try, /*On fail goto*//*Label 580*/ GIMT_Encode4(26210), // Rule ID 200 //
10068 /* 26194 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
10069 /* 26197 */ // MIs[0] dst
10070 /* 26197 */ // No operand predicates
10071 /* 26197 */ // MIs[0] src0
10072 /* 26197 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10073 /* 26201 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
10074 /* 26205 */ // MIs[1] cst
10075 /* 26205 */ // No operand predicates
10076 /* 26205 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10077 /* 26207 */ // Combiner Rule #156: constant_fold_ffloor
10078 /* 26207 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
10079 /* 26210 */ // Label 580: @26210
10080 /* 26210 */ GIM_Reject,
10081 /* 26211 */ // Label 112: @26211
10082 /* 26211 */ GIM_Try, /*On fail goto*//*Label 581*/ GIMT_Encode4(26232), // Rule ID 204 //
10083 /* 26216 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
10084 /* 26219 */ // MIs[0] dst
10085 /* 26219 */ // No operand predicates
10086 /* 26219 */ // MIs[0] src0
10087 /* 26219 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10088 /* 26223 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
10089 /* 26227 */ // MIs[1] cst
10090 /* 26227 */ // No operand predicates
10091 /* 26227 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10092 /* 26229 */ // Combiner Rule #160: constant_fold_frint
10093 /* 26229 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
10094 /* 26232 */ // Label 581: @26232
10095 /* 26232 */ GIM_Reject,
10096 /* 26233 */ // Label 113: @26233
10097 /* 26233 */ GIM_Try, /*On fail goto*//*Label 582*/ GIMT_Encode4(26254), // Rule ID 205 //
10098 /* 26238 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
10099 /* 26241 */ // MIs[0] dst
10100 /* 26241 */ // No operand predicates
10101 /* 26241 */ // MIs[0] src0
10102 /* 26241 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10103 /* 26245 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
10104 /* 26249 */ // MIs[1] cst
10105 /* 26249 */ // No operand predicates
10106 /* 26249 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10107 /* 26251 */ // Combiner Rule #161: constant_fold_fnearbyint
10108 /* 26251 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
10109 /* 26254 */ // Label 582: @26254
10110 /* 26254 */ GIM_Reject,
10111 /* 26255 */ // Label 114: @26255
10112 /* 26255 */ GIM_Try, /*On fail goto*//*Label 583*/ GIMT_Encode4(26266), // Rule ID 449 //
10113 /* 26260 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule276Enabled),
10114 /* 26263 */ // Combiner Rule #276: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE0'
10115 /* 26263 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner165),
10116 /* 26266 */ // Label 583: @26266
10117 /* 26266 */ GIM_Reject,
10118 /* 26267 */ // Label 115: @26267
10119 /* 26267 */ GIM_Try, /*On fail goto*//*Label 584*/ GIMT_Encode4(26278), // Rule ID 450 //
10120 /* 26272 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule276Enabled),
10121 /* 26275 */ // Combiner Rule #276: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE1'
10122 /* 26275 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner165),
10123 /* 26278 */ // Label 584: @26278
10124 /* 26278 */ GIM_Reject,
10125 /* 26279 */ // Label 116: @26279
10126 /* 26279 */ GIM_Try, /*On fail goto*//*Label 585*/ GIMT_Encode4(26290), // Rule ID 451 //
10127 /* 26284 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule276Enabled),
10128 /* 26287 */ // Combiner Rule #276: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE2'
10129 /* 26287 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner165),
10130 /* 26290 */ // Label 585: @26290
10131 /* 26290 */ GIM_Reject,
10132 /* 26291 */ // Label 117: @26291
10133 /* 26291 */ GIM_Try, /*On fail goto*//*Label 586*/ GIMT_Encode4(26302), // Rule ID 452 //
10134 /* 26296 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule276Enabled),
10135 /* 26299 */ // Combiner Rule #276: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE3'
10136 /* 26299 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner165),
10137 /* 26302 */ // Label 586: @26302
10138 /* 26302 */ GIM_Reject,
10139 /* 26303 */ // Label 118: @26303
10140 /* 26303 */ GIM_Reject,
10141 /* 26304 */ }; // Size: 26304 bytes
10142 return MatchTable0;
10143}
10144#undef GIMT_Encode2
10145#undef GIMT_Encode4
10146#undef GIMT_Encode8
10147
10148
10149#endif // GET_GICOMBINER_IMPL
10150
10151#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
10152
10153AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
10154AvailableFunctionFeatures()
10155
10156#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
10157
10158#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
10159
10160, State(0),
10161ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
10162
10163#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
10164
10165